1 / 39

Linguagem C

Linguagem C. Sumário. As origens do C. C é uma linguagem de Médio Nível C é uma linguagem Estruturada C é uma linguagem para Programadores Compiladores X Interpretadores A Forma de um programa em C A Biblioteca e a Linkedição Compilação Separada Compilando um programa C

sally
Download Presentation

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. Linguagem C Prof. Ana Emilia de Melo Queiroz

  2. Sumário • As origens do C. • C é uma linguagem de Médio Nível • C é uma linguagem Estruturada • C é uma linguagem para Programadores • Compiladores X Interpretadores • A Forma de um programa em C • A Biblioteca e a Linkedição • Compilação Separada • Compilando um programa C • O Mapa de Memória C • Expressões em C. • O cinco tipos básicos de C • Variáveis Locais de declaração, variáveis locais, Parâmetros formais, variáveis globais. • Inicialização de variáveis. • Cosntantes, Hexadecimais, Octais, String, Caracteres e Barra invertida. Prof. Ana Emilia de Melo Queiroz

  3. Sumário • Operadores, atribuição, conversão de tipos em atribuições, atribuições múltiplas, operadores aritméticos, Incremento e Decremento, Operadores relacionais e lógicos. • Matrizes Unidimensionais – Vetores • Matrizes Bidimensionais e multidimensionais– Matriz • Matriz e String. • Inicialização de Matrizes. Prof. Ana Emilia de Melo Queiroz

  4. Origens do C • C nasceu de BCPL, que influenciou uma linguagem chamada B. • Na década de 70, B levou ao desenvolvimento do C. • C foi padronizado pela ANSI(American National Standards Instituite) em 1983. • O livro C completo total adota o padrão ANSI e exemplifica outras implementações. Prof. Ana Emilia de Melo Queiroz

  5. Nível da Linguagem C • C é uma linguagem de médio nível, pois combina elementos das linguagens de alto nível com elementos de linguagem com assembler. • Permite manipulação de Bits. • Suportam o conceito de tipos de dados.(Inteiros, Caracter, Real). • Linguagem estruturada(apesar da restrição de não ser formalmente) • C é uma linguagem para programadores profissionais. • Inicialmente utilizada para fazer programas de sistemas. • Sistemas Operacionais • Interpretadores • Editores • Programas de planilhas eletrônicas • Compiladores • Gerenciador de Banco de Dados Prof. Ana Emilia de Melo Queiroz

  6. Compiladores X Interpretadores A Biblioteca e a LinkEdição • Referem-se ao modo como um programa é executado. • Um interpretador lê o código-fonte do seu programa uma linha por vez executando a instrução específica contida nessa linha. • Um compilador lê o programa inteiro e converte-o para código-objeto. O código Objeto é uma tradução do código fonte do programa em uma forma que o computador possa executar diretamente. • O código objeto também conhecido como código de máquina • Todo Compilador C vem com a biblioteca C padrão. • Muitas das funções que se precisa implementar já estão na biblioteca C padrão. Elas agem com blocos básicos que o programador pode combinar. • Se o programador escrever uma função que irá utilizar muitas vezes, ela pode ser colocada em uma biblioteca. Prof. Ana Emilia de Melo Queiroz

  7. Compilação Separada e Mapa de Memória • Muitos programas C podem estar contidos num mesmo arquivo. • Caso o tamanho cresça muito ele deve ser dividido em vários arquivos, os quais podem se compilados separadamente. • Quando todos os arquivos estiverem todos compilados eles serão linkeditados para formar o código-objeto completo. • O gerenciamento da memória é feita da seguinte forma: • Quatro regiões de memória, que possuem funções específicas • A primeira contém o código-fonte • A segunda contém as variáveis globais • A terceira contém a pilha • Possui os endereços de retorno • Argumentos para funções e variáveis locais • A quarta contém o Heap – Estrutura de dados. • Área de alocação dinâmica de C, que podem ser utilizadas em listas encadeadas e árvores. Prof. Ana Emilia de Melo Queiroz

  8. As expressões são formadas pelos elementos básicos de C. Dados e operadores, os dados podem ser representados por variáveis ou constantes. • Os principais tipos de C são: tipo bytes escala char 1 -128 a 127 int 2 -32.768 a 32.767 float 4 3.4e-38 a 3.4e+38 double 8 1.7e-308 a 1.7e+308 Long ou Long int (4 bytes) Unsigned Char (0 a 255) Unsigned int (0 a 65.535) obs: int tem sempre o tamanho da palavra da máquina Prof. Ana Emilia de Melo Queiroz

  9. Comandos básicos Instruções de E/S Saída de Dados Entrada de Dados Processamento de dados Prof. Ana Emilia de Melo Queiroz

  10. Variável • Variável: “objeto” que pode assumir diversos valores; • espaço de memória de um certo tipo de dado associado a um nome para referenciar seu conteúdo Main ( ) { int idade; idade = 30;   printf (“ A idade é : %d”, idade); } Prof. Ana Emilia de Melo Queiroz

  11. Nomes e declaração de Variáveis • Quantos caracteres quiser (32); • comece com letras ou sublinhado: • Seguidos de letras, números ou sublinhados • C é sensível ao caso: • peso <> Peso <> pEso • não podemos definir um identificador com o mesmo nome que uma palavra chave • auto static extern int long if while do ...... • Instrução para reservar uma quantidade de memória para um certo tipo de dado, indicando o nome pelo qual a área será referenciada >> tipo nome-da-variável; ou >> tipo nome1, nome2,...,nomen EX: char nome; int idade, num; Prof. Ana Emilia de Melo Queiroz

  12. Constantes, Hexadecimais, Octais, String, Caracteres e Barra invertida. • Referem-se a valores fixos que o programa não pode alterar. • Podem ser de qualquer tipo de dados básicos • Sua representação depende do seu tipo. • Constantes de caractere são envolvidas por aspas simples. Ex:’a’ • Constantes inteiras são preenchidas com números fracionários. Ex: 10 e -100 • Constantes em ponto flutuante requerem o ponto decimal seguido pela parte fracionária do número. Ex: 11.123 • C também que seja utilizada uma notação científica para representar números em ponto flutuante. • Existem dois tipos de números em ponto flutuante: • float • double. • Constantes Hexadecimais e Octais • Hexadecimal – sistema numérico de base 16 dígitos de 0 a 9 + os caracteres A a F, que representam os números 10, 11, 12, 13, 14 e 15. • Octal – sistema numérico de base 8 – dígitos de 0 a 7 Prof. Ana Emilia de Melo Queiroz

  13. Linguagem Programação C • Estrutura Básica de um Programa em C • Meu primeiro programa • A função printf • Códigos Especiais • Códigos printf() Prof. Ana Emilia de Melo Queiroz

  14. Estrutura Básica da Linguagem • main(){} • main () {} • main (){ } • main(){} • main() {} Prof. Ana Emilia de Melo Queiroz

  15. Primeiro Programa • Main(){ printf (“Meu primeiro programa”);} • Main(){printf (“Meu primeiro programa”);} Prof. Ana Emilia de Melo Queiroz

  16. A função printf printf (“Meu primeiro programa”,<argumentos>); printf (“Este é o número: %d”,2); • Este é o número: 2 printf (“%s esta a %d milhões de milhas\ndo sol.”,”Venus”,67); • Venus esta a 67 milhões de milhasdo sol. printf (“A letra %c ”,’j’); printf (“Pronuncia-se %s”,”jota”); • A letra j procuncia-se jota Prof. Ana Emilia de Melo Queiroz

  17. Códigos Especiais • \n Nova linha • \r Retorno do cursor • \t Tab • \b Retrocesso (backspace) • \” Aspas • \\ Barra • \f Salta página de formulário • \0 Nulo (zero) Prof. Ana Emilia de Melo Queiroz

  18. Códigos Printf • %c Caracter Simples • %d Decimal • %e Notação Científica • %f Ponto Flutuante • %g %e ou %f, o mais curto • %o Octal • %s Cadeia de caracteres • %u Decimal sem sinal • %x Hexadecimal • %ld Decimal Longo • %lf Ponto Flutuante Longo (Double) Prof. Ana Emilia de Melo Queiroz

  19. Printf – Tamanho na Impressão main() { printf(“Os alunos são %2d.\n”,350); printf(“Os alunos são %4d.\n”,350); printf(“Os alunos são %5d.\n”,350); } A saída será Os alunos são 350. Os alunos são 350. Os alunos são 350. Prof. Ana Emilia de Melo Queiroz

  20. Printf – Tamanho na Impressão main() { printf(“%4.2f\n”,3456.78); printf(“%3.2f\n”,3456.78); printf(“%3.1f\n”,3456.78); printf(“%10.3f\n”,3456.78); } A saída será 3456.78 3456.78 3456.7 3456.780 Prof. Ana Emilia de Melo Queiroz

  21. Printf – Complementando com 0 main() { printf(“\n%04d”,21); printf(“\n%06d”,21); printf(“\n%6.4d”,21); printf(“\n%6.0d”,21); } A saída será 0021 000021 0021 21 Prof. Ana Emilia de Melo Queiroz

  22. Printf – Imprimindo Caracters • printf(“%d %c %x %o \n”, ‘A’, ‘A’, ‘A’, ‘A’ ); Saída = 65 A 41 101 • printf(“%c %c %c %c \n”, ‘A’, 65, 0x41, 0101 ); Saída = A A A A Prof. Ana Emilia de Melo Queiroz

  23. Estruturas de Controle • Estruturas de seleção ou decisão • Estrutura de Seleção Simples • Estrutura de Seleção Composta • Estrutura de Seleção Encadeada • Estrutura de seleção de Múltipla Escolha Prof. Ana Emilia de Melo Queiroz

  24. Enunciado – Seleção Simples • Verifique se um número fornecido pelo usuário é ímpar. Se for exiba a mensagem: “O número é ímpar”. #include <conio.c> main() { int mnum; printf("Informe um número"); scanf("%d", &mnum); if (mnum % 2 == 1) printf("O número %d é ímpar.",mnum); getch(); } Prof. Ana Emilia de Melo Queiroz

  25. Enunciado – Seleção Composta • A empresa X Ltda. Concedeu bônus de 20% do valor do salário a todos funcionários com tempo de trabalho na empresa igual ou superior a cinco anos e de 10% aos demais. Calcular e exibir o valor do bônus. • Percebem a condição e o bloco de instrução respectivo? • Programa Prof. Ana Emilia de Melo Queiroz

  26. Sel. Composta - Programa #include <conio.c> main() { int mtem; float msal, mbonus; printf("Informe o tempo de serviço\n"); scanf("%d", &mtem); printf("Informe o salário\n"); scanf("%f", &msal); if (mtem >= 5) mbonus = msal * 0.2; else mbonus = msal * 0.1; printf("O bônus é de: %10.2f",mbonus); getch(); } Prof. Ana Emilia de Melo Queiroz

  27. Enunciado – Seleção Encadeada • Faça algoritmo que receba 03 valores que representarão os lados de um triângulo. Verifique se os valores formam um triângulo e classifique esse triângulo como: • Eqüilátero - três lados iguais • Isóscele - dois lados iguais • Escaleno - três lados diferentes • Lembre-se que para formar um triângulo nenhum dos lados pode ser igual a zero e um lado não pode ser maior que a soma dos outros dois. Prof. Ana Emilia de Melo Queiroz

  28. main() { int mladoa, mladob, mladoc; printf("Informe os lados de um triângulo\n"); scanf("%d %d %d", &mladoa, &mladob, &mladoc);   if (mladoa == 0 || mladob == 0 || mladoc == 0) printf("A figura não é um triângulo\n"); else { if (mladoa>mladob+mladoc || mladob>mladoa+mladoc ||mladoc>mladoa+mladob) printf("A figura não é um triângulo\n"); else { if (mladoa == mladob && mladob == mladoc) printf("A figura é um triângulo equilátero\n"); else { if (mladoa == mladob || mladoa == mladoc || mladob == mladoc) printf("A figura é um triângulo isóceles\n"); else printf("A figura é um triângulo escaleno\n"); } } } } Prof. Ana Emilia de Melo Queiroz

  29. Seleção Múltipla Escolha … opcao = getche(); switch(opcao) { case ‘A’ : printf(“Você seleconou opção A”); break; case ‘E’ : printf(“Você seleconou opção E”); break; case ‘X’ : printf(“Você seleconou opção X”); break; case ‘I’ : printf(“Você seleconou opção I”); break; default printf(“Escolha incorreta”); } … Prof. Ana Emilia de Melo Queiroz

  30. Algumas funções em C • scanf(“%d %c”, &a, &b); Lê um tipo de variável (d,c) e armazena em um endereço de memória (variável a, b) • Car = getch()Lê um caracter do teclado (Enter desnecessário). Não echoa na tela. • Car = getche()Lê um caracter do teclado (Enter desnecessário). Eechoa na tela. • Car = getchar() Lê próximo caracter de entrada. Termina com Enter. (stdio.h) • putchar(car) Imprime um caracter de entrada. Termina com Enter. (stdio.h) Prof. Ana Emilia de Melo Queiroz

  31. Estruturas de Repetição • Laço while • Laço do – while • Laço for • Repetição (laço) deve ser finito • Quando se usa teste, em algum momento os comandos modificam a condição de teste para torná-la falsa. Prof. Ana Emilia de Melo Queiroz

  32. while (conta < 10) { total+=conta; } Printf(“Total = %d”, total); … Laço While Prof. Ana Emilia de Melo Queiroz

  33. Laço while • Ler 850 números fornecidos pelo usuário e calcular média. main() { float soma, num, media; int cont ; soma = 0; cont = 0; while (cont < 850) { scanf(“%d”, &num); soma += num; cont += 1; } media = media / cont; printf(“A média é: %d“,media); } Prof. Ana Emilia de Melo Queiroz

  34. Laço do - while … do { total+=conta; } while (conta < 10) Printf(“Total = %d”, total); … Prof. Ana Emilia de Melo Queiroz

  35. Laço do - while main() { float soma, num, media; int cont ; soma = 0; cont = 0; do { scanf(“%d”, &num); soma += num; cont += 1; } while (cont >= 850) media = media / cont; printf(“A média é: %d“,media); } • Ler 850 números fornecidos pelo usuário e calcular média. Prof. Ana Emilia de Melo Queiroz

  36. Laço for • Sintaxe For (conta = 0; conta < 10; conta ++) • Inicio Teste Incremento • Flexibilidades Prof. Ana Emilia de Melo Queiroz

  37. Laço for • Ler 850 números fornecidos pelo usuário e calcular média. main() { float soma, num, media; int cont ; soma = 0; for (cont = 0; cont < 850, cont++) { scanf(“%d”, &num); soma += num; } media = media / cont; printf(“A média é: %d“,media); } Prof. Ana Emilia de Melo Queiroz

  38. Laço for - flexibilidades • Qualquer expressão do laço for pode ter várias instruções separadas por vírgula;For (x=0, y=0; x+y < 100; x++, y=y+1) • Podemos usar caracteres em vez de inteirosFor (ch=a; ch <= z; ch++) Prof. Ana Emilia de Melo Queiroz

  39. Laço for - Flexibilidades • Podemos usar chamadas a funções em qualquer uma das expressões do laçoFor (ch=getch(); ch != `X`; ch=getch())) • Qualquer parte do laço for pode ser omitida mas os ; devem permanecerFor ( ; (ch = getch()) != `X`; )For ( ; (ch = getch()) != `X`; printf(“%c”,c+1))For ( ; ; ) = Laço infinito Prof. Ana Emilia de Melo Queiroz

More Related