16
Bacharelado em Ciência e Tecnologia BC-0505 Processamento da Informação Lista de Exercícios EXTRA Nº 02 Algoritmos Estruturas de Seleção ATENÇÃO- Para cada um dos exercícios abaixo, antes de escrever o algoritmo, identifique ENTRADA, PROCESSAMENTO e SAÍDA, utilizando a seguinte técnica de interpretação de enunciado: 1. Escreva um programa que informe ao usuário se deve ou não levar uma blusa consigo. Sabe-se que a blusa é indicada se a temperatura em graus celsius estiver abaixo de 20 graus. SAÍDA: Quais os resultados que o algoritmo dever fornecer ? Mensagem indicando se o usuário deve ou não levar uma blusa consigo ENTRADA: Quais os insumos necessários para se obter a saída? Um número real (temperatura) PROCESSAMENTO: Como transformar os insumos na saída? Verificar, por comparação, se a temperatura informada condiciona levar ou não a blusa PROGRAMA - PORTUGOL programa { funcao inicio() { //DECLARAÇÃO DE VARIÁVEIS real temp //ENTRADA escreva("Digite a temperatura atual: ") leia(temp) //PROCESSAMENTO E SAÍDA se (temp<20){ //Verifica a temperatura e indica a mensagem ao usuário escreva("Você deve levar uma blusa consigo.\n") }senao{ escreva("Você não precisa levar uma blusa consigo.\n") } } }

Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

Embed Size (px)

Citation preview

Page 1: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

Bacharelado em Ciência e Tecnologia BC-0505 Processamento da Informação

Lista de Exercícios EXTRA Nº 02

Algoritmos – Estruturas de Seleção

ATENÇÃO- Para cada um dos exercícios abaixo, antes de escrever o algoritmo, identifique ENTRADA, PROCESSAMENTO e SAÍDA, utilizando a seguinte técnica de interpretação de enunciado:

1. Escreva um programa que informe ao usuário se deve ou não levar uma blusa consigo.

Sabe-se que a blusa é indicada se a temperatura em graus celsius estiver abaixo de 20

graus.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem indicando se o usuário deve ou não levar uma blusa consigo

ENTRADA: Quais os insumos necessários para se obter a saída?

Um número real (temperatura)

PROCESSAMENTO: Como transformar os insumos na saída?

Verificar, por comparação, se a temperatura informada condiciona levar ou não a blusa

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

real temp

//ENTRADA

escreva("Digite a temperatura atual: ")

leia(temp)

//PROCESSAMENTO E SAÍDA

se (temp<20){ //Verifica a temperatura e indica a mensagem ao usuário

escreva("Você deve levar uma blusa consigo.\n")

}senao{

escreva("Você não precisa levar uma blusa consigo.\n")

}

}

}

Page 2: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem

informando se o número é par ou ímpar. Exiba:

Caso verdadeiro: ―O número é par‖

Caso falso: ―O número é ímpar‖

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem dizendo se o número informado é par ou ímpar.

ENTRADA: Quais os insumos necessários para se obter a saída?

Um número inteiro

PROCESSAMENTO: Como transformar os insumos na saída?

Número par: x % 2 = 0

Número ímpar: x % 2 != 0

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro x

//ENTRADA

escreva ("Favor digitar um número inteiro: ")

leia (x)

//PROCESSAMENTO E SAÍDA

se (x % 2 == 0) //Verifica se o número é par ou impar.

escreva ("O número " + x + " é par.")

senao

escreva ("O número " + x + " é ímpar.")

}

}

Page 3: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

3. Escreva um programa que solicite ao usuário uma letra e verifique se ela é uma vogal ou

não exibindo uma mensagem correspondente. Exiba:

Caso verdadeiro: ―É uma vogal‖

Caso falso: ―Não é uma vogal‖

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem indicando se a letra é ou não uma vogal

ENTRADA: Quais os insumos necessários para se obter a saída?

Um caractere

PROCESSAMENTO: Como transformar os insumos na saída?

Comparar o caractere informado com todas as vogais minúsculas e maiúsculas do alfabeto

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

caracter letra

//ENTRADA

escreva("Digite uma letra: ")

leia(letra)

//PROCESSAMENTO E SAÍDA

se(letra == 'a' ou letra == 'e' ou letra == 'i' ou letra == 'o' ou letra == 'u' ou

letra == 'A' ou letra == 'E' ou letra == 'I' ou letra == 'O' ou letra == 'U'){

escreva("E uma Vogal.\n")

}senao{

escreva("Nao é uma vogal.\n")

}

}

}

