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) 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: 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). 9. Problema: Montar um algoritmo capaz de ler um caractere do teclado e escrevê-lo na tela duas vezes seguidas (na linha de baixo): 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’. 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: