Академический Документы
Профессиональный Документы
Культура Документы
Histrico
A linguagem C uma linguagem de programao inventada na dcada de 1970 por Dennis Ritchie Brian Kennigaham. O ANSI (American National Standard Institute) padronizou a verso ANSI-C
http://en.wikipedia.org/wiki/C_programming_language
Primeiros passos
Um programa em C consiste de vrias funes encadeadas. Uma funo um bloco de cdigo de programa que pode ser usado diversas vezes em sua execuo. Blocos de cdigo so delimitados por chaves: {} O uso de funes permite que o programa fique mais legvel, mais estruturado.
O C Case Sensitive
Caracteres maisculos e minsculos fazem diferena:
auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while
Estrutura Geral
tipo_de_retorno tipo_de_retorno main() main() { { comandos comandos return return valor; valor; } } Exemplo: int int main() main() { { int int x, x, y; y; x x= =x x+ + y; y; return return 0; 0; } }
A funo main()
Todo programa deve ter uma nica funo main. A funo main o ponto de partida quando o programa executado. Arquivos auxiliares no devem conter a funo main.
Bibliotecas
Programas que possuem a especificao das funes pr-definidas da linguagem. As bibliotecas que sero usadas devem ser os primeiros comandos de um programa em C.
#include #include <nome_da_biblioteca.h> <nome_da_biblioteca.h> int int main() main() {{ <aoes> <aoes> return return 0; 0; }}
Bibliotecas
Programas que possuem a especificao das funes pr-definidas da linguagem. As bibliotecas que sero usadas devem ser os primeiros comandos de um programa em C.
#include #include <nome_da_biblioteca.h> <nome_da_biblioteca.h> int int main() main() { { <aoes> <aoes> return return 0; 0; } }
1
Bibliotecas :: Exemplos
stdio.h: biblioteca de funes de entrada e sada (leitura e escrita de dados). math.h: biblioteca de funes matemticas (potenciao, raiz quadrada, funes trigonomtricas, etc.). string.h: biblioteca de funes para manipulao de conjunto de caracteres (por exemplo, palavras).
Comentrios
Comentrios em C podem ser escritos em qualquer lugar do texto para facilitar a interpretao do algoritmo. Tipos de comentrios:
Delimitados por /* e */.
Todo o texto delimitado considerado pelo compilador como um comentrio.
Variveis, Conceito
Representa um espao na memria do computador que usado para amazenar um determinado tipo de dado;
Identificadas na fase de modelagem do problema; Ou no...
Variveis
Devem ser declaradas antes de serem usadas, no incio de um bloco de cdigo. Forma geral da declarao de variveis:
tipoDaVarivel tipoDaVarivel lista_de_variveis; lista_de_variveis; Exemplo: char char float float int int letra; letra; temperatura, temperatura, pressao; pressao; dia, dia, mes, mes, ano; ano;
Variveis, nome
Variveis so armazenadas na memria do computador.
Endereo 0000 0001 0002 0003 0004 0005 ... FFFF Contedo
Tipos de dados
A linguagem C tem 5 tipos bsicos:
char int float void caracteres 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
Cada compilador livre para escolher tamanhos adequados para o seu prprio hardware.
Identificadores
So os nomes que damos aos objetos utilizados (variveis, constantes, funes, etc.) Podem ter qualquer nome, desde que:
Comece com uma letra ou sublinhado (underscore) _ Os caracteres subseqentes devem ser letras, nmeros ou _. No seja igual a:
uma palavra reservada, uma funo declarada bibliotecas do C.
Identificadores :: Exemplos
Permitido
int int _mes; _mes; int int ano_Atual; ano_Atual; float float temp1; temp1; char char palavraDigitada; palavraDigitada;
No permitido!
char char 2a_feira; 2a_feira; int int valores$; valores$; float float float; float; int int main; main; char char stdio; stdio;
Constantes
So valores que permancem inalterados durante toda execuo do programa. Sua definio no usa ponto-e-vrgula, nem sinal de igualdade.
#define #define <identificador> <identificador> <valor> <valor> Exemplos: #define #define #define #define #define #define PI PI ANO ANO LETRA LETRA 3.1415 3.1415 2009 2009 ' 'A' A'
Constantes
Costuma-se definir o nome das constantes com letras maisculas, para diferenci-los de nomes de variveis e funes. Essa prtica melhora a legibilidade do programa. Definio de constantes facilita a manuteno do programa.
Operador de Atribuio
Uma varivel, ao ser definida, contm um valor qualquer e imprevisvel. Costuma-se dizer que contm lixo de memria. O comando de atribuio (=) permite alterar o valor (contedo) de uma varivel.
<varivel> <varivel> = = <valor>; <valor>;
Operador de Atribuio
Exemplos:
atribuio de valor
= = = = = =
0100 0001
Varivel
Memria
n+1 posies
Operadores
Aritmticos Relacionais Lgicos Bit a bit
Operadores Aritmticos
Operador + * / % ++ -Adio Subtrao Multiplicao Diviso Resto de diviso Incremento Decremento Ao Exemplo x = x + 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 2* * PI PI * * raio; raio; b*b b*b 4*a*c; 4*a*c;
A ordem de execuo dos operadores pode ser determinada explicitamente pelo uso de parnteses:
media media delta delta = = = = (a (a + +b b+ + c)/2; c)/2; (b*b) (b*b) (4*a*c); (4*a*c);
Operadores Aritmticos
Quando no h parnteses, o compilador usa regras de precedncia para determinar qual operao executar primeiro
Maior Maiorprecedncia precedncia - (unrio) (unrio) * */ /% % + +Menor Menorprecedncia precedncia
int int nn == 0, 0, mm == 0, 0, a, a, b, b, c, c, d; d; n++; /* */ n++; /* resultado: resultado: nn == 11 */ ++m; /* */ ++m; /* resultado: resultado: mm == 11 */ n--; /* */ n--; --n; --n; /* resultado: resultado: nn == -1 -1 */ aa == n++; /* n++; /* resultado: resultado: aa == -1; -1; nn =0 =0 */ */ bb == ++m; /* */ ++m; /* resultado: resultado: bb == 2; 2; mm == 22 */ cc == 2*(m++); */ 2*(m++); /* /* resultado: resultado: cc == 4; 4; mm == 33 */ dd == 3*(++n); */ 3*(++n); /* /* resultado: resultado: dd == 3; 3; nn == 11 */
int int nn == 0, 0, mm == 0, 0, a, a, b, b, c, c, d; d; n--; n--; --m; --m; n++; n++; ++n; ++n; aa == n--; n--; bb == --m; --m; cc == 2*(m--); 2*(m--); dd == 3*(--n); 3*(--n);
int int nn == 0, 0, mm == 0, 0, a, a, b, b, c, c, d; d; n--; /* */ n--; /* resultado: resultado: nn == -1 -1 */ --m; /* */ --m; /* resultado: resultado: mm == -1 -1 */ n++; /* */ n++; ++n; ++n; /* resultado: resultado: nn == 11 */ aa == n--; /* n--; /* resultado: resultado: aa == 1; 1; nn == 00 */ */ bb == --m; /* --m; /* resultado: resultado: bb == -2; -2; mm == -2 -2 */ */ cc == 2*(m--); 2*(m--); /* /* resultado: resultado: cc == -4; -4; mm == -3 -3 */ */ dd == 3*(--n); 3*(--n); /* /* resultado: resultado: dd == -3; -3; nn == -1 -1 */ */
AND OR XOR (OR exclusivo) NOT Deslocamento de bits direita Deslocamento de bits esquerda 8
Operadores Relacionais
Compara dois valores, produzindo um resultado lgico:
FALSO indicado pelo valor zero. VERDADEIRO indicado por um valor zero. Operador Ao
Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de
Operadores Lgicos
Operam sobre os valores lgicos das variveis, sem considerar seu bits individuais. No confundir com operadores bit a bit.
Operador Ao
&& || !
int int cond; cond; int int aa == 3; 3; float float xx == 1.5; 1.5; cond cond cond cond */ */ cond cond cond cond cond cond cond cond cond cond == (a/2 (a/2 == == x) x) && && (a (a >> 2); 2); == (a (a != != x) x) || || (a/x (a/x << 2); 2); == == == == == /* /* cond=0 cond=0 -> -> FF */ */ /* /* cond=1 cond=1 -> -> VV
(x /* (x <= <= a) a) && && (a (a >= >= 2*x); 2*x); /* cond=1 cond=1 -> -> VV */ */ !(a/3 /* !(a/3 <= <= x); x); /* cond=0 cond=0 -> -> FF */ */ (a/2==x) || (a>=x) && !(2*x!=a); /* cond=1 -> V */ (a/2==x) || (a>=x) && !(2*x!=a); /* cond=1 -> V */ aa && /* && x; x; /* cond=1 cond=1 -> -> VV */ */ (a /* (a -- 2*x) 2*x) || || (x (x << a/2); a/2); /* cond=0 cond=0 -> -> FF */ */
11
Comandos de Entrada:
Funo scanf() Funo getchar()
12
13a
O resultado do comando a impresso do caractere corresponde ao cdigo ASCII do argumento. Argumento pode ser do tipo int ou char.
14
mascaraDeLeitura: comandos de formato (%_), os mesmos relacionados para o printf(). argumentos: endereo das variveis onde sero colocados os valores de entrada: &nome_varivel.
O operador & representa o endereo de uma varivel.
15
16
gets(nomeDaVarivel); gets(nomeDaVarivel);
17
Modeladores (Cast)
Modeladores ou cast so aplicados a uma expresso para converter seu resultado em um tipo especificado.
(<tipo>) (<tipo>) <expresso> <expresso>
19
Questes
Tabela ASCII
American Standard Code for Information Interchange (ASCII) um conjunto de cdigos para o computador representar nmeros, letras, pontuao e outros caracteres. http://pt.wikipedia.org/wiki/ASCII
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