Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav (LISTA DE EXERCÍCIOS UNIDADE 01) 1
Escreva um programa que calcula o valor do imposto de renda de uma pessoa física, com as seguintes condições: se o salário >= 3.000, alíquota será 15%. Se 3.000>salário>=1500, alíquota será 7%. Se salário < 1500, isento. algoritmo "Imposto de Renda" // Seção de Declarações var salario, imposto: real aliquota: caractere escreva(" Informe o valor do salário: ") leia(salario) // definicao da alíquota se (salario >= 3000) entao aliquota <- "c" se (salario < 1500) entao aliquota <- "a" aliquota <- "b" escolha aliquota caso "a" imposto <- 0 caso "b" imposto <- salario * 0.07 caso "c" imposto <- salario * 0.15 fimescolha escreval(" Valor do imposto de renda:",imposto) 2
Escreva um algoritmo que calcule N!, sendo que N é um inteiro fornecido pelo usuário e que 0! =1, por definição. algoritmo "Fatorial de N" // Seção de Declarações var N, F, C: inteiro // entrada, fatorial e controle) Escreva ("Digite um número inteiro: ") leia(n) Se (N = 0)entao escreva ("Fatorial de ", N, " = 1") F <-1 para c de 1 ate n faca F <- F*C fimpara escreva ("Fatorial de ", N, " = ", F) Fimse Fimalgoritmo 3
Elabore um algoritmo para cada estrutura de repetição (enquanto, repita e para) imprimir a tabuada do número 5. algoritmo "Tabuada do 5 usando enquanto" // Seção de Declarações var cont: inteiro cont <- 1 enquanto (cont <=10) faca escreval (cont, " x 5 = ", cont*5) cont <- cont +1 fimenquanto algoritmo "Tabuada do 5 usando repita" // Seção de Declarações var cont: inteiro cont <- 1 repita escreval (cont, " x 5 = ", cont*5) cont <- cont +1 ate (cont>10) algoritmo "Tabuada do 5 usando para var cont: inteiro Inicio para cont de 1 ate 10 faca escreval (cont, " x 5 = ", cont*5) fimpara 4
O IMC Índice de Massa Corporal é um critério da OMS para dar a indicação sobre a condição de peso de uma pessoa adulta. A fórmula é IMC=peso/(altura) 2. Elabore um algoritmo que leia o peso e a altura de um adulto e mostre sua condição, conforme tabela abaixo: IMC em adultos Abaixo de 18,5 Entre 18,5 e 25 Entre 25 e 30 Acima de 30 Condição Abaixo do peso Peso normal Acima do peso Obeso 5
algoritmo "IMC" var p, h, imc: real escreva ("digite o peso: ") leia (p) escreva ("digite a altura: ") leia (h) imc <- p/(h^2) se (imc<18.5) entao escreva ("IMC=", imc," -Condição: abaixo do peso") se (imc>=18.5) e (imc<25) entao escreva ("IMC=", imc," - Condição: peso normal") se (imc>=25) e (imc<30) entao escreva ("IMC=", imc," - Condição: acima do peso") escreva("obeso") Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 6
Construa um algoritmo que calcule a média aritmética de um conjunto de números pares fornecidos pelo usuário. O valor da finalização será a entrada do número 0. Nada impede que o usuário forneça números ímpares, só que nesse caso eles não serão considerados. 7
algoritmo "media numeros pares" var n, cont, acum: inteiro media: real cont <-0 acum <-0 n <-1 enquanto (n>0) faca // teste de parada escreva ("Digite um numero inteiro: ") leia (n) se (n>0) e ((n%2)=0) entao// testa se é par acum <- acum + n // acumula os pares cont <-cont +1 //conta os pares fimenquanto se (cont > 0) entao //verifica se houve pelo menos um nº par media <-acum/cont escreva ("Média=", media) escreva ("Nenhum par foi fornecido!") Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 8
Escreva um algoritmo que receba um único valor representando segundos. Em seguida chame um procedimento que converta a entrada em horas, minutos e segundos e escreva na saída esses valores. Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 9
algoritmo "converte segundos var seg: inteiro procedimento converta (segundos: inteiro) var h, m, s, r: inteiro h <- segundos\3600 // observar o operador quociente div inteira. r <- segundos%3600 m <-r\60 s <- r%60 escreva (segundos, "segundos equivalem a:", h, "h ", m,"min ", s, "seg.") fimprocedimento escreva ("Digite a quantidade de segundos: ") leia (seg) converta(seg) Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 10
Analise o seguinte algoritmo e indique o que será impresso na saída padrão. algoritmo "exercício variável global" var num, first, sec: inteiro funcao func(first:inteiro; sec:inteiro):inteiro first <- (first+sec)\2 num <- num - first+1 retorne (first) fimfuncao first <- 0 sec <- 50 num <- 10 escreval ("num antes = ", num) escreval ("first antes = ", first) escreval ("sec antes = ", sec) num <- num + func(first, sec) escreval ("num depois = ", num) escreval ("first depois = ", first) escreval ("sec depois = ", sec) 11