Page 4: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

4. Escreva um programa que exiba o maior dentre dois números reais digitados pelo usuário,

na forma ―numero tal‖ é maior que ―numero tal‖. Caso eles sejam iguais deve-se exibir a

mensagem na forma: numero tal‖ é igual ao ―numero tal‖

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem informando qual o maior número digitado

ENTRADA: Quais os insumos necessários para se obter a saída?

Dois números reais

PROCESSAMENTO: Como transformar os insumos na saída?

Se x > y: x é o maior

Se x < y: y é o maior

Se x == y: eles são iguais

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro x, y

//ENTRADA

escreva ("Favor digitar o primeiro número real: ")

leia (x)

escreva ("Favor digitar o segundo número real: ")

leia (y)

//PROCESSAMENTO E SAÍDA

se (x == y)

escreva ("O número " + x + " é igual ao número " + y)

senao se (x > y)

escreva ("O número " + x + " é maior do que o número " + y)

senao

escreva ("O número " + y + " é maior do que o número " + x)

}

}

Page 5: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

5. Escreva um programa que exiba na tela o triplo de um número inteiro informado pelo

usuário. Caso o número informado pelo usuário seja negativo, o mesmo deve ser

transformado no seu equivalente positivo antes da exibição do seu triplo.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

O valor do triplo de um número

ENTRADA: Quais os insumos necessários para se obter a saída?

Um número inteiro

PROCESSAMENTO: Como transformar os insumos na saída?

Obter o módulo do número informado e multiplicá-lo por três

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro numero, triplo

//ENTRADA

escreva("Digite um numero: ")

leia(numero)

//PROCESSAMENTO E SAÍDA

se (numero < 0){

numero = numero * ( - 1)

triplo = 3 * numero

}senao{

triplo = 3 * numero

}

escreva("O triplo do numero digitado é ", triplo, ".\n")

}

}

Page 6: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

6. Escreva um programa que calcule a idade de uma pessoa a partir do seu ano de nascimento.

O programa deve mostrar na tela a idade e também as seguintes mensagens, quando for o

caso:

Já pode votar (se tiver 16 anos ou mais);

Já pode solicitar a Carteira de Habilitação (se tiver 18 anos ou mais).

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Idade da pessoa

Se já pode votar

Se já pode solicitar a Carteira de Habilitação

ENTRADA: Quais os insumos necessários para se obter a saída?

Ano de nascimento

PROCESSAMENTO: Como transformar os insumos na saída?

Idade = 2015 - anoDeNascimento

Se Idade > 16: já pode votar

Se Idade > 18: já pode solicitar Carteira de Habilitação

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro ano, idade

//ENTRADA

escreva ("Favor digitar o seu ano de nascimento: ")

leia (ano)

//PROCESSAMENTO E SAÍDA

idade = 2015 - ano

escreva ("Você tem " + idade + " anos de idade.")

se (idade >= 18){

escreva ("\nJá pode votar.")

escreva ("\nJá pode solicitar a Carteira de Habilitação.")}

senao se (idade >= 16)

escreva ("\nJá pode votar.")

}

}

Page 7: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

7. Escreva um algoritmo que leia três números inteiros e imprima-os em ordem crescente.

Efetue pelo menos 3 testes do seu algoritmo com entradas de dados distintas. Analise os

resultados do seu algoritmo.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Impressão dos valores na ordem crescente

ENTRADA: Quais os insumos necessários para se obter a saída?

Três números inteiros

PROCESSAMENTO: Como transformar os insumos na saída?

Há diversas alternativas para este processamento, um deles bem trabalhoso e não muito

enxuto, porém bem direto, é associar cada ordenação possível com uma impressão e

comparar com os dados de entrada, uma sugestão para melhorar essa ideia é encadear todas

as opções.

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro a, b, c

//ENTRADA

escreva("Entre com os tres inteiros a serem ordenados: ")

leia(a, b, c)

//PROCESSAMENTO E SAÍDA

se(a>b e b>c e a>c){

escreva(c, " < ", b, " < ", a, ".\n")

}senao se(a>b e b<c e a>c){

escreva(b, " < ", c, " < ", a, ".\n")

}senao se(b>a e a>c e b>c){

escreva(c, " < ", a, " < ", b, ".\n")

}senao se(b>a e a<c e b>c){

escreva(a, " < ", c, " < ", b, ".\n")

}senao se(c>a e a>b e c>b){

escreva(b, " < ", a, " < ", c, ".\n")

}senao (c>a e a<b e b<c){

escreva(a, " < ", b, " < ", c, ".\n")

}

}

}

