programaÇÃo em c - uel.br - aula... · algoritmos x programação algoritmo é um conjunto finito...
TRANSCRIPT
PROGRAMAÇÃO em C
Vitor Valerio de Souza Campos
Algoritmos x Programação
� ❂ Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth, 2001).
� ❂ Programa é um algoritmo codificado (escrito) em uma linguagem de programação (C/C++)
Como traduzir umalgoritmo ?
� ❂ Exemplo: algoritmo que lê 3 valores, calcula a média e escreve o resultado na tela
� ❂ Para traduzi-lo, será necessário conhecer a sintaxe da linguagem C, isto é, como escrever corretamente o programa de forma que o compilador entenda.
Algoritmo original
INÍCIOINTEIRO x, y, zREAL médiaLER xLER yLER zmédia = (x+y+z)/3ESCREVER média
FIM
Programa equivalente em C/C++
INÍCIOINTEIRO x, y, zREAL médiaLER xLER yLER zmédia = (x+y+z)/3ESCREVER média
FIM
#include <iostream.h>main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Indica uso da biblioteca paraentrada e saída padrão (iostream)
Programação
� Bibliotecas� São arquivos contendo várias funções que
podem ser incorporadas ao programa.� A diretiva #include faz com que o texto contido na
biblioteca especificada seja inserido no programa.� A linguagem C/C++ é sensível a letras
maiúsculas e minúsculas. Sendo assim, todos os comandos devem, obrigatoriamente, ser escritos com letras minúsculas.
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Corresponde ao INÍCIO doalgoritmo (main – principal eminglês)
Declaração de variáveis
� Declaração de variáveis em C/C++� As variáveis são declaradas após a especificação
de seu tipo� Tipos de dados:
� int (para número inteiros), � float (para número reais) e � char (para um caractere)
� A linguagem C não possui tipos de dados boolean, pois considera verdadeiro qualquer valor diferente de 0 (zero).
Declaração de variáveis
� Declaração de variável:� Variável x em que pode ser armazenado um
número real � float x;
� Variáveis y e z em que podem ser armazenados dois números reais float y, z;
� Variável SEXO em que podem ser armazenados um caractere � char SEXO;
� Variável NOME em que podem ser armazenados até 40 caracteres � char NOME[40];
Tipos a serem usados na declaração de variáveis
TIPO FAIXA DE VALORES
char -128 a 127
unsigned char 0 a 255
int -32.768 a 32.767
unsigned int 0 a 65.535
short int -32.768 a 32.767
long -2.147.483.648 a 2.147.483.647
unsigned long 0 a 4.294.967.295
float 3.4 x 10-38 a 3.4 x 1038
double 1.7 x 10-308 a 1.7 x 10308
long double 3.4 x 10-4932 a 3.4 x 104932
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Declaração de 3 variáveis do tipo inteiro (int) – x, y e z Observe que TODAS AS VARIÁVEIS devem ser declaradas antes de serem usadas!
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Note que no final da cada comando é necessária a presençade um ponto-e-vírgula!
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Declaração da variável media,cujo tipo é real (float)Atenção! Repare que os nomes dasvariáveis não podem ter acentuação!
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Comando de entrada utilizado para receber dados digitados pelo usuário. O dados recebidos são armazenados nas variáveis x, y e z.O comando cin consegue armazenar os caracteres até que seja encontrado o primeiro espaço em branco.
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Calcula a média dos 3 númerose armazena o resultado navariável media
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}
Comando de saída utilizado para mostrar dados na tela. ESCREVE na tela o valor da variável media, calculado na linha anterior
Olhando o programa de perto#include <iostream>int main(){
int x, y, z;float media;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << media;
}A chave final equivale aoFIM do algoritmo
Problema do programa ?
❂ O programa não informa nada ao usuário: irá esperar a digitação dos 3 valores, calcular a média e exibi-la na tela.❂ Porém, o usuário não tem a menor idéia do que
o programa faz, a não ser que consulte o código-fonte.❂ Para resolver o problema, temos que exibir
mensagens que orientem o usuário: isso é essencial em qualquer programa, por menor que seja!
Tornando o programa mais“amigável”#include <iostream>int main(){
int x, y, z;float media;cout << “Digite 3 valores: \n“ ;cin >> x;cin >> y;cin >> z;media = (x+y+z)/3;cout << “A média é: “ << media;return 0;
}
Exercícios (1)
� Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses números.� Algoritmo:
Exercícios (2)
� Faça um programa que receba três notas, calcule e mostre a média aritmética entre elas.
Outro exemplo:
❂ Escrever um algoritmo que lê as medidas de um terreno retangular e de uma casa sobre este terreno.
❂ A seguir, calcula e exibe o percentual de área livre no terreno.
❂ Codificaremos diretamente em C++...
Programa do Terreno e Casa#include <iostream>int main(){
float larg_terr, alt_terr, larg_casa, alt_casa;float area_terr, area_casa, area_livre;cout << “Digite as medidas do terreno: “;cin >> larg_terr;cin >> alt_terr;cout << “Digite as medidas da casa: “;cin >> larg_casa;cin >> alt_casa;…
Programa do Terreno e Casa
...area_terr = larg_terr * alt_terr;area_casa = larg_casa * alt_casa;area_livre = area_terr – area_casa;cout << “Percentual de área livre: “;cout << area_livre / area_terr * 100 << “%\n”;
}
Outro exemplo:
❂ Escrever um algoritmo que lê os coeficientes de uma equação de 2º grau.
❂ A seguir, calcula e exibe as raízes (através da fórmula de Baskara).
❂ Ao codificarmos esse algoritmo, surgirão alguns problemas...
Programa das Raízes#include <iostream>#include <math>int main(){
float a,b,c;float delta,x1,x2;cout << “Digite os 3 coeficientes: “;cin >> a;cin >> b;cin >> c;delta = b*b – 4 * a * c;x1 = (-b + sqrt(delta)) / (2*a);x2 = (-b - sqrt(delta)) / (2*a);cout << “As raízes são: “;cout << x1 << “ e “ << x2 << “\n”;
}
Programa das Raízes#include <iostream>#include <math>int main(){
float a,b,c;float delta,x1,x2;cout << “Digite os 3 coeficientes: “;cin >> a;cin >> b;cin >> c;delta = b*b – 4 * a * c;x1 = (-b + sqrt(delta)) / (2*a);x2 = (-b - sqrt(delta)) / (2*a);cout << “As raízes são: “;cout << x1 << “ e “ << x2 << “\n”;
}
Inclusão da biblioteca matemática (math.h) para que seja possível usar funções matemáticas, como raiz quadrada, potência, etc.
Programa das Raízes#include <iostream>#include <math>int main(){
float a,b,c;float delta,x1,x2;cout << “Digite os 3 coeficientes: “;cin >> a;cin >> b;cin >> c;delta = b*b – 4 * a * c;x1 = (-b + sqrt(delta)) / (2*a);x2 = (-b - sqrt(delta)) / (2*a);cout << “As raízes são: “;cout << x1 << “ e “ << x2 << “\n”;
}
Função raiz quadrada: sqrt (square root)
O que pode dar errado ?
❂ Programas devem prever erros do usuário!❂ No caso do programa das raízes:
• Valor de A pode ser negativo ?• Delta pode dar negativo ?
❂ O que acontece ?