Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos (LISTA DE EXERCÍCIOS UNIDADE 01) Prof. Jorge Cavalcanti [email protected] www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav 1 Exercícios 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 inicio // Seção de Comandos escreva(" Informe o valor do salário: ") leia(salario) // definicao da alíquota se (salario >= 3000) entao aliquota <- "c" senao se (salario < 1500) entao aliquota <- "a" senao aliquota <- "b" fimse fimse 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) fimalgoritmo 2 Exercícios 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) inicio // Seção de Comandos Escreva ("Digite um número inteiro: ") leia(N) Se (N = 0)entao escreva ("Fatorial de ", N, " = 1") senao F <-1 para c de 1 ate n faca F <- F*C fimpara escreva ("Fatorial de ", N, " = ", F) Fimse Fimalgoritmo 3 Exercícios 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 inicio // Seção de Comandos cont <- 1 enquanto (cont <=10) faca escreval (cont, " x 5 = " , cont*5) cont <- cont +1 fimenquanto fimalgoritmo algoritmo "Tabuada do 5 usando repita" // Seção de Declarações var cont: inteiro inicio // Seção de Comandos cont <- 1 repita escreval (cont, " x 5 = " , cont*5) cont <- cont +1 ate (cont>10) fimalgoritmo algoritmo "Tabuada do 5 usando para“ var cont: inteiro Inicio para cont de 1 ate 10 faca escreval (cont, " x 5 = " , cont*5) fimpara fimalgoritmo 4 Exercícios 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 5 Condição Abaixo de 18,5 Abaixo do peso Entre 18,5 e 25 Peso normal Entre 25 e 30 Acima do peso Acima de 30 Obeso Exercícios algoritmo "IMC" var p, h, imc: real inicio // Seção de Comandos 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") senao se (imc>=18.5) e (imc<25) entao escreva ("IMC=", imc," - Condição: peso normal") senao se (imc>=25) e (imc<30) entao escreva ("IMC=", imc," - Condição: acima do peso") senao escreva("obeso") fimse fimse fimse fimalgoritmo Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 6 Exercícios 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 Exercícios algoritmo "media numeros pares" var n, cont, acum: inteiro media: real inicio // Seção de Comandos 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 fimse fimenquanto se (cont > 0) entao //verifica se houve pelo menos um nº par media <-acum/cont escreva ("Média=", media) senao escreva ("Nenhum par foi fornecido!") fimse fimalgoritmo Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 8 Exercícios 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. 9 Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf Exercícios algoritmo "converte segundos“ var seg: inteiro procedimento converta (segundos: inteiro) var h, m, s, r: inteiro inicio 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 inicio // Seção de Comandos escreva ("Digite a quantidade de segundos: ") leia (seg) converta(seg) fimalgoritmo Introdução a Algoritmos - Prof. Jorge Cavalcanti - Univasf 10 Exercícios 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 inicio first <- (first+sec)\2 num <- num - first+1 retorne (first) fimfuncao inicio 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) fimalgoritmo 11