Page 8: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

8. Escreva um algoritmo que peça como entrada os coeficientes a, b e c de uma equação de

2.o grau e forneça como saída as suas raízes. Lembre-se de prever os seguintes casos:

I. a = 0 : Equação de 1.o grau, calcule a única raiz diretamente

II. Δ = 0 : Calcule a única raiz pela fórmula de Baskara

III. Δ < 0 : Calcule as 2 raízes complexas pela fórmula de Baskara

IV. Δ > 0 : Calcule as 2 raízes reais pela fórmula de Baskara

A formula de Baskara =

Δ = b2 – 4ac

Exemplo: a = 1 , b = -5, c = 6 raiz1 = 2 e raiz2 = 3

ATENÇÃO:

No PORTUGOL STUDIO existe uma função para calculo de RAIZ QUADRADA: a

função chama-se raiz. A instrução a seguir calcula a raiz quadrada do valor x e armazena

em y. Por exemplo, se x = 5, y será 25. Exemplo: y = raiz(x,2.0)

Uma outra função útil é a que calcula POTÊNCIA: a função chama-se potencia. A

instrução a seguir calcula a potência do valor x elevado a y e armazena em z. Por exemplo,

se x = 3 e y = 4, z será 81. Exemplo: z = potencia(x,y)

No Portugol Studio essas funções estão dentro da Biblioteca Matemática. Assim para chama-las

você deve:

a) Incluir a biblioteca, utilizando a instrução abaixo ANTES da função início( )

inclua biblioteca Matematica -->mat

obs: Usar -->mat equivale a dar um “apelido” mais curto para a biblioteca

Matemática

b) As chamadas às funções devem ser feitas utilizando mat ou Matematica Exemplo: y = mat.raiz(x, 2.0)

z = mat.potencia(x,y)

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

As raízes da equação

ENTRADA: Quais os insumos necessários para se obter a saída?

Os coeficientes A, B e C da equação

PROCESSAMENTO: Como transformar os insumos na saída?

Fórmula de Baskara contida no enunciado

Page 9: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

PROGRAMA - PORTUGOL

programa

{

inclua biblioteca Matematica --> mat

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

real a, b, c, delta, raiz1, raiz2, parteReal

//ENTRADA

escreva ("Favor digitar o valor do coeficiente A: ")

leia (a)

escreva ("Favor digitar o valor do coeficiente B: ")

leia (b)

escreva ("Favor digitar o valor do coeficiente C: ")

leia (c)

//PROCESSAMENTO E SAÍDA

delta = mat.potencia (b,2.0) - (4*a*c)

se (a == 0){

raiz1 = -c/b

escreva ("A raíz da equação é " + raiz1)}

senao se (delta == 0){

raiz1 = -b/(2*a)

escreva ("A raíz da equação é " + raiz1)}

senao se (delta < 0){

parteReal = -b/(2*a)

raiz1 = (mat.raiz(-1*delta,2.0))/(2*a)

escreva ("As raízes da equação são: " + parteReal + " + " + raiz1 +

"i e " + parteReal + " - " + raiz1 + "i.")}

senao{

raiz1 = (-b + mat.raiz(delta,2.0))/(2*a)

raiz2 = (-b - mat.raiz(delta,2.0))/(2*a)

escreva ("As raízes da equação são : " + raiz1 + " e " + raiz2)}

}

}

Page 10: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

9. Escreva um algoritmo que peça como entrada o conceito final de um aluno em uma

disciplina cursada na UFABC e imprima a mensagem correta, conforme tabela abaixo:

CONCEITO FINAL SITUAÇÃO

A Desempenho excepcional

B Bom desempenho

C Desempenho adequado

D Aproveitamento mínimo

F Reprovado

O Reprovado por falta

I Incompleto

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem indicando a situação correspondente ao conceito final

ENTRADA: Quais os insumos necessários para se obter a saída?

Um caractere maiúsculo indicando o conceito

PROCESSAMENTO: Como transformar os insumos na saída?

Basta associar cada conceito à sua respectiva impressão e comparar a entrada com cada caso

deste.

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

caracter conceito

//ENTRADA

escreva("Entre com o conceito final: ")

leia(conceito)

//PROCESSAMENTO E SAÍDA

