Universidade Federal da Paraíba
Departamento de Sistemas e Computação
Disciplina: Introdução à Programação (para o curso de Engenharia Elétrica)
Professores: Lívia M. R. Sampaio (Turma02) e Roberto Faria (Turma01)
1a
Lista de Exercícios
Algoritmos
1. Considere que uma calculadora comum, com quatro operações, está com as teclas de divisão e multiplicação inoperantes. Escreva algoritmos que resolvam as expressões matemáticas a seguir usando apenas as operações de soma e subtração.
a. 12 x 4
b. 10 ¸ 2
c. 28
2. Dado o algoritmo a seguir, responda:
início
lógico: A, B, C;
se A
então comando1;
senão
início
se B
então
se C
então comando2;
senão
início
comando3;
comando4;
fim
fim-se
fim-se
comando5;
fim
fim-se
comando6;
fim
a) Se A = verdade, B = verdade e C= falso, quais comandos serão executados?
b) Se A = falso, B = verdade e C = falso, quais comandos serão executados?
c) Quais os valores de A, B e C para que somente o comando 5 seja executado?
d) Quais os valores de A, B e C para que somente o comando 6 seja executado?
3. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas:
a. para homens: (72.7*altura) – 58;
b. para mulheres: (62.1*altura) – 44.7.
4. Faça um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre sua idade e, também, verifique e mostre se ela já tem idade para votar (16 anos ou mais) e para conseguir a carteira de habilitação (18 anos ou mais).
5. Escreva um algoritmo que leia o código de um determinado produto e mostre a sua classificação. Utilize a seguinte tabela como referência:
Código |
Classificação |
1 |
Alimento não-perecível |
2, 3 ou 4 |
Alimento perecível |
5 ou 6 |
Vestuário |
7 |
Higiene pessoal |
8 até 15 |
Limpeza e utensílios domésticos |
Qualquer outro código |
Inválido |
6. Elabore um algoritmo que calcule N!, sendo que o valor inteiro de N é fornecido pelo usuário.
Lembrete:
N! = 1 * 2 * 3 * ... * (N-1) * N;
0! = 1, por definição
7. Sendo H = 1 +1/2 +1/3 + 1/4 + ... + 1/N, elabore um algoritmo para gerar o número H. O número N é fornecido pelo usuário.
8. Escreva um algoritmo que leia um conjunto de 20 números inteiros (positivos) e mostre qual foi o maior e o menor valor fornecido.
9. Construa um algoritmo que, dado um conjunto de valores inteiros e positivos, determine qual o menor e o maior valor do conjunto. O processamento será finalizado quando o usuário fornecer o valor –1 como entrada para o conjunto de valores em questão. O valor –1 não será considerado para do conjunto.
10. Em uma eleição presidencial, existem quatro candidatos. Os votos são informados através de código. Os dados utilizados para a escrutinagem obedecem à seguinte codificação:
· 1, 2, 3 e 4 = voto para os respectivos candidatos;
· 5 = voto nulo;
· 6 = voto em branco.
Elabore um algoritmo que calcule e escreva:
· total de votos para cada candidato;
· total de votos nulos;
· total de votos em branco;
· percentual dos votos em branco e nulos sobre o total
Como finalizador do conjunto de votos, tem-se o valor 0.
11. Escreva um algoritmo que imprima todos os números primos existentes entre N1 e N2, onde N1 e N2 são números naturais fornecidos pelo usuário.
12. Anacleto tem 1,5 metro e cresce 2 centímetros por ano, enquanto Felisberto tem 1,1 metro e cresce 3 centímetros por ano. Construa um algoritmo que imprima quantos anos serão necessários para que Felisberto seja maior que Anacleto.
13. Você pretende comprar um carro a prazo cujo valor original é R$18.500,00. O vendedor aceita que você dê uma entrada de R$ 3.500,00 e que você pague o restante em 36 parcelas mensais, a um juro de 2,5% ao mês. Escreva um algoritmo que calcule e imprima o valor de cada parcela, além da diferença entre o preço original e o valor que será pago pelo carro.
14. Generalize o algoritmo da questão anterior a fim de que possamos aplicá-lo para qualquer preço, valor de entrada, taxa de juros e número de prestações.
Programas
em C
Implemente os algoritmos das questões 3, 4, 5, 13 e 14.
Observações:
1. Entregar os programas desta lista via e-mail anexado num único arquivo zipado sob o nome Lista01.zip. O e-mail deve ser destinado à intprog@dsc.ufpb.br, colocando no subject: <nome_completo>/turmaxx/lista01.
2. Os nomes de programas devem ser formados da seguinte maneira: L1Progxx.c
3. Cada programa deve conter um cabeçalho com o seguinte formato:
/*
UFPB/CCT/DSC/IntProg – 2001.1
Curso de Engenharia Elétrica
Nome:
Matricula:
Turma:
Lista01 / Questaoxx
Objetivo do programa:
*/
4. Data de entrega: 06/08/01