Histrico
A linguagem C uma linguagem de programao programa genrica inventada na dcada de 1970 por Dennis gen d Ritchie.
O ANSI (American National Standard Institute) (American Institute) padronizou a verso ANSI-C ANSI-
1 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Primeiros passos
Um programa em C consiste de vrias funes v fun encadeadas. encadeadas. Uma funo um bloco de cdigo de programa que fun c pode ser usado diversas vezes em sua execuo. execu Blocos de cdigo so delimitados por chaves: {} c O uso de funes permite que o programa fique mais fun legvel, mais estruturado. leg vel, estruturado.
O C Case Sensitive
Caracteres maisculos e minsculos fazem mai min diferena: diferen
Comandos do C (if ou for, por exemplo) s (if for, s podem ser escritos em minsculas, pois seno o min compilador interpretar como variveis. interpretar vari
Estrutura Geral
tipo_de_retorno main() tipo_de_retorno main() { { comandos comandos return valor; return valor; } } int main() int main() { { int x, y; int x, y; x = x + y; x = x + y; return 0; return 0; } }
A funo main()
Todo programa deve ter uma nica funo fun main. main. A funo main o ponto de partida quando o fun programa executado. Arquivos auxiliares no devem conter a funo fun main. main.
Exemplo:
2 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Bibliotecas
Programas que possuem a especificao das especifica funes pr-definidas da linguagem. fun pr As bibliotecas que sero usadas devem ser os primeiros comandos de um programa em C.
#include <nome_da_biblioteca.h> #include <nome_da_biblioteca.h> int main() int main() { { <aoes> <aoes> return 0; return 0; } }
Bibliotecas :: Exemplos
stdio.h: biblioteca de funes de entrada e stdio.h: fun sada (leitura e escrita de dados). sa math.h: biblioteca de funes matemticas math.h: fun matem (potenciao, raiz quadrada, funes (potencia fun trigonomtricas, etc.). trigonom string.h: biblioteca de funes para string.h: fun manipulao de conjunto de caracteres (por manipula exemplo, palavras). palavras).
Comentrios
Comentrios em C podem ser escritos em Coment qualquer lugar do texto para facilitar a interpretao do algoritmo. interpreta Tipos de comentrios: coment
Delimitados por /* e */. */.
Todo o texto delimitado considerado pelo compilador como um comentrio. coment
Variveis
Devem ser declaradas antes de serem usadas, usadas, no incio de um bloco de cdigo. in c Forma geral da declarao de variveis: declara vari
tipo_da_varivel lista_de_variveis; tipo_da_varivel lista_de_variveis; Exemplo: char char float float int int letra; letra; temperatura, pressao; temperatura, pressao; dia, mes, ano; dia, mes, ano;
3 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Variveis
Variveis so armazenadas na Vari memria do computador. mem
Endereo 0000 0001 0002 0003 0004 0005 ... FFFF Contedo
Tipos de dados
A linguagem C tem 5 tipos bsicos: b
char int float void caractere ASCII nmero inteiro nmero real de preciso simples sem valor
Tipos de dados
Tipo Tamanho (bytes) Tamanho (bits)
1 4* 4 8
8 32* 32 64
4 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Cada compilador livre para escolher tamanhos adequados para o seu prprio hardware. pr
Identificadores
So os nomes que damos aos objetos utilizados (variveis, constantes, funes, etc.) (vari fun Podem ter qualquer nome, desde que:
Comece com uma letra ou sublinhado (underscore) _ (underscore) Os caracteres subseqentes devem ser letras, subseq letras, nmeros ou _. No seja igual a:
uma palavra reservada, uma funo declarada fun bibliotecas do C.
5 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Identificadores :: Exemplos
Permitido
int int _mes _mes int int ano_atual ano_atual float temp1 float temp1 char palavra_digitada char palavra_digitada
Constantes
No permitido!
char 2a_feira char 2a_feira int int valores$ valores$ float float float float int main int main char stdio char stdio
Constantes so valores fixos que no podem ser modificados em nenhuma parte do programa. Sua definio no usa ponto-e-vrgula, nem defini pontorgula, sinal de igualdade. igualdade.
#define <identificador> <valor> #define <identificador> <valor> Exemplos: #define #define #define #define #define #define PI PI ANO ANO LETRA LETRA 3.1415 3.1415 2007 2007 ' 'A' A'
Constantes
Costuma-se definir o nome das constantes com Costumaletras maisculas, para diferenci-los de nomes mai diferenci de variveis e funes. vari fun Essa prtica melhora a legibilidade do pr programa. Definio de constantes facilita a manuteno Defini manuten do programa.
Operador de Atribuio
Uma varivel, ao ser definida, contm um valor vari cont qualquer e imprevisvel. Costuma-se dizer que imprevis vel. Costumacontm lixo de memria. cont mem ria. O comando de atribuio (=) permite alterar o atribui (= valor (contedo) de uma varivel. (conte vari
<varivel> = <valor>; <varivel> = <valor>;
6 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Operador de Atribuio
Exemplos:
atribuio de valor atribui
letra letra ano ano temperatura temperatura nova_letra nova_letra float cateto float cateto area_ret area_ret
== 'H'; 'H'; == 2007; 2007; == 38.9; 38.9; == letra; letra; == 3.1; 3.1; == base ** altura; base altura;
atribuio de uma atribui varivel a outra vari definio e atribuio defini atribui atribuio de frmula atribui f
0100 0001
Varivel Vari
Memria Mem
Operadores
Aritmticos Aritm Relacionais Lgicos
B
n caracteres Varivel Vari
Memria Mem
7 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Operadores Aritmticos
Operador + * / % ++ -Adio Adi Subtrao Subtra Multiplicao Multiplica Diviso Resto de diviso Incremento Decremento Ao Exemplo x = A + y; x = x y; x = 8 * y; x = y / 2; x = y % 2; x++; ++; y--; --;
Operadores Aritmticos
Diversos operadores podem ser utilizados em uma mesma expresso:
area area delta delta = = = = 2 * PI * raio; 2 * PI * raio; b*b 4*a*c; b*b 4*a*c;
A ordem de execuo dos operadores pode ser execu determinada explicitamente pelo uso de parnteses: parnteses:
media media delta delta = (a + b + c)/2; = (a + b + c)/2; = (b*b) (4*a*c); = (b*b) (4*a*c);
Operadores Aritmticos
Quando no h parnteses, o compilador usa h regras de precedncia para determinar qual operao executar primeiro opera
Maior precedncia Maior precedncia - (unrio) un rio) - (unrio) * / % * / % + + Menor precedncia Menor precedncia
Se duas operaes tm a mesma precedncia, opera segue-se a ordem da esquerda para a direita. seguedireita.
8 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Operadores Relacionais
Compara dois valores, produzindo um resultado lgico:
FALSO indicado pelo valor zero. zero. VERDADEIRO indicado por um valor zero. zero. Operador Ao
Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de
Embora sejam mais eficientes, tornam o eficientes, programa mais difcil de dif se compreendido.
9 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Operadores Lgicos
Operam sobre os valores lgicos das variveis, sem vari considerar seu bits individuais.
Operador Ao
&&
AND (E)
||
OR (OU)
NOT (NO)
int int cond; cond; int int aa == 3; 3; float xx == 1.5; float 1.5; cond cond cond cond cond cond cond cond cond cond cond cond cond cond == == == == == == == /* cond=0 -> FF */ (a/2 == x) && (a >> 2); (a/2 == x) && (a 2); /* cond=0 -> */ (a != x) || (a/x << 2); /* cond=1 -> VV */ (a != x) || (a/x 2); /* cond=1 -> */ (x <= a) && (a >= 2*x); /* cond=1 -> VV */ (x <= a) && (a >= 2*x); /* cond=1 -> */ !(a/3 <= x); /* cond=0 -> FF */ !(a/3 <= x); /* cond=0 -> */ (a/2==x) || (a>=x) && !(2*x!=a); /* cond=1 -> VV */ (a/2==x) || (a>=x) && !(2*x!=a); /* cond=1 -> */ aa && x; /* cond=1 -> VV */ && x; /* cond=1 -> */ (a -- 2*x) || (x << a/2); /* cond=0 -> FF */ (a 2*x) || (x a/2); /* cond=0 -> */
! *
==
!=
10 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
nova linha tabulao horizontal tabula a prpria contra-barra pr contra backspace aspas apstrofe ap cdigo hexadecimal do caractere ASCII alerta sonoro
11 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
gets(nome_da_varivel); gets(nome_da_varivel); string_de_controle: comandos de formato (%_), string_de_controle: (%_), os mesmos relacionados para o printf(). printf(). argumentos: endereo das variveis onde sero argumentos: endere vari colocados os valores de entrada: &nome_varivel. nome_vari vel.
O operador & representa o endereo de uma varivel. endere vari
12 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
Modeladores (Cast)
Modeladores ou cast so aplicados a uma expresso para converter seu resultado em um tipo especificado.
(<tipo>) <expresso> (<tipo>) <expresso>
Tabela ASCII
American Standard Code for Information Interchange (ASCII) um conjunto de cdigos c para o computador representar nmeros, letras, n pontuao e outros caracteres. pontua
Binrio 0100 0001 0100 0010 0100 0011 0010 1011 0011 0001
Decimal 65 68 67 43 49
Hex 41 42 43 2B 31
Caractere A B C + 1
13 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
/* Arquivo Capitulo_02_05.c */ /* stdio.h a biblioteca em C que implementa as funes de entrada e sada */ stdio.h fun sa #include <stdio.h> stdio.h> /* mdulo principal */ m int main() main() /* O caractere "{" a abertura do bloco. Corresponde ao "incio". "in O caractere "}" corresponde ao "fim" */ { /* A declarao de variveis se inicia pelo tipo seguido pelas variveis */ declara vari vari int valor_inicial, valor_temp, milhar, centena, dezena, unidade, valor_invertido; valor_inicial, valor_temp, valor_invertido; /* "printf" corresponde ao comando "escreve". O /n faz pular para a prxima linha "printf" pr */ printf("Entre com um nmero.\n"); printf("Entre nmero.\ /* "scanf" corresponde ao comando "leia" */ "scanf" /* necessrio colocar o caractere "&" antes da varivel que ser lida, para necess vari ser indicar que a mesma ser alterada */ ser /* necessario indicar o tipo da varivel a ser lida. vari No caso, os inteiros so indicados pelo "%d" */ scanf("%d", &valor_inicial); scanf("%d", &valor_inicial);
/* o caractere "=" corresponde a "" */ " valor_temp = valor_inicial; valor_inicial; milhar = valor_temp / 1000; /* O operador "%" corresponde ao operador "resto" */ valor_temp = valor_temp % 1000 ; centena = valor_temp / 100; valor_temp = valor_temp % 100; dezena = valor_temp / 10; valor_temp = valor_temp % 10; unidade = valor_temp; valor_temp; valor_invertido = unidade * 1000; valor_invertido = valor_invertido + ( dezena * 100 ); valor_invertido = valor_invertido + ( centena * 10 ); valor_invertido = valor_invertido + milhar; /* Na escrita, o %d substitudo pela varivel na seqncia. No caso a seguir, O valor substitu vari seq da varivel valor_inicial inserido na posio do primeiro %d e o valor da varivel vari posi vari valor_invertido na posio do segudo %d */ posi printf("O nmero %d invertido %d\n", valor_inicial,valor_invertido); printf("O n %d\ valor_inicial,valor_invertido); /* Retorno do mdulo principal */ m return 0; }
Questes
14 Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.