se(conceito == 'A'){

escreva("Desempenho excepcional.\n")

}senao se(conceito == 'B'){

escreva("Bom desempenho.\n")

}senao se(conceito == 'C'){

escreva("Desempenho adequado.\n")

}senao se(conceito == 'D'){

escreva("Aproveitamento mínimo.\n")

}senao se(conceito == 'F'){

escreva("Reprovado.\n")

}senao se(conceito == 'O'){

escreva("Reprovado por falta.\n")

}senao se (conceito == 'I'){

escreva("Incompleto.\n")

}

}

}

Page 11: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

10. Uma livraria está fazendo uma promoção para pagamento à vista em que o comprador pode

escolher entre dois critérios de desconto:

Critério A: R$ 0,25 por livro + R$ 7,50 fixo

Critério B: R$ 0,50 por livro + R$ 2,50 fixo

Escreva um algoritmo em que o usuário digite a quantidade de livros que deseja comprar e

programa diga qual é a melhor opção de desconto.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Qual o critério de promoção mais vantajoso

ENTRADA: Quais os insumos necessários para se obter a saída?

Quantidade de livros desejados

PROCESSAMENTO: Como transformar os insumos na saída?

Critério A: 0.25*livros + 7.5

Critério B: 0.5*livros + 2.5

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro livros

real a, b

//ENTRADA

escreva ("Favor digitar a quantidade de livros desejada: ")

leia (livros)

//PROCESSAMENTO E SAÍDA

a = 0.25*livros + 7.5

b = 0.5*livros + 2.5

escreva ("De acordo com o critério A, o cliente terá um desconto de " + a + "

reais.")

escreva ("\nDe acordo com o critério B, o cliente terá um desconto de " + b + "

reais.")

se (a > b)

escreva ("\nNeste caso, é mais vantajoso comprar pelo critério A.")

senao se (b > a)

escreva ("\nNeste caso, é mais vantajoso comprar pelo critério B.")

senao

escreva ("\nNeste caso, ambos critérios resultam no mesmo preço.")

}

}

Page 12: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

11. O imposto de renda MENSAL de uma pessoa física (IR) é calculado com base na sua renda

mensal. Escreva um algoritmo para calcular e imprimir o IR MENSAL e o IR ANUAL de

uma pessoa considerando a seguinte tabela e supondo que sua renda mensal (salário) é a

mesma durante os 12 meses.

Base de cálculo mensal em R$ Alíquota % Parcela a deduzir do imposto em R$

Até 1.499,15 - -

De 1.499,16 até 2.246,75 7,5 112,43

De 2.246,76 até 2.995,70 15,0 280,94

De 2.995,71 até 3.743,19 22,5 505,62

Acima de 3.743,19 27,5

Exemplo de Cálculo:

Se uma pessoa ganha 3500,00 por mês, com base na tabela acima, deve-se aplicar a alíquota

(taxa) de 22,5% de imposto de renda e deduzir o valor de 505.62.

Assim 3500 x 22.5 /100 = 785,50. Deduzindo-se os 505,62 o valor do imposto mensal será de

281.88.

Para verificar se o seu programa está correto, efetue os dois testes que seguem:

TESTE 1:

Entrada: salário mensal = 3500.00

Saída Esperada: IR Mensal = 281.88 IR Anual = 3382.56

TESTE 2:

Entrada: salário mensal = 4000.00

Saída Esperada: IR Mensal = 1100.00 IR Anual = 13200.00

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem contendo valor do imposto de renda mensal e anual

ENTRADA: Quais os insumos necessários para se obter a saída?

Variável real representando o salário mensal

PROCESSAMENTO: Como transformar os insumos na saída?

Basta identificar a que faixa corresponde o salário mensal com a tabela do IR.

Page 13: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

real salario, imposto

//ENTRADA

escreva("Digite o valor do salario: ")

leia(salario)

//PROCESSAMENTO E SAÍDA

se(salario<=1499.15){

imposto=0.00

}senao se(salario <= 2246.75){

imposto = (salario * 0.075 - 112.43)

}senao se(salario <= 2995.70){

imposto = (salario * 0.15 - 280.94)

}senao se(salario <= 3743.19){

imposto = (salario * 0.225 - 505.62)

}senao{

imposto = salario * 0.275

}

escreva("O valor do imposto de renda mensal será de R$ ", imposto, ".\n")

escreva("O valor do imposto de renda anual será de R$ ", 12 * imposto, ".\n")

}

}

Page 14: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

