SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
Linguagem C Agradecimentos
TÉCNICAS DE PROGRAMAÇÃO I
Prof.John Hebert da Silva Felix
johnfelix@unilab.edu.br
Universidade da Integração Internacional da Lusofonia
Afro-Brasiliera
Curso de Engenharia de Energias
Redenção-CE, Brasil
2015
Prof. John Hebert S. Felix 1/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Índice da Apresentação
1 Linguagem C
Linguagem C
Prof. John Hebert S. Felix 2/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
LINGUAGEM C
Prof. John Hebert S. Felix 3/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Linguagem C
1 Introdução;
2 A Biblioteca-padrão e as Palavras Reservadas em C;
3 Tipos de Dados e Variáveis;
4 Operadores e Expressões;
5 Entrada e Saída E/S pelo Console;
6 Estruturas de Controles;
7 Funções;
8 Arrays e Strings;
9 Ponteiros;
10 Estruturas, Uniões e Enumerações;
11 Arquivos e Streams;
12 Estruturas de dados:
Listas lineares (Filas, Pilhas e Listas Encadeadas).
Ordenação e Pesquisa.
Prof. John Hebert S. Felix 4/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Linguagem C
1 Introdução;
2 A Biblioteca-padrão e as Palavras Reservadas em C;
3 Tipos de Dados e Variáveis;
4 Operadores e Expressões;
5 Entrada e Saída E/S pelo Console;
6 Estruturas de Controles;
7 Funções;
8 Arrays e Strings;
9 Ponteiros;
10 Estruturas, Uniões e Enumerações;
11 Arquivos e Streams;
12 Estruturas de dados:
Listas lineares (Filas, Pilhas e Listas Encadeadas);
Ordenação e Pesquisa.
Prof. John Hebert S. Felix 4/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Introdução
Introdução
A linguagem C foi desenvolvida por Dennis Ritchie no Bell
Laboratories, a partir de outras duas linguagens mais antigas a
BCPL e a B;
C é uma linguagem de programação que permite uma
abordagem estruturada e disciplinada para a escrita de
programas;
Os códigos escritos em C são portáveis, i.e, podem ser
adaptados ao outros computadores com pouca ou nenhuma
modificção nos códigos.
Prof. John Hebert S. Felix 5/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Introdução
Introdução
A linguagem C foi desenvolvida por Dennis Ritchie no Bell
Laboratories, a partir de outras duas linguagens mais antigas a
BCPL e a B;
C é uma linguagem de programação que permite uma
abordagem estruturada e disciplinada para a escrita de
programas;
Os códigos escritos em C são portáveis, i.e, podem ser
adaptados ao outros computadores com pouca ou nenhuma
modificção nos códigos.
Prof. John Hebert S. Felix 5/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Introdução
Introdução
A linguagem C foi desenvolvida por Dennis Ritchie no Bell
Laboratories, a partir de outras duas linguagens mais antigas a
BCPL e a B;
C é uma linguagem de programação que permite uma
abordagem estruturada e disciplinada para a escrita de
programas;
Os códigos escritos em C são portáveis, i.e, podem ser
adaptados ao outros computadores com pouca ou nenhuma
modificção nos códigos.
Prof. John Hebert S. Felix 5/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Introdução
Introdução
A linguagem C foi desenvolvida por Dennis Ritchie no Bell
Laboratories, a partir de outras duas linguagens mais antigas a
BCPL e a B;
C é uma linguagem de programação que permite uma
abordagem estruturada e disciplinada para a escrita de
programas;
Os códigos escritos em C são portáveis, i.e, podem ser
adaptados ao outros computadores com pouca ou nenhuma
modificção nos códigos.
Prof. John Hebert S. Felix 5/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
A biblioteca-padrão e as palavras reservadas em C
A Biblioteca-Padrão C
Em 1983, foi estabelecido um comitê, pelo o ANSI (American National
Standards Institute), com o objetivo de padronizar a linguagem C;
Este comitê definiu o conteúdo e a forma padrão para a biblioteca C que
ficou conhecido como padrão C ANSI;
A biblioteca-padrão é formda por uma coleção de funções suportadas
pelos compiladores ANSI;
Uma biblioteca armazena um arquivo que tem o nome de cada função, o
código-objeto e as infrmações para o processo de ligar (visto em
compiladores x interpretadores);
Os arquivos de cabeçalho que relacionam as funções da biblioteca são
incluidos pela diretiva #include;
A biblioteca-padrão contém os protótipos de funções que estão
relacionados com os arquivos de cabeçalho.
Prof. John Hebert S. Felix 6/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
A biblioteca-padrão e as palavras reservadas em C
A Biblioteca-Padrão C
Arquivo de
Cabeçalho
Finalidade
assert.h Define macros que auxiliam na depuração de programas.
ctype.h Define protótipos de função para funções utilizadas na manipulação de
caracteres
errno.h Define macros utilizadas na apresentação de erros.
float.h Define os valores de tamanho de ponto flutuante do sistema.
limits.h Define os valores de tamanho de inteiros do sistema.
locale.h Contém protótipos de funções e outras informações que suportam a lo-
calização.
math.h Contém protótipos de função para funções utilizadas na biblioteca de
matemtática.
Prof. John Hebert S. Felix 6/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
A biblioteca-padrão e as palavras reservadas em C
A Biblioteca-Padrão C
Arquivo de
Cabeçalho
Finalidade
setjmp.h Contém protótipos de função para funções utilizadas para evitar sequên-
cia normal de chamada e de retorno de função.
signal.h Contém protótipos de função e macros que suportam a manipulação de
sinais.
stdarg.h Define macros que suportam lista de argumentos de comprimentos va-
riável.
stddef.h Define tipos comuns normalmente utilizados em C.
stdio.h Contém protótipos de função para funções de entrada e saída.
stdlib.h Contém protótipos de função para conversões de número em texto e
vice-versada, alocação de memória, números aleatórios e funções utili-
tárias.
string.h Contém protótipos de função para funções de processamento de strings.
time.h Contém protótipos de função e tipo para manipular data e hora.
Prof. John Hebert S. Felix 6/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
A biblioteca-padrão e as palavras reservadas em C
Palavras reservadas em C
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
Prof. John Hebert S. Felix 6/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Tipos de Dados e Variáveis
Tipos de Dados
Um tipo de dado em C, define um conjunto de valores possíveis de
serem armazenados em variáveis, bem como as diversas operações
que podem ser realizadas com tais variaáveis. Em C há cinco tipos de
dados primitivos, a saber:
char: caractere simples. Tamanho de 1 byte (8 bits). Faixa de −127 a 127;
int: valores inteiros. Tamanho de 2 bytes. Faixa de −32.767 a 32.767;
float: números reais (ponto flutuante). Tamanho de 4 bytes. Faixa
de ±3, 4 × 10±38;
double: números reais (ponto flutuante duplo). Tamanho de 8 bytes. Faixa
de ±1, 7 × 10±308;
void: tipo de dado que indica vazio.
Em C, o tipo de dado lógico é obtido pela utilização do valor 0 (zero)
para falso (false) e 1 (um) ou qualquer valor diferente de zero para
verdadeiro (true).
Prof. John Hebert S. Felix 7/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Tipos de Dados e Variáveis
Tipos de Dados - modificadores
Um modificador é utilizado para alterar um tipo de dado. Os
modificadores em C são: signed, unsigned, long e short;
Os modificadores podem ser aplicados aos tipos de dados básicos
int e char. O long também pode ser aplicado a double;
No C ANSI o long float foi retirado, devido este ter o mesmo
significado do double. Exemplos:
unsigned char: 1 byte (8 bits). Faixa de 0 a 127;
unsigned short int: 2 bytes. Faixa de 0 a 65.535;
long int: 4 bytes. Faixa de −2.147.483.647 a 2.147.483.647;
unsigned long int: 4 bytes. Faixa de 4.294.967.295.
Prof. John Hebert S. Felix 7/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Tipos de Dados e Variáveis
Variáveis e Constantes
As variáveis são posições nomeadas de memória utilizadas para
armazenar os dados, que podem ser modificados durante a execução do
programa;
As variáveis podem ser declaradas dentro de funções (variáveis locais),
na definição de parâmetros (parâmetros formais) e localizadas foras das
funções (variáveis globais);
As variáveis locais são alocadas e desalocadas dentro de funções;
Os parâmetros formais são os argumentos, i.e., variáveis delcaradas
para receber os valores de argumentos de uma função;
As variáveis globais podem ser utilizadas por qualquer parte do
programa.
Prof. John Hebert S. Felix 7/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Tipos de Dados e Variáveis
Sintaxe da Declaração de Variáveis
Em C, a declaração de variáveis tem a seguinte sintaxe.
tipo_de_dado identificador;
tipo_de_dado lista_de_identificadores (separados por vírgula);
Identificadores Válidos
Em C, os nomes ou identificadores das variáveis devem atender as seguintes regras:
1 O identificador deve começar com um caractere alfabético ou “_”(underline);
2 O identificador pode ter caracteres numéricos, desde que atenda a regra 1;
3 O identificador não pode conter caracteres especiais;
4 Utilizar nomes significativos para representar as variáveis do programa;
5 C faz distinção entre letras minúsculas e maiúsculas,e.g., Nome e nome são
variáveis diferentes;
6 Ex.:identificadores válidos: numero, conta, _nome, idade, B13, C2;
7 Ex.:identificadores inválidos: _av!15, entre..par, a-b, c&h, 1car.
Prof. John Hebert S. Felix 7/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Tipos de Dados e Variáveis
Programa em C - declaração de variáveis
//Bibliotecas no padrão C ANSI
#include <stdio.h>
#include <stdlib.h>
//Função principal do programa
int main (void){
//Declaração de variáveis
unsigned short int numConta;
unsigned char tipConta;
float saldoConta;
/* Corpo do programa
Ações a serem executadas */
return 0;//Indica o fim do programa com sucesso
} //Fim da função principal do programa
Prof. John Hebert S. Felix 7/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Tipos de Dados e Variáveis
Variáveis e Constantes
As constantes são variáveis com valores fixos, que não podem ser
modificados pelo programa;
Ex.: int cont = 0;
A constante string é suportada por C. Uma string correponde a um conjunto
de caracteres entre aspas dupla, e.g., “Hoje a noite tem festa”.
C suporta constantes de barra invetida que insere caracteres especiais como
constantes.
Códigos de barra invetida
Código Descrição
n Nova linha. Insere o curso da tela no começo de uma nova linha
t Tabulação horizontal. Movimenta o curso da tela para a próxima posição de tabulação
horizontal
" Aspas duplas. Insere aspas duplas
’ Aspas simples. Insere aspas simples
0 Nulo. Indica o fim de uma string
  Barra invertida. Insere um caractere de barra invetida em uma string
