Revisão da Linguagem C
Modelo de um Programa Entradas são armazenadas para serem processadas e gerar uma saída útil e desejada Dados são armazenados em VARIÁVEIS posições de memória, representadas por um nome, que podem conter dados as variáveis podem conter tipos diferentes de dados 49
Variáveis e Tipos de Dados Variáveis podem conter valores diferentes durante a execução do programa os valores devem ser consistentes com o tipo da variável Alguns valores não devem ser alterados durante a execução Constantes 50
Tipos de Dados Cada constante, variável, expressão ou função é de um certo tipo refere-se ao conjunto de valores que pode assumir 60
Mapa Conceitual da Memória Pilha endereço de retorno de funções parâmetros para funções variáveis globais Heap região de memória livre alocação dinâmica aplicações como lista encadeada e árvores Pilha Heap Variáveis Globais Código do Programa 60
Tipos de Dados A um tipo de dado estão associados: uma representação o tamanho de células de memória para armazenar esta representação a área de memória onde ficará o valor da variável tem que ter dimensões compatíveis com a sua representação conjunto de valores que variáveis de um dado tipo podem assumir 62
Tipos de Dados As operações exigem argumentos de um dado tipo e produzem resultados do mesmo tipo É importante para o compilador saber o tipo de cada variável antes de empregá-la em uma operação 63
Tipos Básicos do C São cinco os tipos de dados básicos do C: char (1 byte) int (2 ou 4 bytes) float (4 bytes) double (8 bytes) void (nenhum) O tamanho e a faixa destes dados dependem do processador e da implementação do compilador 65
Operadores Especiais Operadores & e * &: significa “o endereço de” *: significa “o conteúdo do endereço” Exemplo: m = &valor; (guarda o endereço da variável valor na variável m) v = *m; (armazena em v o conteúdo da variável localizada no endereço armazenado em m – corresponde a v=valor) 75
Comandos de Entrada/Saída scanf (“%d”, &num); lê um dado do teclado com o formato especificado Saída printf (“%d”, num); escreve na tela o conteúdo da variável com o formato especificado 82
Formatos Para scanf e printf: Apenas para printf: %d – inteiro %l – inteiro longo %f – float %lf – double %c – caracter %s – string Ex.: scanf(“%s %d, %f”, nome, &freq, ¬a) lê uma linha no seguinte formato Maria 12, 7.5 Apenas para printf: \n – nova linha \r – retorno do cursor \t – TAB \b – Backspace \” – Aspas \\ – Barra \f – salto de página 83
Comandos para o Compilador #include <Nome_arquivo> expande o arquivo de Nome_arquivo dentro do arquivo fonte < >: definição da implementação “ ”: definição do programador - permite especificar o caminho (procura primeiro no diretório atual e depois no local padrão para bibliotecas) #define MAX 10 define MAX como uma constante 10 substitui o texto MAX por 10 funciona como uma macro 85
Um Programa em “C” #include …… #define …… /* protótipos de funções */ /* função principal */ main () { ………… } /* demais funções */ 86
Estruturas Básicas de Controle Condicional SE .... ENTÃO if ( condição) { ... } else { 93
Instruções Condicionais Exemplo: if (x>5) y=10; else y=15; que pode ser substituído por: y = x>5 ? 10 : 15; 104
Instruções Case CASE switch (expressão) { case constante1: <comandos>; break; case constante2: ... default: <comandos>; } 111
Instruções Case switch nome { case "Maria": Exemplo: switch nome { case "Maria": printf (“Oi Maria!”); break; case "Paulo": printf (“Oi Paulo!”); break; case "Monica": printf (“Oi Monica!”); break; } 111
Comandos Básicos do C Repetição while ( <condição> ) { ... comando_n; } 114
Comandos Básicos do C Repetição do { comando_1; comando_2; ... comando_n; } while (<condição>); 116
Comandos Básicos do C Repetição for (i=1; i<=N; i++) { comando_1; ... comando_n; }; 117
Usando Tipos Se tenho que definir uma variável para conter idades, que tipo usar? inteiros e curtos são suficientes É função do: conjunto de valores que a variável pode assumir da precisão que se deseja no resultado de operações 124
String de Caracteres Uma seqüência de caracteres não possui uma representação direta no C ‘\0’ no final constantes entre aspas (no tipo caracter, a constante deve estar entre apóstrofos) char a[50] #define nome ”Maria” char a = ‘A’; 126
String de Caracteres Manipulação de strings strcpy(s1,s2): copia s2 em s1 strcat(s1,s2): concatena s2 no final de s1 strlen(s1): tamanho de s1 strcmp(s1,s2): zero de s1==s2, negativo se s1<s2 e positivo se s1>s2 requerem: #include <string.h> 126