Baixe o app para aproveitar ainda mais
Prévia do material em texto
Primeiros Passos na Linguagem C/C++ A 1 Enquanto n <= 20 Se Fim Prof. Raimundo J. Macário Costa (Estácio) 2011 Algoritmo Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito (Orth Orth, 2001). Programa é um algoritmo codificado (escrito) em uma linguagem de programação (C/C++) Como traduzir um algoritmo? 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ÍCIO INTEIRO x, y, z REAL média LER x LER y LER z média = (x+y+z)/3 ESCREVER média FIM Programa equivalente em C/C++ INÍCIO INTEIRO x, y, z REAL média LER x LER y LER z média = (x+y+z)/3 ESCREVER 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.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.h> main () { int x, y, z; float media; cin >> x; cin >> y; cin >> z; media = (x+y+z)/3; cout << media; } Indica uso da biblioteca para entrada e saída padrão (iostream) Olhando o programa de perto #include <iostream.h> main () { int x, y, z; float media; cin >> x; cin >> y; cin >> z; media = (x+y+z)/3; cout << media; } Corresponde ao INÍCIO do algoritmo (main – principal em inglês) Olhando o programa de perto #include <iostream.h> 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.h> 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ça de um ponto-e-vírgula. Olhando o programa de perto #include <iostream.h> 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 das variáveis não podem ter acentuação. Olhando o programa de perto #include <iostream.h> main () { int x, y, z; float media; cin >> x; cin >> y; cin >> z; media = (x+y+z)/3; cout << media; } Equivale ao LER: espera a digitação de um valor inteiro e armazena na variável x (Idem para as variáveis y e z) Olhando o programa de perto #include <iostream.h> 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úmeros e armazena o resultado na variável media Olhando o programa de perto #include <iostream.h> main () { int x, y, z; float media; cin >> x; cin >> y; cin >> z; media = (x+y+z)/3; cout << media; } Finalmente, ESCREVE na tela o valor da variável media, calculado na linha anterior Olhando o programa de perto #include <iostream.h> main () { int x, y, z; float media; cin >> x; cin >> y; cin >> z; media = (x+y+z)/3; cout << media; } A chave final equivale ao FIM do algoritmo Problemas 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! Problemas do programa? #include <iostream.h> main () { int x, y, z; float media; cout << “Digite 3 valores: “; cin >> x; cin >> y; cin >> z; media = (x+y+z)/3; cout << “A média é: “ << media; } Problemas do programa? • 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.h> 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; ... continua ... 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”; } 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”; } • O caractere \n significa “ir para a linha seguinte”, isto • é, faz com que a próxima mensagem seja exibida na • próxima linha da tela. • Observe que o resultado será exibido na mesma linha • do texto “Percentual de área livre” 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.h> # include <math.h> 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.h> # include <math.h> 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.h> # include <math.h> 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) Programa das raízes • 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? Exercício • Construa um programa que calcule a quantidade de latas de tinta necessárias e o custo para pintar tanques cilíndricos de combustível , em que são fornecidas a altura e o raio dos cilindros. • Sabendo que: • A lata de tinta custa R$ 50,00; • Cada lata contém 5 litros; • Cada lata de tinta pinta 3 metros quadrados. • Dados de entrada: altura (H) e raio (R). • Dados de saída: custo (C) e quantidade (QTDE). Exercício • Utilizando o planejamento reverso, sabemos que: • O custo é dado pela quantidade de latas * R$ 50,00; • A quantidade de latas é dada pela quantidade total de litros / 5; • A quantidade total de litros é dada pela área do cilindro / 3; • A área do cilindro é dad pela área da base + área lateral; • A área da base é (PI * pot(R,2); • A área lateral é altura * comprimento: (2 * PI * R * H); • Sendo que R (raio) e H (altura) são dados de entrada e PI é uma constante de valor conhecido: 3,14. Construção do algoritmo Algoritmo: Quantidade de latas de tintas Inicio real: H, R; real: C, Qtde, Area, Litro; leia (H, R); Area (3,14 * pot(R,2)) + (2* 3,14 * R * H); Litro Area/3; Qtde Litro/5 C Qtde * 50,00 escreva (C, Qtde); Fim. Construção de Pseudocódigo • Desenvolver um pseudocódigo para ler o nome, a idade, o cargo e o salário de 50 pessoas e verificar quantas possuem idade inferior a 30 anos e um salário superior a R$ 3.000,00. Algoritmo1 Var nome, cargo: literal idade, n_pessoa,s tot_pessoas: inteiro salario: real Inicio n_pessoas 1 tot_pessoas 0 enquanto (n_pessoas <= 50) Faça Ler (nome, idade, cargo, salario) se (idade <= 30) e (salario >= 3000,00) Então tot_pessoas tot_pessoas + 1 Fim-se n_pessoas n_pessoas +1 Fim-Enquanto Motrar (“Total de pessoas que atendem a condição é ”, tot_pessoas Fim
Compartilhar