v Tabulação vertical
a Alerta (beep). Emite o sinal sonoro do sistema
Prof. John Hebert S. Felix 7/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operador de Atribuição
Em C, o operador ou comando de atribuição é representado por =. A sintaxe deste
operador é mostrado a seguir:
variável = dado_atribuído;
variável = expressão; ou
variável1 = variável2= variáveln = expressão;
A atribuição em C, pode ocorrer durante a declaração de variáveis conforme é mostrado a seguir.
Atribuição de Valores em Variáveis
#include <stdio.h>
#include <stdlib.h>
int main (void){
unsigned short int numConta = 1200013;
unsigned char tipConta = ’F’; //F - pessoa Física e J - pessoa Jurídica
float saldoConta = 2750.92;
/* Corpo do programa - Ações a serem executadas */
return 0;
}
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Conversão de tipos de dados por atribuição
Em C, a atribuição de valores a tipos diferentes pode converte o seu tipo de dado,
e.g., a variá de destino recebe o valor da expressão e adequa tal valor a seu tipo de
dado.
Ex.: Conversão de tipo por atribuição
#include <stdio.h>
#include <stdlib.h>
int main (void){
int inum;
char ctex;
float fvr;
ctex = inum; /* ctex recebe os 8 bits menos significativos de inum, se inum for de 0 a 256, ctex tem
valor semelhante ao de inum */
inum = fvr; /* inum recebe a parte inteira de fvr */
fvr = ctex; /* fvr converte o valor de ctex para ponto flutuante */
fvr = inum; /* fvr converte o valor de inum para flutuante */
return 0;
}
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operadores Aritméticos
Operador Função Exemplo
+ Adição c = a + b
– Subtração (ou menos
unário)
c = a – b
* Multiplicação c = a * b
/ Divisão c = a / b
% Resto c = a % 4
– – Decremento – –a (pré-decremento) ou
a– – (pós-decremento)
++ Incremento ++a (pré-incremento) ou
a++ (pós-incremento)
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operadores Lógicos
Operador Função Exemplo
&& AND f && v = f
|| OR f || v = v
! NOT !f = v
Tabela verdade dos operadores lógicos &&, || e !
a b a && b a || b !a
0 0 0 0 1
0 1 0 1 1
1 0 0 1 0
1 1 1 1 0
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operadores Relacionais
Operador Função Exemplo
== Igual a c == a
> Maior que a > b
< Menor que a < b
>= Maior ou igual a c >= a
<= Menor ou igual a c <= a
!= Diferente c != a
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operadores Bit a Bit
Operador Função Exemplo
& AND Equivante a &&
! OR Equivante a ||
ˆ OR exclusivo (XOR)
˜ Complemento de um ˜ a (inverte os bits, 1 == 0 e 0 ==1)
» Deslocamento à esquerda a = b»2;
« Deslocamento à direita b = a«1;
Tabela verdade dos operador lógico ˆ XOR
a b a ˆ b
0 0 0
0 1 1
1 0 1
1 1 0
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Ex.: Incremento e deslocamento de bits
#include <stdio.h>
int main (void){
int a = 3, b = 3;
printf(“Mostra o valor de a: %dn", a); /* Realiza o pré-incremento */
printf(“Realiza o pré-incremento: %dn”, ++a);
printf(“Mostra o valor de a com pré-incremento:%dn”, a);
a = 3;
printf(“Mostra o valor de a: %dn", a); /* Realiza o pós-incremento */
printf(“Realiza o pós-incremento: %dn”, a++);
printf(“Mostra o valor de a com pós-incremento:%dn”, a);
/* Realiza o deslocamento à esquerda */
printf(“Realiza o deslocamento à esquerda:%d:%d:%dn”, b, b«1, b«2);
b = 3;
/* Realiza o deslocamento à direita */
printf(“Realiza o deslocamento à direita:%d:%d:%dn”, b, b»1, b»2);
return 0;
}
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operadores: ternário ? e ponteiros & e ∗
O operador ternário ? pode substituir a estrutura de seleção
if-then-else;
A forma do operador ternário ? é: expressão1 ? expressão2 :
expressão3;
Ex.: a = c > 5 ? 10 : 30; Se a expressão1 (c > 5) é verdadeira, a = 10,
caso contrário, a = 30;
Operadores: ternário ? e ponteiros & e ∗
Um endereço de uma variável na memória é chamado de ponteiro;
Os operadores & e ∗ são unários. O primeiro operador & retorna o endereço na
memória de seu operando. O segundo operador ∗ é o complemento de & e
retorno o valor da variável localizada no endereço que o segue.
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Ex.: Ponteiros
#include <stdio.h>
int main (void){
int valor, aux;
int *endereco;
aux = 7;
endereco = &aux;
valor = *endereco;
printf(“O endereço é:%dn”, endereco);
printf(“O valor é:%dn”, valor);
return 0;
}
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Operadores: vígula (,), ponto (.) e seta (->)
O operador vígula (,) é utilizado para fazer o encadeamento de
expressão, e.g., a = (b = 5, b + 2);
Os operadores ponto (.) e seta (->) são utilizados no referenciamento
de estruturas e uniões. Estes são tipos de dados compostos
referenciado por um mesmo nome (identificador);
Operadores: parênteses () e colchetes []
O operador parênteses () aumenta a precedência entre das
operações que estão no seu interior;
O operador colchetes [] permite indexar arrays unidimensionais
(vetores) e arrays bidimensionais (tabelas), e.g., char texto[10];
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Precedêcia entre os operadores em C
Operadores Associatividade Tipo
( ) [ ] -> esquerda para direita maior
+ – ++ – – ! * & (tipo) direita para esquerda unário
* / % esquerda para direita multiplicativo
+ – esquerda para direita aditivo
< <= > >= esquerda para direita relacional
== != esquerda para direita igualdade/diferença
& esquerda para direita AND lógico
ˆ esquerda para direita XOR lógico
| esquerda para direita lógico
&& esquerda para direita lógico
|| esquerda para direita lógico
?: esquerda para direita condicional
= += –= *= /= esquerda para direita atribuição
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Operadores e Expressões
Expressões e Blocos de Comandos
Em C, uma expressão é uma combinação válida de operadores,
constantes e variaáveis;
Converter uma expressão a mudar para um determindado tipo de dado é
denomindado de cast. A forma do cast é (tipo) expressão.
Ex.: (double) var1/10;
C reduzido consiste em simplificar a codificação de operadores de
atribuição. A forma do C reduzido é variável operador = expressão
correponde a forma normal variável = variável operador expressão.
Ex.: a = a + 5; na forma simplificada fica a+ = 5;
Os blocos de comandos são conjuntos ou grupos de comandos
relacionados, que são tratados como unidade. Em C, um bloco de
comando estar entre chaves { comandos }, i.e, o início é indicado por { e
o fim por }.
Prof. John Hebert S. Felix 8/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Entrada e Saída E/S pelo Console
Comandos de entrada e saída
A entrada de dados em C é realizada pelo comando scanf();
A saída de dados é executada pelo comando printf();
Estes comandos podem realizar a entrada e saída formadas, i.e., ler e
escrever nos diversos tipos de dados.
Sintaxe dos comandos de entrada e saída
scanf(“Texto / formato de dado”,&var1);
scanf(“Texto / formatos de dados”,&var1, &var2,. . . , &varn);
printf(“Texto / formato de dado”, result1);
printf(“Texto / formatos de dados”, result1, result2,. . . , resultn);
Exemplos para os comandos de entrada e saída
scanf (“%c %d %f”, &tipoConta, &numConta, &valorConta);
printf (“%c %d %f”, tipoConta, numConta, valorConta);
Prof. John Hebert S. Felix 9/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Entrada e Saída E/S pelo Console
Especificadores de formato de scanf()
Código Descrição de formato de leitura
%c caractere único
%d %i inteiros decimal
%e %f %g valor em ponto flutuante
%o valor em octal
%p ponteiro
%n recebe um valor inteiro igual ao número de caracte-
res lidos até esse ponto
%s string
%u inteiros sem sinal
%x valor em hexadecimal
%[] procura um conjunto de caractere %
Prof. John Hebert S. Felix 9/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Entrada e Saída E/S pelo Console
Especificadores de formato de printf()
Código Descrição
%c caractere
%d %i inteiros decimais com sinal
%e %E notação científica (minúsculo e maiúsculo)
%f ponto flutuante decimal
%g utiliza %e ou %f, o que for mais curto
%G utiliza %E ou %F, o que for mais curto
%o octal sem sinal
%p mostra um ponteiro
%n mostra o número de caracteres escritos até esse
ponto
%s string
%u inteiros decimais sem sinal
%x %X hexadecimal sem sinal (minúsculo e maiúsculo)
%% mostra o símbolo %
Prof. John Hebert S. Felix 9/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Entrada e Saída E/S pelo Console
Especificador de largura mínima e de precisão
O especificador de largura mínima, que correponde a um número entre o
símbolo % e o especificador de formato (e.g, %4c) limita o tamanho de
preencimento de uma variável;
O especificador de precisão acompanha o anteriro e especifica o número de
casas decimais (e.g, %4.8s, mostra uma string que tenha entre 4 e 8
caracteres);
Exemplo:
#include <stdio.h>
int main (void){
double num1 = 11.123456;
printf(“%fn”, num1);
printf(“%2.3fn”, num1);
printf(“%010.5fn”, num1);
printf(“%8.26sn”, “Quando aplicado a um texto limita o seu tamanho”);
return 0;
}
Prof. John Hebert S. Felix 9/10 UNILAB
Técnicas de Programação I
Linguagem C Agradecimentos
Agradecimentos
Agradeço a todos pela atenção!
Prof. John Hebert S. Felix 10/10 UNILAB
Técnicas de Programação I

Mais conteúdo relacionado

Mais procurados

Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)guest14543db
 
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 Rogério Moraes de Carvalho
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoesYuri Passos
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem cMarcia Santana
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++Jonas Silva
 
Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5D M
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem CDaniel Barão
 
Introduction to Delphi - June 2004
Introduction to Delphi - June 2004Introduction to Delphi - June 2004
Introduction to Delphi - June 2004Michel Alves
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem cEugenio Caetano
 

Mais procurados (19)

Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
Linguagem C (UFRPE)
Linguagem C (UFRPE)Linguagem C (UFRPE)
Linguagem C (UFRPE)
 
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4 MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
MSDN Webcast: Trabalhando com covariância e contravariância no C# 4
 
Compiladores 1
Compiladores 1Compiladores 1
Compiladores 1
 
Aula01 introducao operacoes
Aula01   introducao operacoesAula01   introducao operacoes
Aula01 introducao operacoes
 
Fundamentos da linguagem c
Fundamentos da linguagem cFundamentos da linguagem c
Fundamentos da linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Introdução ao c++
Introdução ao c++Introdução ao c++
Introdução ao c++
 
TDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código CTDC2014 SP - C/C++ - Modularização de Código C
TDC2014 SP - C/C++ - Modularização de Código C
 
Introducao a LPC
Introducao a LPCIntroducao a LPC
Introducao a LPC
 
Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5Tecnicas programacao i_c_p5
Tecnicas programacao i_c_p5
 
Apostila de Linguagem C
Apostila de Linguagem CApostila de Linguagem C
Apostila de Linguagem C
 
Compiladores 6
Compiladores 6Compiladores 6
Compiladores 6
 
Compiladores 5
Compiladores 5Compiladores 5
Compiladores 5
 
Compiladores 7
Compiladores 7Compiladores 7
Compiladores 7
 
Compiladores
CompiladoresCompiladores
Compiladores
 
Introduction to Delphi - June 2004
Introduction to Delphi - June 2004Introduction to Delphi - June 2004
Introduction to Delphi - June 2004
 
5. introducao a linguagem c
5. introducao a linguagem c5. introducao a linguagem c
5. introducao a linguagem c
 
Mini R
Mini R Mini R
Mini R
 

Destaque

Apostila do curso de cam ska
Apostila do curso de cam   skaApostila do curso de cam   ska
Apostila do curso de cam skaValber Souza
 
Exemplos de programas em cnc (1)
Exemplos de programas em cnc (1)Exemplos de programas em cnc (1)
Exemplos de programas em cnc (1)Dorival Leandro
 
10-Step Marketing Plan RiteMed Metformin HCl TanJM
10-Step Marketing Plan RiteMed Metformin HCl TanJM10-Step Marketing Plan RiteMed Metformin HCl TanJM
10-Step Marketing Plan RiteMed Metformin HCl TanJMreachjoemar
 
Fabricação de uma peça real utilizando CNC e o código G
Fabricação de uma peça real utilizando CNC e o código GFabricação de uma peça real utilizando CNC e o código G
Fabricação de uma peça real utilizando CNC e o código GRafael Lial
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à ProgramaçãoMario Sergio
 

Destaque (12)

Experiencia fanny
Experiencia fannyExperiencia fanny
Experiencia fanny
 
Tendencias educativas edwin
Tendencias educativas edwinTendencias educativas edwin
Tendencias educativas edwin
 
Apostila do curso de cam ska
Apostila do curso de cam   skaApostila do curso de cam   ska
Apostila do curso de cam ska
 
Exemplos de programas em cnc (1)
Exemplos de programas em cnc (1)Exemplos de programas em cnc (1)
Exemplos de programas em cnc (1)
 
Exercício de CNC
Exercício de CNCExercício de CNC
Exercício de CNC
 
10-Step Marketing Plan RiteMed Metformin HCl TanJM
10-Step Marketing Plan RiteMed Metformin HCl TanJM10-Step Marketing Plan RiteMed Metformin HCl TanJM
10-Step Marketing Plan RiteMed Metformin HCl TanJM
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Fabricação de uma peça real utilizando CNC e o código G
Fabricação de uma peça real utilizando CNC e o código GFabricação de uma peça real utilizando CNC e o código G
Fabricação de uma peça real utilizando CNC e o código G
 
Introdução à Programação
Introdução à ProgramaçãoIntrodução à Programação
Introdução à Programação
 
Case Study Template
Case Study TemplateCase Study Template
Case Study Template
 
Introduction to cad cam
Introduction to cad camIntroduction to cad cam
Introduction to cad cam
 
Marketing Case Analysis
Marketing Case AnalysisMarketing Case Analysis
Marketing Case Analysis
 

Semelhante a Tecnicas programacao i_c_p1

Tecnicas programacao i_c_p3
Tecnicas programacao i_c_p3Tecnicas programacao i_c_p3
Tecnicas programacao i_c_p3D M
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cMaicon Rodrigues
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicaçõesnataferraz
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação CJose Augusto Cintra
 
Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4D M
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem corvel
 
IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1Ramon Mayor Martins
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação CSchoolByte
 

Semelhante a Tecnicas programacao i_c_p1 (20)

Tecnicas programacao i_c_p3
Tecnicas programacao i_c_p3Tecnicas programacao i_c_p3
Tecnicas programacao i_c_p3
 
Apostila c
Apostila cApostila c
Apostila c
 
Apostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-cApostila de-introdução-à-linguagem-c
Apostila de-introdução-à-linguagem-c
 
Ud2
Ud2Ud2
Ud2
 
15. introducao ao c++
15. introducao ao c++15. introducao ao c++
15. introducao ao c++
 
Introdução à Linguagem C
Introdução à Linguagem CIntrodução à Linguagem C
Introdução à Linguagem C
 
Linguagem C e Dev-C++ Algumas Explicações
Linguagem C e Dev-C++  Algumas ExplicaçõesLinguagem C e Dev-C++  Algumas Explicações
Linguagem C e Dev-C++ Algumas Explicações
 
Introdução à Linguagem de Programação C
Introdução à Linguagem de Programação CIntrodução à Linguagem de Programação C
Introdução à Linguagem de Programação C
 
Notas deaulas
Notas deaulasNotas deaulas
Notas deaulas
 
Infos algoritmo
Infos algoritmoInfos algoritmo
Infos algoritmo
 
Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4Tecnicas programacao i_c_p4
Tecnicas programacao i_c_p4
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1IES GF - Linguagem de Programação Estruturada - Parte 1
IES GF - Linguagem de Programação Estruturada - Parte 1
 
Aula 1 pc - slides
Aula 1   pc - slidesAula 1   pc - slides
Aula 1 pc - slides
 
Introdução a linguagem de programação C
Introdução a linguagem de programação CIntrodução a linguagem de programação C
Introdução a linguagem de programação C
 
Apostila de devc++ novo
Apostila de devc++ novoApostila de devc++ novo
Apostila de devc++ novo
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 
apostila de dev.pdf
apostila de dev.pdfapostila de dev.pdf
apostila de dev.pdf
 
Apostila de dev
Apostila de devApostila de dev
Apostila de dev
 

Tecnicas programacao i_c_p1

  • 1. Linguagem C Agradecimentos TÉCNICAS DE PROGRAMAÇÃO I Prof.John Hebert da Silva Felix johnfelix@unilab.edu.br Universidade da Integração Internacional da Lusofonia Afro-Brasiliera Curso de Engenharia de Energias Redenção-CE, Brasil 2015 Prof. John Hebert S. Felix 1/10 UNILAB Técnicas de Programação I
  • 2. Linguagem C Agradecimentos Índice da Apresentação 1 Linguagem C Linguagem C Prof. John Hebert S. Felix 2/10 UNILAB Técnicas de Programação I
  • 3. Linguagem C Agradecimentos LINGUAGEM C Prof. John Hebert S. Felix 3/10 UNILAB Técnicas de Programação I
  • 4. Linguagem C Agradecimentos Linguagem C 1 Introdução; 2 A Biblioteca-padrão e as Palavras Reservadas em C; 3 Tipos de Dados e Variáveis; 4 Operadores e Expressões; 5 Entrada e Saída E/S pelo Console; 6 Estruturas de Controles; 7 Funções; 8 Arrays e Strings; 9 Ponteiros; 10 Estruturas, Uniões e Enumerações; 11 Arquivos e Streams; 12 Estruturas de dados: Listas lineares (Filas, Pilhas e Listas Encadeadas). Ordenação e Pesquisa. Prof. John Hebert S. Felix 4/10 UNILAB Técnicas de Programação I
  • 5. Linguagem C Agradecimentos Linguagem C 1 Introdução; 2 A Biblioteca-padrão e as Palavras Reservadas em C; 3 Tipos de Dados e Variáveis; 4 Operadores e Expressões; 5 Entrada e Saída E/S pelo Console; 6 Estruturas de Controles; 7 Funções; 8 Arrays e Strings; 9 Ponteiros; 10 Estruturas, Uniões e Enumerações; 11 Arquivos e Streams; 12 Estruturas de dados: Listas lineares (Filas, Pilhas e Listas Encadeadas); Ordenação e Pesquisa. Prof. John Hebert S. Felix 4/10 UNILAB Técnicas de Programação I
  • 6. Linguagem C Agradecimentos Introdução Introdução A linguagem C foi desenvolvida por Dennis Ritchie no Bell Laboratories, a partir de outras duas linguagens mais antigas a BCPL e a B; C é uma linguagem de programação que permite uma abordagem estruturada e disciplinada para a escrita de programas; Os códigos escritos em C são portáveis, i.e, podem ser adaptados ao outros computadores com pouca ou nenhuma modificção nos códigos. Prof. John Hebert S. Felix 5/10 UNILAB Técnicas de Programação I
  • 7. Linguagem C Agradecimentos Introdução Introdução A linguagem C foi desenvolvida por Dennis Ritchie no Bell Laboratories, a partir de outras duas linguagens mais antigas a BCPL e a B; C é uma linguagem de programação que permite uma abordagem estruturada e disciplinada para a escrita de programas; Os códigos escritos em C são portáveis, i.e, podem ser adaptados ao outros computadores com pouca ou nenhuma modificção nos códigos. Prof. John Hebert S. Felix 5/10 UNILAB Técnicas de Programação I
  • 8. Linguagem C Agradecimentos Introdução Introdução A linguagem C foi desenvolvida por Dennis Ritchie no Bell Laboratories, a partir de outras duas linguagens mais antigas a BCPL e a B; C é uma linguagem de programação que permite uma abordagem estruturada e disciplinada para a escrita de programas; Os códigos escritos em C são portáveis, i.e, podem ser adaptados ao outros computadores com pouca ou nenhuma modificção nos códigos. Prof. John Hebert S. Felix 5/10 UNILAB Técnicas de Programação I
  • 9. Linguagem C Agradecimentos Introdução Introdução A linguagem C foi desenvolvida por Dennis Ritchie no Bell Laboratories, a partir de outras duas linguagens mais antigas a BCPL e a B; C é uma linguagem de programação que permite uma abordagem estruturada e disciplinada para a escrita de programas; Os códigos escritos em C são portáveis, i.e, podem ser adaptados ao outros computadores com pouca ou nenhuma modificção nos códigos. Prof. John Hebert S. Felix 5/10 UNILAB Técnicas de Programação I
  • 10. Linguagem C Agradecimentos A biblioteca-padrão e as palavras reservadas em C A Biblioteca-Padrão C Em 1983, foi estabelecido um comitê, pelo o ANSI (American National Standards Institute), com o objetivo de padronizar a linguagem C; Este comitê definiu o conteúdo e a forma padrão para a biblioteca C que ficou conhecido como padrão C ANSI; A biblioteca-padrão é formda por uma coleção de funções suportadas pelos compiladores ANSI; Uma biblioteca armazena um arquivo que tem o nome de cada função, o código-objeto e as infrmações para o processo de ligar (visto em compiladores x interpretadores); Os arquivos de cabeçalho que relacionam as funções da biblioteca são incluidos pela diretiva #include; A biblioteca-padrão contém os protótipos de funções que estão relacionados com os arquivos de cabeçalho. Prof. John Hebert S. Felix 6/10 UNILAB Técnicas de Programação I
  • 11. Linguagem C Agradecimentos A biblioteca-padrão e as palavras reservadas em C A Biblioteca-Padrão C Arquivo de Cabeçalho Finalidade assert.h Define macros que auxiliam na depuração de programas. ctype.h Define protótipos de função para funções utilizadas na manipulação de caracteres errno.h Define macros utilizadas na apresentação de erros. float.h Define os valores de tamanho de ponto flutuante do sistema. limits.h Define os valores de tamanho de inteiros do sistema. locale.h Contém protótipos de funções e outras informações que suportam a lo- calização. math.h Contém protótipos de função para funções utilizadas na biblioteca de matemtática. Prof. John Hebert S. Felix 6/10 UNILAB Técnicas de Programação I
  • 12. Linguagem C Agradecimentos A biblioteca-padrão e as palavras reservadas em C A Biblioteca-Padrão C Arquivo de Cabeçalho Finalidade setjmp.h Contém protótipos de função para funções utilizadas para evitar sequên- cia normal de chamada e de retorno de função. signal.h Contém protótipos de função e macros que suportam a manipulação de sinais. stdarg.h Define macros que suportam lista de argumentos de comprimentos va- riável. stddef.h Define tipos comuns normalmente utilizados em C. stdio.h Contém protótipos de função para funções de entrada e saída. stdlib.h Contém protótipos de função para conversões de número em texto e vice-versada, alocação de memória, números aleatórios e funções utili- tárias. string.h Contém protótipos de função para funções de processamento de strings. time.h Contém protótipos de função e tipo para manipular data e hora. Prof. John Hebert S. Felix 6/10 UNILAB Técnicas de Programação I
  • 13. Linguagem C Agradecimentos A biblioteca-padrão e as palavras reservadas em C Palavras reservadas em C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while Prof. John Hebert S. Felix 6/10 UNILAB Técnicas de Programação I
  • 14. Linguagem C Agradecimentos Tipos de Dados e Variáveis Tipos de Dados Um tipo de dado em C, define um conjunto de valores possíveis de serem armazenados em variáveis, bem como as diversas operações que podem ser realizadas com tais variaáveis. Em C há cinco tipos de dados primitivos, a saber: char: caractere simples. Tamanho de 1 byte (8 bits). Faixa de −127 a 127; int: valores inteiros. Tamanho de 2 bytes. Faixa de −32.767 a 32.767; float: números reais (ponto flutuante). Tamanho de 4 bytes. Faixa de ±3, 4 × 10±38; double: números reais (ponto flutuante duplo). Tamanho de 8 bytes. Faixa de ±1, 7 × 10±308; void: tipo de dado que indica vazio. Em C, o tipo de dado lógico é obtido pela utilização do valor 0 (zero) para falso (false) e 1 (um) ou qualquer valor diferente de zero para verdadeiro (true). Prof. John Hebert S. Felix 7/10 UNILAB Técnicas de Programação I
  • 15. Linguagem C Agradecimentos Tipos de Dados e Variáveis Tipos de Dados - modificadores Um modificador é utilizado para alterar um tipo de dado. Os modificadores em C são: signed, unsigned, long e short; Os modificadores podem ser aplicados aos tipos de dados básicos int e char. O long também pode ser aplicado a double; No C ANSI o long float foi retirado, devido este ter o mesmo significado do double. Exemplos: unsigned char: 1 byte (8 bits). Faixa de 0 a 127; unsigned short int: 2 bytes. Faixa de 0 a 65.535; long int: 4 bytes. Faixa de −2.147.483.647 a 2.147.483.647; unsigned long int: 4 bytes. Faixa de 4.294.967.295. Prof. John Hebert S. Felix 7/10 UNILAB Técnicas de Programação I
  • 16. Linguagem C Agradecimentos Tipos de Dados e Variáveis Variáveis e Constantes As variáveis são posições nomeadas de memória utilizadas para armazenar os dados, que podem ser modificados durante a execução do programa; As variáveis podem ser declaradas dentro de funções (variáveis locais), na definição de parâmetros (parâmetros formais) e localizadas foras das funções (variáveis globais); As variáveis locais são alocadas e desalocadas dentro de funções; Os parâmetros formais são os argumentos, i.e., variáveis delcaradas para receber os valores de argumentos de uma função; As variáveis globais podem ser utilizadas por qualquer parte do programa. Prof. John Hebert S. Felix 7/10 UNILAB Técnicas de Programação I
  • 17. Linguagem C Agradecimentos Tipos de Dados e Variáveis Sintaxe da Declaração de Variáveis Em C, a declaração de variáveis tem a seguinte sintaxe. tipo_de_dado identificador; tipo_de_dado lista_de_identificadores (separados por vírgula); Identificadores Válidos Em C, os nomes ou identificadores das variáveis devem atender as seguintes regras: 1 O identificador deve começar com um caractere alfabético ou “_”(underline); 2 O identificador pode ter caracteres numéricos, desde que atenda a regra 1; 3 O identificador não pode conter caracteres especiais; 4 Utilizar nomes significativos para representar as variáveis do programa; 5 C faz distinção entre letras minúsculas e maiúsculas,e.g., Nome e nome são variáveis diferentes; 6 Ex.:identificadores válidos: numero, conta, _nome, idade, B13, C2; 7 Ex.:identificadores inválidos: _av!15, entre..par, a-b, c&h, 1car. Prof. John Hebert S. Felix 7/10 UNILAB Técnicas de Programação I
  • 18. Linguagem C Agradecimentos Tipos de Dados e Variáveis Programa em C - declaração de variáveis //Bibliotecas no padrão C ANSI #include <stdio.h> #include <stdlib.h> //Função principal do programa int main (void){ //Declaração de variáveis unsigned short int numConta; unsigned char tipConta; float saldoConta; /* Corpo do programa Ações a serem executadas */ return 0;//Indica o fim do programa com sucesso } //Fim da função principal do programa Prof. John Hebert S. Felix 7/10 UNILAB Técnicas de Programação I
  • 19. Linguagem C Agradecimentos Tipos de Dados e Variáveis Variáveis e Constantes As constantes são variáveis com valores fixos, que não podem ser modificados pelo programa; Ex.: int cont = 0; A constante string é suportada por C. Uma string correponde a um conjunto de caracteres entre aspas dupla, e.g., “Hoje a noite tem festa”. C suporta constantes de barra invetida que insere caracteres especiais como constantes. Códigos de barra invetida Código Descrição n Nova linha. Insere o curso da tela no começo de uma nova linha t Tabulação horizontal. Movimenta o curso da tela para a próxima posição de tabulação horizontal " Aspas duplas. Insere aspas duplas ’ Aspas simples. Insere aspas simples 0 Nulo. Indica o fim de uma string Barra invertida. Insere um caractere de barra invetida em uma string v Tabulação vertical a Alerta (beep). Emite o sinal sonoro do sistema Prof. John Hebert S. Felix 7/10 UNILAB Técnicas de Programação I
  • 20. Linguagem C Agradecimentos Operadores e Expressões Operador de Atribuição Em C, o operador ou comando de atribuição é representado por =. A sintaxe deste operador é mostrado a seguir: variável = dado_atribuído; variável = expressão; ou variável1 = variável2= variáveln = expressão; A atribuição em C, pode ocorrer durante a declaração de variáveis conforme é mostrado a seguir. Atribuição de Valores em Variáveis #include <stdio.h> #include <stdlib.h> int main (void){ unsigned short int numConta = 1200013; unsigned char tipConta = ’F’; //F - pessoa Física e J - pessoa Jurídica float saldoConta = 2750.92; /* Corpo do programa - Ações a serem executadas */ return 0; } Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 21. Linguagem C Agradecimentos Operadores e Expressões Conversão de tipos de dados por atribuição Em C, a atribuição de valores a tipos diferentes pode converte o seu tipo de dado, e.g., a variá de destino recebe o valor da expressão e adequa tal valor a seu tipo de dado. Ex.: Conversão de tipo por atribuição #include <stdio.h> #include <stdlib.h> int main (void){ int inum; char ctex; float fvr; ctex = inum; /* ctex recebe os 8 bits menos significativos de inum, se inum for de 0 a 256, ctex tem valor semelhante ao de inum */ inum = fvr; /* inum recebe a parte inteira de fvr */ fvr = ctex; /* fvr converte o valor de ctex para ponto flutuante */ fvr = inum; /* fvr converte o valor de inum para flutuante */ return 0; } Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 22. Linguagem C Agradecimentos Operadores e Expressões Operadores Aritméticos Operador Função Exemplo + Adição c = a + b – Subtração (ou menos unário) c = a – b * Multiplicação c = a * b / Divisão c = a / b % Resto c = a % 4 – – Decremento – –a (pré-decremento) ou a– – (pós-decremento) ++ Incremento ++a (pré-incremento) ou a++ (pós-incremento) Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 23. Linguagem C Agradecimentos Operadores e Expressões Operadores Lógicos Operador Função Exemplo && AND f && v = f || OR f || v = v ! NOT !f = v Tabela verdade dos operadores lógicos &&, || e ! a b a && b a || b !a 0 0 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 24. Linguagem C Agradecimentos Operadores e Expressões Operadores Relacionais Operador Função Exemplo == Igual a c == a > Maior que a > b < Menor que a < b >= Maior ou igual a c >= a <= Menor ou igual a c <= a != Diferente c != a Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 25. Linguagem C Agradecimentos Operadores e Expressões Operadores Bit a Bit Operador Função Exemplo & AND Equivante a && ! OR Equivante a || ˆ OR exclusivo (XOR) ˜ Complemento de um ˜ a (inverte os bits, 1 == 0 e 0 ==1) » Deslocamento à esquerda a = b»2; « Deslocamento à direita b = a«1; Tabela verdade dos operador lógico ˆ XOR a b a ˆ b 0 0 0 0 1 1 1 0 1 1 1 0 Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 26. Linguagem C Agradecimentos Operadores e Expressões Ex.: Incremento e deslocamento de bits #include <stdio.h> int main (void){ int a = 3, b = 3; printf(“Mostra o valor de a: %dn", a); /* Realiza o pré-incremento */ printf(“Realiza o pré-incremento: %dn”, ++a); printf(“Mostra o valor de a com pré-incremento:%dn”, a); a = 3; printf(“Mostra o valor de a: %dn", a); /* Realiza o pós-incremento */ printf(“Realiza o pós-incremento: %dn”, a++); printf(“Mostra o valor de a com pós-incremento:%dn”, a); /* Realiza o deslocamento à esquerda */ printf(“Realiza o deslocamento à esquerda:%d:%d:%dn”, b, b«1, b«2); b = 3; /* Realiza o deslocamento à direita */ printf(“Realiza o deslocamento à direita:%d:%d:%dn”, b, b»1, b»2); return 0; } Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 27. Linguagem C Agradecimentos Operadores e Expressões Operadores: ternário ? e ponteiros & e ∗ O operador ternário ? pode substituir a estrutura de seleção if-then-else; A forma do operador ternário ? é: expressão1 ? expressão2 : expressão3; Ex.: a = c > 5 ? 10 : 30; Se a expressão1 (c > 5) é verdadeira, a = 10, caso contrário, a = 30; Operadores: ternário ? e ponteiros & e ∗ Um endereço de uma variável na memória é chamado de ponteiro; Os operadores & e ∗ são unários. O primeiro operador & retorna o endereço na memória de seu operando. O segundo operador ∗ é o complemento de & e retorno o valor da variável localizada no endereço que o segue. Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 28. Linguagem C Agradecimentos Operadores e Expressões Ex.: Ponteiros #include <stdio.h> int main (void){ int valor, aux; int *endereco; aux = 7; endereco = &aux; valor = *endereco; printf(“O endereço é:%dn”, endereco); printf(“O valor é:%dn”, valor); return 0; } Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 29. Linguagem C Agradecimentos Operadores e Expressões Operadores: vígula (,), ponto (.) e seta (->) O operador vígula (,) é utilizado para fazer o encadeamento de expressão, e.g., a = (b = 5, b + 2); Os operadores ponto (.) e seta (->) são utilizados no referenciamento de estruturas e uniões. Estes são tipos de dados compostos referenciado por um mesmo nome (identificador); Operadores: parênteses () e colchetes [] O operador parênteses () aumenta a precedência entre das operações que estão no seu interior; O operador colchetes [] permite indexar arrays unidimensionais (vetores) e arrays bidimensionais (tabelas), e.g., char texto[10]; Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 30. Linguagem C Agradecimentos Operadores e Expressões Precedêcia entre os operadores em C Operadores Associatividade Tipo ( ) [ ] -> esquerda para direita maior + – ++ – – ! * & (tipo) direita para esquerda unário * / % esquerda para direita multiplicativo + – esquerda para direita aditivo < <= > >= esquerda para direita relacional == != esquerda para direita igualdade/diferença & esquerda para direita AND lógico ˆ esquerda para direita XOR lógico | esquerda para direita lógico && esquerda para direita lógico || esquerda para direita lógico ?: esquerda para direita condicional = += –= *= /= esquerda para direita atribuição Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 31. Linguagem C Agradecimentos Operadores e Expressões Expressões e Blocos de Comandos Em C, uma expressão é uma combinação válida de operadores, constantes e variaáveis; Converter uma expressão a mudar para um determindado tipo de dado é denomindado de cast. A forma do cast é (tipo) expressão. Ex.: (double) var1/10; C reduzido consiste em simplificar a codificação de operadores de atribuição. A forma do C reduzido é variável operador = expressão correponde a forma normal variável = variável operador expressão. Ex.: a = a + 5; na forma simplificada fica a+ = 5; Os blocos de comandos são conjuntos ou grupos de comandos relacionados, que são tratados como unidade. Em C, um bloco de comando estar entre chaves { comandos }, i.e, o início é indicado por { e o fim por }. Prof. John Hebert S. Felix 8/10 UNILAB Técnicas de Programação I
  • 32. Linguagem C Agradecimentos Entrada e Saída E/S pelo Console Comandos de entrada e saída A entrada de dados em C é realizada pelo comando scanf(); A saída de dados é executada pelo comando printf(); Estes comandos podem realizar a entrada e saída formadas, i.e., ler e escrever nos diversos tipos de dados. Sintaxe dos comandos de entrada e saída scanf(“Texto / formato de dado”,&var1); scanf(“Texto / formatos de dados”,&var1, &var2,. . . , &varn); printf(“Texto / formato de dado”, result1); printf(“Texto / formatos de dados”, result1, result2,. . . , resultn); Exemplos para os comandos de entrada e saída scanf (“%c %d %f”, &tipoConta, &numConta, &valorConta); printf (“%c %d %f”, tipoConta, numConta, valorConta); Prof. John Hebert S. Felix 9/10 UNILAB Técnicas de Programação I
  • 33. Linguagem C Agradecimentos Entrada e Saída E/S pelo Console Especificadores de formato de scanf() Código Descrição de formato de leitura %c caractere único %d %i inteiros decimal %e %f %g valor em ponto flutuante %o valor em octal %p ponteiro %n recebe um valor inteiro igual ao número de caracte- res lidos até esse ponto %s string %u inteiros sem sinal %x valor em hexadecimal %[] procura um conjunto de caractere % Prof. John Hebert S. Felix 9/10 UNILAB Técnicas de Programação I
  • 34. Linguagem C Agradecimentos Entrada e Saída E/S pelo Console Especificadores de formato de printf() Código Descrição %c caractere %d %i inteiros decimais com sinal %e %E notação científica (minúsculo e maiúsculo) %f ponto flutuante decimal %g utiliza %e ou %f, o que for mais curto %G utiliza %E ou %F, o que for mais curto %o octal sem sinal %p mostra um ponteiro %n mostra o número de caracteres escritos até esse ponto %s string %u inteiros decimais sem sinal %x %X hexadecimal sem sinal (minúsculo e maiúsculo) %% mostra o símbolo % Prof. John Hebert S. Felix 9/10 UNILAB Técnicas de Programação I
  • 35. Linguagem C Agradecimentos Entrada e Saída E/S pelo Console Especificador de largura mínima e de precisão O especificador de largura mínima, que correponde a um número entre o símbolo % e o especificador de formato (e.g, %4c) limita o tamanho de preencimento de uma variável; O especificador de precisão acompanha o anteriro e especifica o número de casas decimais (e.g, %4.8s, mostra uma string que tenha entre 4 e 8 caracteres); Exemplo: #include <stdio.h> int main (void){ double num1 = 11.123456; printf(“%fn”, num1); printf(“%2.3fn”, num1); printf(“%010.5fn”, num1); printf(“%8.26sn”, “Quando aplicado a um texto limita o seu tamanho”); return 0; } Prof. John Hebert S. Felix 9/10 UNILAB Técnicas de Programação I
  • 36. Linguagem C Agradecimentos Agradecimentos Agradeço a todos pela atenção! Prof. John Hebert S. Felix 10/10 UNILAB Técnicas de Programação I