Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Introdução à Linguagem C 2 Histórico da Linguagem C • Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix • C++ é uma extensão da linguagem C • O sistema Unix é escrito em C e C++ 3 Estrutura básica de um programa C diretivas para o pré-processador declaração de variáveis globais main () { declaração de variáveis locais da função main comandos da função main } 4 Diretivas para o processador - Bibliotecas • Diretiva #include permite incluir uma biblioteca • Bibliotecas contêm funções pré-definidas, utilizadas nos programas • Exemplos Funções de texto #include <string.h> Funções matemáticas #include <math.h> Funções padrão #include <stdlib.h> Funções de entrada e saída #include <stdio.h> 5 O ambiente Dev-C++ • O Dev-C++ é um ambiente de desenvolvimento de programas em C e C++ (editor, compilador, bibliotecas...) • Pode ser baixado de http:// www.bloodshed.net/devcpp.html 6 Usando o Dev-C++ • Inicie o Dev-C++ pelo ícone ou pelo menu • Crie um novo arquivo, com o comando Arquivo, Novo, Arquivo Fonte • Edite o programa da página seguinte 7 Usando o Dev-C++ (3) #include <stdio.h> #include <stdlib.h> main() { printf ("Alo mundo!"); system("PAUSE"); } 8 Usando o Dev-C++ (4) • Salve o programa com o nome exemplo.cpp em um diretorio com o seu nome • Compile e execute o programa pressionando a tecla F9 • Se houver algum erro de sintaxe, aparece uma ou mais mensagens no rodapé da janela. Neste caso, corrija o programa e repita. 9 Dicas • Termine todos os comandos com ; • Quando ocorrer um erro de compilação, dê um duplo clique sobre a mensagem de erro para destacar o comando errado no programa • Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ; • Use comentários, iniciados por // ou entre /* */ /* isto é um comentário */ // isto também é um comentário 10 Exemplo 1 /* meu primeiro programa C */ #include <stdio.h> #include <stdlib.h> main() { printf ("Alo mundo!"); //mostra system("PAUSE"); //fica parado } 11 Declarações • Declaram as variáveis e seus tipos • Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ e iniciar com letra ou _ • Os principais tipos são: int, float, double e char • Exemplos int n; int quantidade_valores; float x, y, somaValores; char sexo; char nome[40]; C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N! 12 Algoritmo Na Linguagem C... #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; system("PAUSE"); } 13 Comando de atribuição • Atribui o valor da direita à variável da esquerda • O valor pode ser: – uma constante, – uma variável ou – uma expressão • Exemplos x = 4; // lemos: x recebe 4 y = x + 2; // lemos: y recebe (x mais 2) y = y + 4; // lemos: y recebe (y mais 4) valor = 2.5; sexo = 'F' // constantes devem estar entre aspas simples (apóstrofe) 14 Entrada e Saída de Dados 15 Entrada de Dados • Função scanf scanf ("formatos", &var1, &var2,...) Exemplos: int i, j; float x; char c; scanf("%d", &i); scanf("%d %f", &j, &x); scanf("%c", &c); scanf("%s", &nome); %d inteiro decimal %f float %lf double %c char %s string Não deixar espaço em branco!!! 16 Entrada de Dados (Exemplo 2) Algoritmo Na Linguagem C... #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; scanf ("%f",&n1); scanf ("%f",&n2); scanf ("%f",&n3); system("PAUSE"); } OBS: não deixe espaço antes do fecha " ler n1 ler n2 ler n3 ler n1, n2, n3 scanf ("%f %f %f",&n1, &n2, &n3); 17 Operadores Matemáticos Decrementa em 1 o valor de x x-- -- Incrementa em 1 o valor de x x++ ++ Resto da divisão de x por y x % y % Divide x por y x / y / Multiplica x e y x * y * Subtrai y de x x – y - Soma x e y x + y + Comentário Exemplo Operador CUIDADO!!!! 18 • OBS: o operador “/” (divisão) terá um resultado inteiro se os dois operandos forem inteiros. Para um resultado real, um dos dois operandos deve ser real (ou os dois) Exemplo: int X,Y; float Z,U,T; X=2; Y=3; U=3; Z=X/Y; // Z terá o valor zero T=X/U; // T terá o valor 0.666667 19 Entrada de Dados (exemplo 3) Na Linguagem C... #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; system("PAUSE"); } ler n1, n2, n3 Mediaß(n1+n2+n3)/3 Algoritmo 20 Saída de Dados • Função printf printf ("formatos", var1, var2,...) Exemplos: int i, j; float x; char c; printf("%d", i); printf("%d %f", j, x); printf("%c", c); %d inteiro %f float %lf double %c char %s string 21 Saída de Dados (Exemplo 4) #include <stdio.h> #include <stdlib.h> main() { int i, j; float x; i = 1; j = 2; x = 3; printf("%d", i); printf(" %d %f", j, x); system("PAUSE"); } 22 Saída de Dados (Exemplo 5) #include <stdio.h> #include <stdlib.h> main() { // definicao de variaveis float n1, n2, n3, media; // entrada de dados scanf ("%f %f %f",&n1, &n2, &n3); // operacao media=(n1+n2+n3)/3; // saida de dados printf("%f", n1); printf("%f", n2); printf("%f", n3); printf("%f", media); system("PAUSE"); } 23 Saída de Dados (Exemplo 6) #include <stdio.h> #include <stdlib.h> main() { // definicao de variaveis int i, j; float x; //entrada de dados scanf("%d", &i); scanf("%d %f", &j, &x); // exibicao de dados printf("I= %d\n", i); printf("J= %d\nX= %f\n", j, x); system("PAUSE"); } 24 Entrada e Saída Exemplo 8 #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; printf("Digite 3 notas: "); scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; printf ("Media: %.2f\n",media); system("PAUSE"); } Exemplo 7 #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; printf ("%f",media); system("PAUSE"); } 25 Operadores de Atribuição Equivale a x = x % y x %= y %= Equivale a x = x / y x /= y /= Equivale a x = x * y x *= y *= Equivale a x = x – y x -= y -= Equivale a x = x + y x += y += Atribui o valor de y a x x = y = Comentário Exemplo Operador 26 Funções Matemáticas Tangente de x tan(x) tan Raiz quadrada de x sqrt(x) sqrt Seno de x sin(x) sin Calcula x elevado à potência y pow(x, y) pow Logaritmo decimal de x log10(x) log10 Logaritmo natural de x log(x) log Arredonda o número real para baixo; floor(3.2) é 3 floor(x) floor Valor absoluto de x fabs(x) fabs e elevado à potencia x exp(x) exp Cosseno de x (x em radianos) cos(x) cos Arredonda o número real para cima; ceil(3.2) é 4 ceil(x) ceil Comentário Exemplo Função #include <math.h> 27 Exemplo 9 2) Construa um programa que tendo como entrada dois pontosquaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância entre eles. A fórmula da distância é: #include <stdio.h> #include <stdlib.h> #include <math.h> main() { float x1, y1, x2, y2; float distancia; printf ("\nDigite o valor de x1: "); scanf ("%f",&x1); printf ("\nDigite o valor de y1: "); scanf ("%f",&y1); printf ("\nDigite o valor de x2: "); scanf ("%f",&x2); printf ("\nDigite o valor de y2: "); scanf ("%f",&y2); distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2)); printf ("\nA distancia entre os pontos P1 e P2 e’ %.2f\n", distancia); system("PAUSE"); } 28 Exercicio I 3) Construa um programa que calcule a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio desse cilindro. Sabendo que: - a lata de tinta custa R$20,00 - cada lata contém 5 litros - cada litro de tinta pinta 3 metros quadrados. e que: Área do cilindro= 2 vezes a área da base + circunferencia da base vezes a altura e que raio e altura são dados de entrada. 29 Resposta do Exercício I #include <stdio.h> #include <stdlib.h> #include <math.h> main() { float altura, raio, areaCilindro, qtdadeLitros, qtdadeLatas, custo; printf ("\nDigite o valor da altura em metros: "); scanf ("%f",&altura); printf ("\nDigite o valor do raio em metros: "); scanf ("%f",&raio); areaCilindro=2*3.14*raio*raio + 2*3.14*raio*altura; printf ("\nA area do cilindro e’ %.2f metros quadrados", areaCilindro); qtdadeLitros=areaCilindro/3; printf ("\nA qtidade de litros necessaria e‘ de %.2f ", qtdadeLitros); qtdadeLatas=qtdadeLitros/5; printf ("\nA qtidade de latas necessaria e’ de %.2f ", qtdadeLatas); custo=qtdadeLatas*20; printf ("\nO valor total das tintas e’ de R$ %.2f \n", custo); system("PAUSE"); } Comandos Condicionais Na linguagem C o comando condicional mais simples é o if – else. if (condição) comando1; else comando2; Comparando com algoritmo temos: se condição entao if (condição) comando1 comando1; Senao else comando2 comando2; fimse Comandos Condicionais Ex: #include<stdio.h> main() { int a,b; printf("digite dois números:"); scanf("%d%d",&a,&b); if (b!=0) printf("%d\n",a/b); else printf("divisão por zero\n"); } Comandos Condicionais No exemplo anterior o comando if tinha apenas uma única instrução a ser executada. Para que possam ser executadas várias instruções é necessária usar a representação de instrução composta : • Uma chave aberta ( { ) • Uma sequência de instruções (cada uma terminada por ponto e vírgula ;) • Uma chave fechada ( } ) Comandos Condicionais Existe ainda uma estrutura condicional para casos de seleção múltipla: o switch - case. switch(variável) { case valor1: comandos 1; break; case valor2: comandos 2; break; ... default: comandos; } Comandos Condicionais A variável é testada sucessivamente comparando com os valores de cada caso. Ao encontrar uma coincidência, o comando ou o bloco de comandos é executado. Se nenhuma coincidência for encontrada o comando default será executado. O default é opcional. A sequência de comandos é executada até que o comando break seja encontrado. Se não houver o comando break, todos os comandos abaixo serão realizados em sequência, mesmo que estejam declarados em outro bloco de comandos. Comandos Condicionais Comparando com algoritmo temos: switch (variável) escolha variável { caso valor1 case valor1: comandos 1 comandos 1; caso valor2 break; comandos 2 case valor2: ... comandos 2; outrocaso break; comandos ... fimescolha default: comandos; } Comandos Condicionais Ex: #include<stdio.h> main() { int x; printf("1. incluir\n"); printf("2. alterar\n"); printf("3. excluir\n"); printf("Digite sua opção:"); scanf(“%d”,&x); switch(x) { case 1: printf("escolheu inclusão\n"); break; case 2: printf("escolheu alteração\n"); break; case 3: printf("escolheu exclusão\n"); break; default: printf("opção inválida\n"); } } Comandos de Repetição O comando mais simples de repetição é o for que define um valor inicial a uma variável e vai modificando-o automaticamente a cada execução: for(inicialização; condição; incremento) comando; ü Inicialização: atribuição de um valor à variável de controle; ü Condição: teste que verifica quando o comando de repetição será encerrado; ü Incremento: modificação que será realizada no valor da variável a cada execução Comandos de Repetição Comparando com algoritmo temos: para variável de valor-inicial ate valor-fim faca comando fimpara for(inicialização; condição; incremento) comando; Comandos de Repetição Ex: Imprime valores de 1 a 100 um em cada linha. #include<stdio.h> main() { int x; for(x=1;x<100;x++) printf("%d\n",x); } Obs: para mais de um comando não esquecer de usar a instrução composta com { e } Comandos de Repetição Outros exemplos: ü Para mudar o valor da variável de 2 em 2 for(x=1;x<100;x+=2) printf("%d\n",x); ü Para usar mais de uma variável de controle no mesmo comando for for (x=0,y=0;x+y<100;++x,++y) printf("%d ",x+y); Comandos de Repetição Outro comando de repetição é o while que testa uma condição e executa um comando caso a condição seja verdadeira. Ao chegar no fim do comando um novo teste será executado para se determinar se a repetição continua ou se termina (caso o resultado do teste seja falso): while(condição) comando; ü A condição é testada antes de se lançar a execução do comando. Comandos de Repetição Comparando com algoritmo temos: enquanto condição faca comando fimpara while(condição) comando; Comandos de Repetição Ex: Lê caracteres do teclado até que a letra a seja digitada. #include<stdio.h> main() { char ch; while(ch != ‘a’) scanf("%c",&ch); } Obs: para mais de um comando não esquecer de usar a instrução composta com { e } Comandos de Repetição O último comando de repetição é o do-while que executa um comando e depois testa uma condição para se determinar se a repetição continua ou se termina (caso o resultado do teste seja falso): do { comando; } while(condição); ü Ele resliza sempre pelo menos uma execução do comando já que o teste é só no fim. Comandos de Repetição Comparando com algoritmo temos: repita comando ate condição do { comando; } while(condição); Comandos de Repetição Ex: Lê caracteres do teclado até que a letra a seja digitada. #include<stdio.h> main() { char ch; do { scanf("%c",&ch); } while(ch != ‘a’); } Vetor Vetores são listas ordenadas de determinados tipos de dados. Na linguagem C o vetor inicia com índice 0 (primeiro elemento do vetor e vai até o último elemento declarado na variável).Ex: vetor para armazenar as notas de uma turma. Notas Posição 0 1 2 3 4 5 6 7 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 Vetor Na linguagem C é declarado da seguinte forma: tipo nome_vetor [tamanho]; Ex: float nota [8]; char nome_cliente [50]; Comparando com algoritmo temos: idade:vetor [1..10] de inteiro int idade [10]; Vetor Ex: Colocar os números de 1 a 5 no vetor. #include<stdio.h> main() { int vet [5], i; for (i=0; i<5; i++) vet[i] = i + 1; } Ex2: Colocar os números pares de 0 a 18 no vetor. #include<stdio.h> main() { int x [10], t; for (t=0; i<10; i++) { x[t]=t*2; printf("%d\n",x[t]; } } Vetor Ex3: Ler notas de 5 alunos e calcular a média final. #include<stdio.h> main() { int notas[5],i,soma; for(i=0;i<5;i++) { printf("Digite a nota do aluno %d: ",i); scanf("%d",¬as[i]); } soma=0; for(i=0;i<5;i++) soma=soma+notas[i]; printf("Media das notas: %d.",soma/5); } String Na linguagem C não existe um tipo de dado string, no seu lugar é utilizado uma matriz de caracteres. Uma string é um vetor de caracteres, cujo final é indicado com um caractere nulo (‘\0’). Sendo assim, ao definir uma string, deve-se levar em consideração, além do número de caracteres da string, o caractere nulo que termina a string. Ex: char nome [11] “engenharia” + ‘\0’ String Além dos comandos scanf e printf, no caso das strings existem também os seguintes comandos para: Entrada de dados - gets(vetor) : lê string até o <enter> e guarda em vetor; Saída de dados - puts(mensagem) : escreve mensagem na tela e coloca o \n no final. String Ex: Ler um nome e mostrá-lo em seguida na tela. #include<stdio.h> main() { int nome[50]; printf(“Digite um nome: “); gets(nome); printf(“Nome: %s.",nome); } String A biblioteca <string.h> inclui vários comandos de manipulação de strings como: - strcpy(string1,string2) : copia a string1 em string2; - strcat(string1,string2) : concatena as duas strings em string1; - strcmp(string1,string2) : compara as duas strings. 55 Funções • São estruturas que permitem ao programador separar o código do seu programa em blocos. • Uma função tem a seguinte forma : tipo_de_retorno Nome_da_funcao (parâmetros){ /*corpo da função */ } 56 Funções que não retornam valor : #include <stdio.h> void ehPar (int x){ if (x % 2) { printf ("O numero nao eh par!\n"); } else { printf ("O numero eh par!\n"); } } int main(){ char re[80]; ehPar (3); system("pause"); return (0); } 57 Funções que retornam valor #include <stdio.h> int ehPar (int x){ int z = 0; /* o operador % retorna o resultado da divisão por 2 */ if (x % 2) return 1; } int main(){ char re[80]; int i = ehPar (3); if (i!=0){ printf ("O numero eh par!"); } system("pause"); return (0); } 58 Exercícios 23) Construa um programa que tenha uma função que verifica se um número inteiro, passado como parâmetro, e exiba na tela se o número é negativo ou positivo. 24) Elabore um programa que tenha uma função que retorne o reverso de um número inteiro. Por exemplo, 932-> 239.
Compartilhar