1 / 60

LTPII - LINGUAGEM “C”

LTPII - LINGUAGEM “C”. Prof. : Jair Alves Barbosa E_mail: jairab@yahoo.com.br. LINGUAGEM “C”. CONTEÚDO PROGRAMÁTICO. Conteúdo Programático. 1 - Introdução Histórico e Características Básicas Compiladores e Interpretadores Estrutura Básica de um programa “C” Palavras Chaves

everett
Télécharger la présentation

LTPII - LINGUAGEM “C”

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. LTPII - LINGUAGEM “C” • Prof. : Jair Alves Barbosa • E_mail: jairab@yahoo.com.br Linguagem C

  2. LINGUAGEM “C” CONTEÚDO PROGRAMÁTICO Linguagem C

  3. Conteúdo Programático • 1 - Introdução • Histórico e Características Básicas • Compiladores e Interpretadores • Estrutura Básica de um programa “C” • Palavras Chaves • Ponto e vírgula, chaves e Comentários • Tipos de Dados ,Identificadores, Constantes e Variáveis • Funções : main, printf, scanf e diretiva #include Linguagem C

  4. Conteúdo Programático • 2 - Operadores e Expressões • Operadores Aritméticos • Operador de Atribuição • Operadores relacionais • Operadores Lógicos • Operadores bit a bit • 3 - Funções de entrada e saída de caracteres • getch, getche, getchar, putchar, gets e puts Linguagem C

  5. Conteúdo Programático • 4 - Instruções de Seleção (condicional) • Comandos if , if-else e if-else-if • if aninhados • Comandos switch e break Linguagem C

  6. Conteúdo Programático • 5 - Instruções de Repetição (laço) • Comando for • Comando while e do-while • Comandos aninhados • Repetições Aninhadas • Comando Continue Linguagem C

  7. Conteúdo Programático • 6 - Funções • Funções simples e variáveis locais • Funções com retorno de valor (comando return) • Conceitos Básicos de Ponteiros • Argumentos e parâmetros • Funções Recursivas • Variáveis externas e estáticas • Definição de Macros e diretiva #define Linguagem C

  8. Conteúdo Programático • 7 - Estrutura de dados homogênea • Matrizes unidimensionais • Matrizes bi-dimensionais ou tri-dimensionais • Matriz como argumento de funções • Strings e funções de manipulação • 8 - Estrutura de dados heterogênea • Definição • Estruturas como argumentos de funções Linguagem C

  9. Conteúdo Programático • 9 - Ponteiros • Operadores de ponteiros • Expressões com ponteiros • Ponteiros e Strings • Matrizes de Ponteiros • Ponteiros de estruturas • Parâmetros como ponteiros • Alocação dinâmica Linguagem C

  10. Conteúdo Programático • 10 - Arquivos • Sistema de entrada e saída bufferizado • Funções fopen(), fputc(), fgetc(), fread(), fwrite(), fclose(), feof(), fseek(),fgets(), fputs(), rewind() e remove() • Entrada padrão (stdin), saída padrão (stdout) e erro padrão (stderr) • funções fprintf() e fscanf() Linguagem C

  11. Bibliografia • Schildt, H., C Completo e Total, Editora Makron Books do Brasil Editora Ltda, 1997, 827p (livro texto). • Evaristo. J., Aprendendo a programar: programando em C, Book Express,2001, 205p • Mizrahi, V. V., Treinamento em Linguagem C, Curso Completo, Módulos 1 (241p) e 2 (273p) , Makron Books do Brasil Editora Ltda,1990 Linguagem C

  12. LINGUAGEM “C” 1 - INTRODUÇÃO Linguagem C

  13. Histórico • Linguagem C foi inventada e implementada por Brian W. Kernighan Dennis Ritchie em um DEC-PDP 11 sobre o S.O. Unix na década de 1970; • Predecessor Linguagem B, de Ken Thompson, que tinha forte influencia da linguagem BCPL, de Martin Richards; • Inicialmente C era fornecida junto com o S.O. Unix, versão 5; Linguagem C

  14. Hístórico • Com os microcomputadores apareceram grande número de implementações de C o que gerava discrepâncias; • Em 1983 o ANSI (American National Standards Institute) estabeleceu um padrão; Linguagem C

  15. Características Básicas • Linguagem de Nível Médio, pois combina elementos de linguagens de alto nível (Basic, Pascal) com a funcionalidade da linguagem assembler (instruções de máquinas) Permite manipulação de bits, bytes e endereços; • Linguagem Portável (Portabilidade); • C não efetua nenhuma verificação em tempo de execução (respons. do programador) Linguagem C

  16. Características Básicas • As primeiras implementações de C não consistiam parâmetros e argumentos, já o padrão ANSI introduziu o conceito de protótipos de funções; • Possui 32 palavras chaves (27 originais de seus criadores e 5 do comitê ANSI) (Obs.: Basic possui mais de 100); • C é estruturada, apesar de não permitir a criação de funções dentro de funções; Linguagem C

  17. Características Básicas • Principal componente estrutural de C é a função (blocos de construção); • Tem o conceito de bloco de código ou bloco de instruções, que é um grupo de comandos de programa conectado logicamente e tratado como uma unidade; • if (a <b) • { • printf(“valor inválido de a (%d) menor que b (%d) tente outro\n”,a,b); • scanf (“%d”,&a); • } Linguagem C

  18. Características Básicas • C é uma linguagem para programadores, dá ao programador o que ele quer: poucas restrições, poucas reclamações, estruturas de blocos,funções isoladas e um conjunto de palavras chaves ; • Inicialmente C foi usada para S.O, compiladores, interpretadores, planilhas, SGBD, hoje é usada na construção de sistemas comerciais, sistemas de controle, etc. (portabilidade, código compacto e rápido); • Atualmente em grande crescimento devido ascensão do S.O Linux; Linguagem C

  19. Compiladores e Interpretadores • Qualquer linguagem de programação pode ser compilada ou interpretada; • Compiladores e interpretadores são programas que operam sobre o código-fonte; • Interpretador lê o código-fonte linha por linha e executa-a; • Compilador lê todo o código-fonte e converte-o para código-objeto; Linguagem C

  20. Compiladores e Interpretadores • Código-objeto não é executável, precisa ser utilizado um linkeditor para torná-lo executável; • Programas C são criados por intermédio da linkedição de um ou mais códigos-objetos com uma ou mais bibliotecas; • Uma biblioteca é um conjunto de códigos-linkeditáveis criados, fornecidos com os compiladores ou adquiridos; Linguagem C

  21. Início Editar código fonte Sim Erros de linkedição? Não Compilar Sim Executar programa Erros de Erros de compilação? Sim tempo de Execução? Não Não Linkeditar Fim Compiladores e InterpretadoresCiclo de desenvolvimento Linguagem C

  22. Estrutura de um Programa C • Declarações globais • tipo de retorno main (lista de parâmetros) • { • comandos; • } • tipo de retorno f1 (lista de parâmetros) • { • comandos; • } • .................. • tipo de retorno fn(lista de parâmetros) • { • comandos; • } Linguagem C

  23. Ponto e vírgula, Chaves e Comentários • Ponto e vírgula: • Todos os comandos em C terminam obrigatoriamente com “;”. • Chaves (Blocos de Comando) • utilizadas para definir um bloco de comando, que são grupos de comandos relacionados que são tratados como uma unidade e estão logicamente conectados. Um bloco começa com uma { e termina com uma } Linguagem C

  24. Ponto e vírgula, Chaves e Comentários • Um bloco de comando pode ser colocado em qualquer lugar onde seja possível a colocação de um comando. • Ex.: • #include <stdio.h> • #include <conio.c> // implementa getch no DevC++ • int main(void) • { • int total, a,b; • if (a<b) • { • scanf(“%d”,&total); • printf (“%d\n”, total); • } • getch(); • return 0; • } Linguagem C

  25. Ponto e vírgula, Chaves e Comentários • Comentários: • Começa com o par de caracteres /* e termina com */ . Em C++ e alguns compiladores //; • Tudo é ignorado entre os símbolos de comentários; • Uma palavra chave não pode conter comentários; • Ex.: • /* x = x+1 ; • printf (“ %d\n”,x); */ • soma_total + = valorMensal + /* valor mensal das despesas */ • acumuladoAnterior; Linguagem C

  26. Palavras Chaves • auto double int struct • break else long switch • case enum * register typedef • char extern return union • const * float short unsigned • continue for signed * void * • default goto!! Sizeof volatile* • do if static while • * ANSI Linguagem C

  27. Mapa de Memória em C Pilha Heap Variáveis Globais Código do Programa Linguagem C

  28. Mapa de memória em C • Pilha = usada para guardar o endereço de retorno das chamadas de função, argumentos para funções e variáveis locais e estado atual da CPU; • Heap = região de memória livre a ser usada pelo programa via funções de alocação dinâmica (Ex.: listas encadeadas e árvores) Linguagem C

  29. C e C++ • C++ é uma versão estendida e melhorada de C, projetada para suportar programação orientada a objetos (OOP - Oriented Object Programming); • C++ é um superconjunto de C; • Compiladores C++ também são compiladores C padrão ANSI completo; Linguagem C

  30. Tipos de Dados • Tipos Básicos de Dados • Tipo Tamanho em bits Faixa • char 8 0 a 255 • int 16(depende) -32768 a 32767 • float 32 -3.4E-38 a 3.4E38 • seis dígitos de precisão • double 64 -1.7E-308 a 1.7E308 dez dígitos de precisão • void 0 sem valor Linguagem C

  31. Tipos de Dados • Modificadores de tipo • signed • unsigned • long • short • Ex.: long int 32(bits) faixa ( -2.147.483.648 a 2.147.483.647) • unsigned char 8 (bits) faixa de 0 a 255 Linguagem C

  32. Tipos de Dados • Os modificadores signed, unsigned, short e long podem ser aplicados aos tipos básicos char e int; • long pode ser aplicado a double (long float tem o mesmo significado que double); • Signed com int é redundante; • unsigned com ponto flutuante pode ser permitido mas reduz portabilidade; Linguagem C

  33. Identificadores • Identificadores = nomes de variáveis, funções e outros objetos definidos pelos usuários (não usar caracteres especiais); • Primeiro caractere deve ser letra ou um underscore e o restante pode ser letras, números ou undersocores; • Correto = xyz, soma_de_tudo • Incorreto = 1x, ju!lio Linguagem C

  34. Identificadores • Em C, letras maiúsculas e minúsculas são diferentes; • Identificador não pode ser uma palavra chave de C; • Os identificadores devem ser auto explicativos; • Sugestão = somaTotalMensal, indicadorDeRepeticao ou soma_total_mensal e indicador_de_repeticao Linguagem C

  35. Variáveis • Posição nomeada de memória, que é usada para guardar um valor que pode ser modificado pelo programa. • Todas as variáveis em C devem ser declaradas antes de serem usadas. • Forma geral de declaração: • tipo lista_de_variáveis; • onde tipo = qualquer tipo válido mais qualquer modificador Linguagem C

  36. Variáveis • Lista_de_variáveis = um ou mais nomes de identificadores separados por vírgulas. • O nome da variável não tem nenhuma relação com o seu tipo. • Ex.: • short int controlador, id_processo_1; • unsigned int total_funcionarios; • double balanco_anual; Linguagem C

  37. Variáveis • Onde declarar: • interna as funções ou blocos(variáveis locais); • parâmetros de funções (parâmetros formais); • fora de todas as funções (variáveis globais). • Variáveis Locais (auto - redundante): • Só podem ser referenciadas dentro das funções ou blocos onde foram declaradas; • Só existem enquanto o bloco de código onde estão está sendo executado (armazenadas na pilha); Linguagem C

  38. Variáveis • int calculaQuadrado (void) • { • int valor; • scanf(“%d”, &valor); • return (valor*valor); • } • int calculaCubo (void) • { • int valor; • scanf(“%d”, &valor); • return (valor*valor*valor); • } Linguagem C

  39. Variáveis • As variáveis locais podem ser declaradas dentro de qualquer bloco e não apenas no início das funções. • void CalculaMediaDoisNumeros (void) • { • int primeiroValor, segundoValor; • printf(“entre como primeiro número = “); • scanf(“%d”, &primeiroValor); • printf (“entre com segundo valor = “); • scanf (“%d”,&segundoValor); • if (primeiroValor > egundoValor) { • int media; /* só é valida dentro do bloco */ • media = (primeiroValor+segundoValor)/2; • printf (“media = %d \n”, media); • } • } Linguagem C

  40. Variáveis • Parâmetros Formais: • São variáveis que recebem os valores dos argumentos das funções e devem ser do mesmo tipo; • Se comportam como qualquer outra variável local dentro da função; • int ImprimeQuadrado( int valor) • { • int numeroPontos; • for (numeroPontos=0; numeroPontos <10; numeroPontos++) • printf(“.”); • printf(“ O quadrado de (%d) é (%d)\n”, valor, valor *valor); • return valor*valor;} Linguagem C

  41. Variáveis • Variáveis Globais – não usar( guardadas em área específica memória): • São reconhecidas dentro do contexto em que estão declaradas; • São declaradas fora das funções; • int contador,x; /* declaração de variável global */ • int main (void) • { • contador = 50; x=50; • ImprimePontos(); • printf (“ Contador (%d) \n”, contador); /* imprime o valor 50 */ • getch(); • return 0; } • int ImprimePontos(void) • { • for (contador =0; contador < 100; contador ++) • printf( “%d”,x+contador); } Linguagem C

  42. Variáveis • Const • Não podem ser modificadas pelo programa só podem receber um valor inicial; • const int contador = 100; • Pode ser usado também para proteger os valores passados como parâmetros de uma função; • int Produto (const int a, const int b) • { • a += b; /* não pode ser efetuada - erro de sintaxe */ • return (a*b); • } • Muitas funções da biblioteca C padrão usam const em suas declarações de parâmetros, por exemplo : • size_t strlen (constchar *str) Linguagem C

  43. Diretiva include • Instrui ao compilador a ler outro arquivo a ser adicionado aquele que contém a diretiva; • Nome do arquivo deve estar entre aspas (procura-o inicialmente no diretório atual) ou entre símbolos de menor ou igual (procura-o no padrão do compilador - diretórios de include); • #include “meuProjeto.hpp” • #include <stdio.h> • Recomendação : • Aspas para incluir arquivos do projeto; • Chaves angulares para incluir os arquivos de cabeçalho padrão; Linguagem C

  44. Função main() • Função main() • Deve existir em algum lugar do programa e marca o ponto de início de execução do mesmo; • #include <stdio.h> • #include <conio.c> // implementga getch no devC++ • int main (void) • { • printf( “hello este é o meu primeiro programa\n”); • getch(); • return 0; • } Linguagem C

  45. Função printf() • É uma função que imprime um determinado conteúdo na tela; • Forma geral • int printf (“string de controle”, lista de argumentos); • string de controle - contém caracteres que serão exibidos na tela e comandos de formatação; • lista de argumentos - contém os valores a serem formatados; • Deve haver o mesmo número de argumentos e de comandos de formato (ordem: esquerda->direita) Linguagem C

  46. Função printf() • Códigos Especiais: • \n nova linha • \r retorno do cursor • \t tabulador • \” aspas • \\ barra Linguagem C

  47. Função printf() • Códigos de impressão formatada • %c Caractere • %d, %i Inteiros com sinal • %e Notação científica (e minúsculo) • %E Notação científica (E maiúsculo) • %f Ponto flutuante • %g usa %e ou %f, que for mais curto • %G usa %E ou %f, que for mais curto Linguagem C

  48. Função printf() • Códigos de impressão formatada • %o Octal • %s String • %u Inteiros sem sinal • %x Hexadecimal (letras minúsculas) • %X Hexadecimal (letras maiúsculas) • %% Escreve o símbolo Linguagem C

  49. Função printf() • #include <stdio.h> • #include <conio.c> // implementa getch no devC++ • int main (void) • { • int i; • for (i=0; i<80;i+=10) • printf(“ %d”,i); ======> 0 10 20 30 40 50 60 70 • printf(“ valor de float(%f) \n”, 123.4567); ===> valor de float(123.4567) • printf(“string (%s)\n”, “teste de impressão”);===> string( teste de impressão) • getch(); • return 0; • } Linguagem C

  50. Função printf() • Largura mínima de campo • Número colocado entre o símbolo % e o código de formato; • 0 antes do especificador de largura mínima coloca 0s a esquerda; • Usado para produzir tabelas; • double soma; • soma = 1234.56; • printf(“%f\n”, soma); ===> 1234.56 • printf(“%8f\n”, soma); ====> 1234.56 • printf(“%012f\n”, soma); ====> 000001234.56 Linguagem C

More Related