O documento apresenta uma introdução à linguagem de programação C, abordando seu histórico, características, sintaxe, tipos de dados, operadores, funções e exemplos de código.
Histórico Surgiu nadécada de 1970 nos laboratórios Bell. Dennis Richie e Brian Kerninghan implementaram C usando um DEC PDP-11 rodando o SO UNIX. Derivado da linguagem B, criada por Ken Thompson. B deriva da linguagem BCPL, criada por Martin Richards. Nos anos 1980 iniciou-se a criação de um padrão chamado C ANSI (American National Standardization Institute).
3.
Características Linguagem depropósito genérico; Usada para escrever processadores de texto, planilhas, sistemas operacionais, programas de comunicação, programas para automação industrial, SGBDs, navegadores e servidores Web, etc. Possui características de alto e de baixo nível; Excelente performance; Muito popular; Sintaxe de C serve de base para muitas outras linguagens.
4.
Características Deu origema outras linguagens de programação, entre elas C++, Java, C#, PHP, Ruby, Python, etc. Muito usada no desenvolvimento de: Compiladores, interpretadores, editores de texto, banco de dados, computação gráfica, manipulação e processamento de imagens, controle de processos, …
5.
Características Portabilidade Geraçãode códigos executáveis compactos e rápidos Interação com o sistema operacional Facilidade de uso Linguagem estruturada Confiabilidade Simplicidade Case sensitive Maiúsculas e minúsculas fazem diferença.
6.
Geração de ExecutávelEditor (módulo fonte em C) Pré‐processador (novo fonte expandido) Compilador (arquivo objeto) Lincador (executável)
7.
Exemplo 1 #include <stdio.h> /* Um Primeiro Programa */ main () { printf ( "Ola! Eu estou vivo!\n" ); system( "pause" ); }
8.
Exemplo 2 #include <stdio.h> main() { int Dias; /* * Declaracao de * Variaveis */ float Anos; printf( "Entre com o numero de dias: " ); /* Entrada de Dados */ scanf( "%d" , &Dias); Anos=Dias/365.25; // Conversao Dias->Anos printf( "\n\n%d dias equivalem a %f anos.\n" , Dias, Anos); system( "pause" ); }
Exemplo 4 #include <stdio.h> main() { int x; printf( "Digite um numero" ); scanf( "%d" ,&x); printf( "O dobro e %d\n" , 2 * x); system( "pause" ); }
11.
Introdução às funçõesUma função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, de várias funções colocadas juntas.
12.
Introdução às funçõesArgumentos Argumentos são as entradas que a função recebe. É através dos argumentos que passamos parâmetros para a função. As funções printf() e scanf() são funções que recebem argumentos.
13.
Forma geral dafunção tipo_de_retorno nome_da_função(lista_de_argumentos) { código_da_função }
Exemplo de função#include <stdio.h> /* Calcula o quadrado de x */ int square( int x) { return x * x; } main() { int num; printf( "Entre com um numero: " ); scanf( "%d" , &num); printf( "\n\nO quadrado e %d\n" , square(num)); system( "pause" ); }
16.
Exemplo de função#include <stdio.h> int prod( int x, int y) { return (x*y); } main() { int saida; saida=prod(12, 7); printf( "A saida e: %d\n" , saida); system( "pause" ); }
Entradas e SaídasPara obter o caractere pressionado: getche() Imprime o caractere na tela antes de retorná-lo. getch() Apenas retorna o caratere pressionado sem imprimi-lo na tela. Essas funçoes são encontradas no arquivo conio.h que somente está disponível para Windows. Não é padrão ANSI.
Equivalente ANSI Diferenças: Requer o pressionamento da tecla <ENTER> após a entrada de teclado. #include <stdio.h> main() { char ch; printf ( "Tecle algo..." ); scanf ( "%c" , &ch); printf ( "Voce pressionou a tecla %c\n" , ch); system( "pause" ); }
24.
printf() e scanf()Forma geral da função printf() : printf (string_de_controle,lista_de_argumentos); Forma geral da função scanf() : scanf (string_de_controle,lista-de-argumentos);
25.
Códigos de controleCódigo Significado %d Inteiro %f Float %c Caractere %s String %% Coloca na tela um %
26.
Formatação Numérica %<numero>dEscreve um inteiro na tela, preenchendo com espaços à esquerda para que ele ocupe pelo menos <numero> casas na tela. printf("%4d", 10); Exibe: <espaco><espaco>10
27.
Formatação Numérica %0<numero>dEscreve um inteiro na tela, preenchendo com zeros à esquerda para que ele ocupe pelo menos <numero> casas na tela. printf("%04d", 10); Exibe: 0010
28.
Formatação Numérica %<numero1>.0<numero2>dEscreve um inteiro na tela, preenchendo com espaços à esquerda para que ele ocupe pelo menos <numero1> casas na tela e com zeros para que ele possua pelo menos comprimento <numero2>. printf("%6.04d", 10); Exibe: <espaço><espaço>0010
29.
Formatação Numérica %fEscreve um ponto flutuante na tela, sem formatação. printf("%f", 10.0); Exibe: 10.000000
30.
Formatação Numérica %eEscreve um ponto flutuante na tela em notação científica. printf("%e", 10.02545); Exibe: 1.002545e+01
31.
Formatação Numérica %<tamanho>.<decimais>fEscreve um ponto flutuante na tela, com tamanho <tamanho> e <decimais> casas decimais. O ponto também conta no tamanho. printf("%6.2f", 10.0); Exibe: <espaço>10.00
Operador Ternário Operadorque usa três argumentos: expr ? valor1 : valor2 Se expr avaliar for verdadeira , valor1 será o resultado da expressão. Se expr for falsa , valor2 será o resultado da expressão. int x , y, maior ; ... maior = x > y ? x : y; ...
Expressões lógicas !(a== b) é́ equivalente a a != b !(a != b) é́ equivalente a a == b !(a > b) é́ equivalente a a <= b !(a < b) é́ equivalente a a >= b !(a >= b) é́ equivalente a a < b !(a <= b) é́ equivalente a a > b !a && !b é equivalente a !(a || b) !a || !b é equivalente a !(a && b)
38.
Expressões O resultadode uma expressão lógica ou relacional é: 0 (falso) 1 ou qualquer outro número diferente de zero (verdadeiro) Para facilitar: NÃ 0 S 1 M
39.
Operadores de incrementoe decremento Incremento (++) Decremento (--) a++; Incrementa o valor da variável a em uma unidade. A posição do operador de incremento e decremento determina a ordem de execução do que está em seu derredor.
40.
Operadores de incrementoe decremento #include <stdio.h> main() { int a = 10; printf ( "%d" , ++a); system( "pause" ); } #include <stdio.h> main() { int a = 10; printf ( "%d" , a++); system( "pause" ); }
41.
Atribuições Simplificadas Comando Exemplo Corresponde a: += a += 2 a = a + 2; -= a -= 2 a = a - 2; ∗ = a *= 2; a = a * 2; /= a /= 2; a = a / 2; %= a %= 2; a = a % 2;
42.
A função sizeof()A função sizeof(algo) retorna o tamanho, em bytes, de algo que pode ser um determinado tipo, uma variável ou um valor constante. printf ("%d", sizeof(int)); exibe 4 na tela
43.
A função sizeof()#include <stdio.h> main() { printf ( "Tamanho de um int: %d bytes\n" , sizeof ( int )); printf ( "Tamanho de 10.25: %d bytes\n" , sizeof (10.25)); char str[20] = "Maria" ; printf ( "Tamanho de str: %d bytes\n" , sizeof (str)); system( "pause" ); }
44.
O endereço deuma variável Toda variável tem um endereço de memória associado a ela. O operador & (address-of) retorna o endereço de uma determinada variável: printf("%d", &valor); imprime o endereço da variável valor.