Escolar Documentos
Profissional Documentos
Cultura Documentos
Curso de C/C++
Aula 1
Instrutor: Francisco Magalhes Material por: Allan Lima http://allanlima.wordpress.com/
Voc pode:
copiar, distribuir, exibir e executar a obra criar obras derivadas fazer uso comercial da obra Atribuio. Voc deve dar crdito ao autor original, da forma especificada pelo autor ou licenciante. Compartilhamento pela mesma Licena. Se voc alterar, transformar, ou criar outra obra com base nesta, voc somente poder distribuir a obra resultante sob uma licena idntica a esta. Para cada novo uso ou distribuio, voc deve deixar claro para outros os termos da licena desta obra. Qualquer uma destas condies podem ser renunciadas, desde que Voc obtenha permisso do autor.
Roteiro
O objetivo do curso
Histria da linguagem C Caractersticas da linguagem C
Sistemas de tipos
Variveis e operadores Estruturas de controle Funes Entrada e Sada
O objetivo do curso
Entender
bem o funcionamento do programa na memria do computador E principalmente, aprender onde e como encontrar ajuda
Histria da Linguagem C
Dennis
Baseada na Linguagem B
www.viphostsystem.com
Histria da Linguagem C
Padronizao de 82 a 89 (C ANSI)
At hoje existem problemas entre os diversos compiladores e sistemas operacionais
Caractersticas
Paradigma Procedural
Flexvel Alta performance
Poucas restries
tima iterao com:
Sistemas
Palavras Reservadas
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
Tipos
char,
E 4 modificadores bsicos:
signed,
unsigned, long e short Os 4 podem ser aplicados ao int long pode ser aplicado ao double signed e unsigned aplicados ao char
Tipos
Modificadores de acesso:
const: a varivel
no pode ter o seu valor alterado volatile: a varivel pode ter o seu valor modificado fora do controle do programa
Classes de Armazenamento:
auto: indica que
uma varivel local (opcional), tambm usada na declarao de nested functions extern: varivel declarada em outro arquivo register: armazena, se possvel, a varivel em um registrador na prpria CPU.
Tipos
Classes de
Armazenamento (Cont.):
static:
no permite que um mdulo externo possa alterar nem ver uma varivel global, tambm usado para manter o valor de uma varivel local em uma funo de uma chamada para outra.
Tipos
Restries:
short long
short
Variveis
Declarao:
tipo
nome = inicializao;
Escopo da variveis:
globais:
podem ser usadas em qualquer lugar do programa locais: podem ser usadas apenas na funo onde foi declarada
Exemplo
int a, b = 10; // Variveis globais
void f(char c) { double d = 10.0; // Varivel local int i = a; // Varivel local // ... } int main() { int i = b; return 0; } // Varivel local
Exemplos
exemploRegister.c
exemploStatic.c exemploAuto.c
Variveis
Restries
nome das variveis deve comear com uma letra ou um sublinhado _ Os demais caracteres podem ser letras, nmeros ou sublinhado O nome da varivel no pode ser igual a uma palavra reservada e aos nomes das funes Tamanho mximo para o nome de uma varivel:
32 caracteres
Constantes
Octais
Exemplos:
\n
(caractere), C++ (string), 10 (inteiro), 15.0 (float), 0xEF (239 em decimal), 03212 (1674 em decimal)
Cdigo \b \f \t \n
Significado Retrocesso (backspace) Alimentao de Formulrio (form feed) Tabulao Horizontal (tab) Nova Linha
\
\ \0
Aspas
Apostrofo Nulo
\\
\a \N \xN
Barra Invertida
Sinal Sonoro (Beep) Constante Octal (N o valor da constante) Constante Hexadecimal (N o valor da constante)
Operadores Aritmticos
Operador Ao Soma Subtrao ou troca de sinal Multiplicao
+ *
/
% ++ --
Diviso
Resto da diviso inteira Incremento Decremento
Exerccios
1)
2)
Operadores Relacionais
Operador > >= Relao Maior que Maior que ou igual a
<
<= ==
Menor que
Menor que ou igual a Igual a
!=
Diferente de
Operadores Lgicos
Operador &&
Funo AND
||
!
OR
NOT
Ao AND Lgico OR Lgico XOR (OR exclusivo) NOT Shift Rigth Shift Left
Exerccios
3)
Tabela de Precedncias
= += -= *= /= ? || && | ^ & == != <<= >>= << >> + * / % ! ~ ++ -. * & ( ) [ ] ->
Precedncia
Casts
Sintaxe:
(tipo)
expresso
Exemplo:
long a = 10, b = 4; // f = 2.5 double f = (double) a/b;
Controladores de Fluxo
if
if (condio) { declarao }
if (condio1) { declarao1 }
Exemplo
int a = 2;
if (2) { a = 4; } else if (0) { a = 0; } if (a) { a = -a; }
?:
Exemplo
switch
switch (varivel) { case (constante1): declarao1; break; // O break opcional // ... case (constanteN): declaraoN; break; // O break opcional default: declaraoDefault;
Exemplo
switch (a) {
case (1): // ... break; case (2): // ... break; default: // ... }
for
for (comando; condio; comando) {
declarao; }
Exemplo:
// o i no pode ser declarado no for int i; int a = 0;
while
while (condio) { declarao; }
do-while
do {
declarao; } while (condio);
Executa a declarao pelo menos uma vez, j que a verificao da condio feita apenas no final de cada iterao do loop
Exemplo
int i = 0;
int a = 0; do {
a = a + 14;
i++; } while (i < 0);
continue
while (1) {
i++;
if (i % 2 == 0) { continue;
}
a = a + 14; }
goto
O goto pode ser usado para dar um salto incondicional no fluxo do programa
Exemplo: int a = 0;
inicio:
a++; if (a < 10) {
goto inicio;
}
Funes
Sintaxe:
Funes que no possuem retorno so void O retorno de uma funo feito atravs do comando return
Exemplos
int dobro(int a) {
return 2 * a; } int main(int a) { int c; c = 8; c = dobro(c); return 0; }
Exemplos
int a;
scanf(%d, &a); // l a printf(%d, a); // escreve a char ch;
scanf(%c, &ch); // l c
printf(%c, ch); // escreve c float num;
scanf(%f, &num); // l f
printf(%f, num); // escreve f
Exerccios
4)
Escreva um programa que l um inteiro do teclado responde sim se ele um mltiplo de 3 e no caso contrrio
5)
Implemente um programa que l 10 inteiros do teclado ou para quando dois inteiros consecutivos sejam digitados. Aps a leitura o programa dever imprimir o maior, o menor, a mdia e a soma dos nmeros digitados.
6)
Modifique a sua resposta para o exerccio anterior trocando os loops (for, while, do-while) para goto
Referncias
00/c/c.html
characters.html
Agradecimentos
Pelo