12. Escreva um programa que exiba uma mensagem indicando se um número inteiro

informado pelo usuário é positivo, negativo ou nulo, de acordo com as seguintes condições:

Caso seja maior que zero, exibir: Número ―tal‖ é positivo‖;

Caso seja menor que zero, exibir: Número ―tal‖ é negativo‖;

Caso seja igual a zero, exibir: Número ―tal‖ é nulo‖.

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Mensagem dizendo se o número informado é positivo, negativo ou nulo

ENTRADA: Quais os insumos necessários para se obter a saída?

Um número inteiro

PROCESSAMENTO: Como transformar os insumos na saída?

Número positivo: x > 0

Número negativo: x < 0

Número nulo: x = 0

PROGRAMA - PORTUGOL

programa

{

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

inteiro x

real a, b

//ENTRADA

escreva ("Favor digitar um número inteiro: ")

leia (x)

//PROCESSAMENTO E SAÍDA

se (x > 0)

escreva ("\nO número " + x + " é positivo.")

senao se (x < 0)

escreva ("\nO número " + x + " é negativo.")

senao

escreva ("\nO número " + x + " é nulo.")

}

}

Page 15: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

13. Escreva um algoritmo que peça como entrada o peso (em kilogramas) e a altura (em

metros) da pessoa e calcule e exiba o seu IMC – Índice de Massa Corpórea.

Adicionalmente, o programa deve emitir as mensagens correspondentes conforme a tabela

a seguir:

Cálculo IMC Situação Abaixo de 18.5 Você está abaixo do peso ideal

Entre 18.5 e 24.9 Parabéns — você está em seu peso normal!

Entre 25.0 e 29.9 Você está acima de seu peso (sobrepeso)

Entre 30.0 e 34.9 Obesidade grau I

Entre 35.0 e 39.9 Obesidade grau II

40.0 e acima Obesidade grau III

O IMC é calculado da seguinte forma: divide-se o peso (quilogramas) pela altura ao quadrado

(em metros).

Exemplo1: peso = 65, altura = 1.67 IMC = 65 / (1.67 * 1.67) = 23.30

Exemplo2: peso = 85, altura = 1.60 IMC = 85 / (1.60 * 1.60) = 33.20

OBS. É OBRIGATÓRIO O USO DE SELEÇÃO ENCADEADA.

Para verificar se o seu programa está correto, efetue os dois testes que seguem:

TESTE 1:

Entrada: peso=65 altura = 1.67

Saída Esperada: IMC = 23.31 - Parabéns — você está em seu peso normal!

TESTE 2:

Entrada: peso=85 altura = 1.60

Saída Esperada: IMC = 33.20 - Obesidade grau I

SAÍDA: Quais os resultados que o algoritmo dever fornecer ?

Um mensagem contendo o IMC e a situação correspondente ao valor

ENTRADA: Quais os insumos necessários para se obter a saída?

Duas variáveis reais: peso e altura

PROCESSAMENTO: Como transformar os insumos na saída?

Basta utilizar a expressão presente nos exemplos 1 e 2 acima. Depois, é necessário

comparar o valor de IMC obtido com cada caso das condições da tabela Cálculo IMC x

Situação. Ao fim, é feita a impressão do IMC acompanhado à situação.

Page 16: Bacharelado em Ciência e Tecnologia · 2. Escreva um programa que solicite ao usuário um valor inteiro e exibe uma mensagem ... Mensagem informando qual o maior número digitado

PROGRAMA - PORTUGOL

programa

{

inclua biblioteca Matematica --> mat

funcao inicio()

{

//DECLARAÇÃO DE VARIÁVEIS

real peso, altura, IMC

//ENTRADA

escreva("Entre com o peso em kilogramas: ")

leia(peso)

escreva("Entre com a altura em metros: ")

leia(altura)

//PROCESSAMENTO E SAÍDA

IMC = (peso)/((altura) * (altura))

escreva(mat.arredondar(IMC, 2))

se(IMC<18.5){

escreva(" - Voce esta abaixo do peso ideal.\n")

}senao se(IMC < 25.0){

escreva(" - Parabens - voce esta em seu peso normal!\n")

}senao se(IMC < 30.0){

escreva(" - Voce esta acima de seu peso (sobrepeso).\n")

}senao se(IMC < 35.0){

escreva(" - Obesidade grau I.\n")

}senao se(IMC < 40.0){

escreva(" - Obesidade grau II.\n")

}senao{

escreva(" - Obesidade grau III.\n")

}

}

}