ALGORITMOS APLICADOS À ENGENHARIA I A2 – Exercícios preparatórios Fluxograma, Pseudocódigo e Pascal 1. Problema: Montar um algoritmo capaz de ler os dois lados de um retângulo e calcular sua área e apresentar o resultado na tela: Fluxograma Pseudocódigo (Portugol) Código Pascal Programa AreaDoRet {cabeçalho do programa} Program AreaDoRet; Início “Digite a medida do lado 1” Var L1, L2, AreaRe:Real {área de declarações} Var L1, L2, AreaRe:Real; Início Escreva “Digite a medida de lado 1” Leia L1 Escreva “Digite a medida do lado 2” Leai L2 AreaRe L1 * L2 Escreva “A área do retângulo é”, AreaRe {corpo do programa} Begin Writeln(‘Digite a medida de lado 1’); Readln(L1); Writeln(‘Digite a medida do lado 2’); Readln(L2); AreaRe := L1 * L2; Writeln(‘A área do retângulo é’, AreaRe); L1 “Digite a medida do lado 2” L2 AreaRe L1 * L2 “A área do retângulo é”, AreaRe End. FIM Fim. Observações: 1. Percebam que a diferença entre o Pseudocódigo e o código Pascal é mínima. 2. E que a lógica (raciocínio) realizada para um, é a mesma utilizada para o outro. 3. Todo conteúdo entre chaves {comentário} no código Pascal é identificado como comentário, e não altera em nada a compilação ou lógica do programa. Seu único objetivo é facilitar o entendimento do código. 4. Diferentemente do Fluxograma e do Pseudocódigo, toda representação de texto em código Pascal vem entre aspas simples ‘texto ‘. 5. O símbolo de atribuição (←) em código Pascal é representado por (:=). ALGORITMOS APLICADOS À ENGENHARIA I 2. Problema: Montar um algoritmo capaz de ler os dois números inteiros e escrevê-los na tela (um em cada linha): Fluxograma Pseudocódigo (Portugol) Código Pascal Programa N1N2 {cabeçalho do programa} Program N1N2; Var {área de declarações} Var N1, N2: Integer; Início “Digite o primeiro número: ” N1, N2: Inteiro N1 “Digite o segundo número: ” N2 N1 Início Escreva “Digite o primeiro número: ” Leia N1 Escreva “Digite o segundo número: ” Leai N2 Escreva N1 Escreva N2 {corpo do programa} Begin Write(‘Digite o primeiro número: ’); Readln(N1); Writeln(‘Digite o segundo número: ’); Readln(N2); Writeln(N1); Writeln(N2); Fim. End. N2 FIM ALGORITMOS APLICADOS À ENGENHARIA I 3. Problema: Montar um algoritmo capaz de ler os dois números inteiros e escrevê-los na tela (na mesma linha): Fluxograma Pseudocódigo (Portugol) Código Pascal Início “Digite o primeiro número: ” Programa N1N2 {cabeçalho do programa} Program N1N2; Var {área de declarações} Var N1, N2: Integer; N1, N2: Inteiro N1 “Digite o segundo número: ” N2 Início Escreva “Digite o primeiro número: ” Leia N1 Escreva “Digite o segundo número: ” Leai N2 Escreva N1,N2 N1,N2 FIM {corpo do programa} Begin Write(‘Digite o primeiro número: ’); Readln(N1); Write(‘Digite o segundo número: ’); Readln(N2); Writeln(N1, ’,’ ,N2); {Aparece na tela o valor de N1,N2} Fim. End. ALGORITMOS APLICADOS À ENGENHARIA I 4. Problema: Montar um algoritmo capaz de ler os dois números inteiros e somá-los e escrever o resultado na tela: Fluxograma Pseudocódigo (Portugol) Início Programa SomaNum “Digite o primeiro número” Código Pascal {cabeçalho do programa} Program SomaNum; Var N1, N2, Soma:Inteiro {área de declarações} Var N1, N2, Soma:Inteiro; Início Escreva “Digite o primeiro número” Leia N1 Escreva “Digite o segundo número” Leai N2 Soma N1 + N2 Escreva “A soma de N1 com N2 é ”, Soma {corpo do programa} Begin Writeln(‘Digite o primeiro número’); Readln(N1); Writeln(‘Digite o segundo número’); Readln(N2); Soma := N1 + N2 Writeln(‘A soma de N1 com N2 é ‘, Soma); N1 “Digite o segundo número” N2 Soma N1 + N2 “A soma de N1 com N2 é ”, Soma End. FIM Fim. ALGORITMOS APLICADOS À ENGENHARIA I 5. Problema: Montar um programa que leia dois números inteiros, identifica o maior e escreve ele na tela novamente: Fluxograma Pseudocódigo (Portugol) Código Pascal Início Programa Omaior “Digite o primeiro número” Var N1, N2, Soma:Inteiro {cabeçalho do programa} Program Omaior; {área de declarações} Var N1, N2, Soma:Inteiro; N1 “Digite o segundo número” N2 SIM NÃO N1>N2 ? N1 Início Escreva “Digite o primeiro número” Leia N1 Escreva “Digite o segundo número” Leai N2 Se N1 > N2 Então Escreva N1 Senão Escreva N2 {corpo do programa} Begin Writeln(‘Digite o primeiro número’); Readln(N1); Writeln(‘Digite o segundo número’); Readln(N2); If (N1>N2) Then Writeln(N1) {sem ;} Else Writeln(N2); N2 Fim. FIM End. ALGORITMOS APLICADOS À ENGENHARIA I 6. Problema: Montar um algoritmo que calcule o perímetro e a área de um círculo, baseado no raio digitado pelo usuário. Escrever os resultados na tela: (P := 2 * PI * R A:= PI * R ^ 2) Fluxograma Pseudocódigo (Portugol) Código Pascal Programa Circulo {cabeçalho do programa} Program Circulo; Const PI=3.14 Var raio, Per, Area:real {área de declarações} Const PI=3.14 Var N1, N2, Soma:Inteiro; Início Escreva “Digite o raio do círculo” Leia raio {corpo do programa} Begin Writeln(‘Digite o raio do círculo’); Readln(raio); Início “Digite o raio do círculo:” raio Per 2 * π * raio Per 2 * PI * raio Area PI * raio * raio Area π * raio * raio “A medida do perímetro é ”, Per Escreva “A medida do perímetro é ”, Per Escreva “A medida da área é ”, Area Per := 2 * PI * raio; Area := PI * raio * raio; Writeln(‘A medida do perímetro é ’, Per); Writleln(‘A medida da área é ’, Area); “A medida da área é ”, Area Fim. FIM End. ALGORITMOS APLICADOS À ENGENHARIA I 7. Problema: Montar um algoritmo que leia 4 notas (A1,A2,A3 e A4), escolha a maior entre A1 e A2, e calcule a média de acordo os critérios da Uninove (Media := (A1+A3+A4)/3 ou Media := (A2+A3+A4)/3). Escrever a média na tela: ALGORITMOS APLICADOS À ENGENHARIA I 8. Problema: Pretende-se elaborar um programa que permita ler um número a partir do teclado, e apresentar a indicação de que é positivo, negativo ou nulo. Entradas: Num Saídas: mensagens Descrição do problema: Se N = 0 então N é nulo Se N > 0 então N é positivo; senão N é negativo Este problema faz então uso de estruturas condicionais (estruturas de seleção). Fluxograma Pseudocódigo (Portugol) Código Pascal Programa TipoN {cabeçalho do programa} Program TipoN; Var N:Inteiro {área de declarações} Var N:Inteiro; Início Escreva “Digite um número” Leia N {corpo do programa} Begin Writeln(‘Digite um número’); Readln(N); Início “Digite um número” N SIM N=0? NÃO NÃO N>0? SIM N, “ é positivo” Se N =0 Então Escreva N, “ é nulo” Senão Se N > 0 Então Escreva n, “ é positivo” Senão Escreva n, “ é negativo” If (N = 0) Then Writeln( N, ‘ é nulo’) Else If (N > 0) Then Writeln(n, ‘ é positivo’) Else Writeln(n, ‘ é negativo’); {; apenas aqui} N, “ é N, “ é nulo” negativo” FIM Fim. End. ALGORITMOS APLICADOS À ENGENHARIA I 9. Problema: Montar um algoritmo capaz de ler um caractere do teclado e escrevê-lo na tela duas vezes seguidas (na linha de baixo): ALGORITMOS APLICADOS À ENGENHARIA I 10. Problema: Escrever um programa que peça para digitar M se o sexo é feminino ou H se o sexo é masculino. Baseado na letra digitada escrever na tela ‘Seu sexo é masculino’ ou ‘Seu sexo é feninimo’. Fluxograma Pseudocódigo (Portugol) Código Pascal Programa TipoSexo {cabeçalho do programa} Program TipoSexo; Var Sexo:Caracter {área de declarações} Var Sexo:Char; Início Escreva “Digitar M se o sexo é feminino ou H se o sexo é masculino” Leia Sexo {corpo do programa} Begin Writeln(‘Digitar M se o sexo é feminino ou H se o sexo é masculino’); Readln(Sexo); Início “Digitar M se o sexo é feminino ou H se o sexo é masculino” Sexo SIM Sexo = “M” ? NÃO Sexo = “H” ? SIM “Seu sexo é masculino” “Seu sexo é feminino” NÃO Se Sexo = “M” Então Escreva “Seu sexo é feminino” Senão Se Sexo = “H” Então Escreva “Seu sexo é masculino”; Fim. FIM If (Sexo = ‘M’) Then Writeln(‘Seu sexo é feminino’) Else If (Sexo = ‘H’) Then Writeln(‘Seu sexo é masculino’); {; aqui porque neste caso não há o Else} End. ALGORITMOS APLICADOS À ENGENHARIA I 11. Problema: Montar um algoritmo capaz de ler a base maior, a base menor e a altura de um trapézio. Em seguida calcular sua área e escrever o resultado na tela: (AreaTrapezio := (Bmaior + Bmenor) * Altura /2) 12. Problema: Montar um algoritmo capaz de ler os dois números reais, calcular a multiplicação entre eles, somar 80 ao resultado e escrevê-lo na tela: 13. Problema: Montar um programa que leia dois números e escreva na tela qual é o maior: 14. Problema: Montar um programa que leia três números e escreva na tela qual é o maior: 15. Problema: Montar um programa que leia o lado de um quadrado e o raio de uma circunferência, calcule e área de cada um deles e diga qual tem área maior: