programaÇÃo em c - uel.br - aula... · algoritmos x programação algoritmo é um conjunto finito...

30
PROGRAMAÇÃO em C Vitor Valerio de Souza Campos

Upload: hoangtruc

Post on 26-Sep-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

PROGRAMAÇÃO em C

Vitor Valerio de Souza Campos

Page 2: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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++)

Page 3: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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.

Page 4: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

Algoritmo original

INÍCIOINTEIRO x, y, zREAL médiaLER xLER yLER zmédia = (x+y+z)/3ESCREVER média

FIM

Page 5: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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;

}

Page 6: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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)

Page 7: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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.

Page 8: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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)

Page 9: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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).

Page 10: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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];

Page 11: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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

Page 12: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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!

Page 13: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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!

Page 14: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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!

Page 15: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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.

Page 16: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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

Page 17: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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

Page 18: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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

Page 19: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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!

Page 20: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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;

}

Page 21: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

Exercícios (1)

� Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses números.� Algoritmo:

Page 22: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

Exercícios (2)

� Faça um programa que receba três notas, calcule e mostre a média aritmética entre elas.

Page 23: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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++...

Page 24: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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;…

Page 25: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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”;

}

Page 26: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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...

Page 27: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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”;

}

Page 28: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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.

Page 29: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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)

Page 30: PROGRAMAÇÃO em C - uel.br - Aula... · Algoritmos x Programação Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth,

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 ?