Buscar

Algoritmo e programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Algoritmos e Programação
3.11 Identifique e corrija os erros em cada um dos itens seguintes (Nota: pode haver mais de um erro em cada conjunto de linhas de código): 
a) if (idade >= 65); 
printf("Idade e maior que ou igual a 65\n"); else 
printf("Idade e menor que 65\n"); 
if (idade >= 65) 
printf("Idade e maior que ou igual a 65\n"); else 
printf("Idade e menor que 65\n"); 
 
b) int x = 1, total; 
while (x <= 10) { total += x; + +x; 
} 
int x = 1, total = 0; 
while (x <= 10) {total += x; + +x; 
} 
 
c) While (x <= 100) 
total += x; 
+ +x; 
while (x <= 100) {total += x; + +x; 
} 
 
d) while (y > 0) { 
printf("%d\n", y); ++y; 
} 
while (y > 0) {printf("%d\n", y); --y; 
} 
 
 
3.13 O que o seguinte programa imprime? ttinclude <stdio.h> 
main() {int x = 1, total = 0, y; 
while (x <= 10) { y = x * x; printf("%d\n", y); total += y); ++x; 
} 
printf("O total e %d\n", total);  
return 0; 
} 
1 
4 
9 
16 
25 
36 
49 
64 
81 
100 
O total e 365 
 
 
3.15 Formule um algoritmo em pseudocódigo que faça o seguinte: 
 
a) Obtenha dois números a partir do teclado, calcule a soma dos números e exiba o resultado. 
  
Obter o primeiro número e o segundo número 
Definir a soma com o valor do primeiro número mais o segundo número 
Imprimir a soma 
 
b) Obtenha dois números a partir do teclado, determine o maior (se houver) e o exiba. 
 
Obter o primeiro número e o segundo número 
Se o primeiro número for maior que o segundo número 
                        Imprimir o primeiro número senão 
Se o segundo número for maior que o primeiro 
                       Imprimir o segundo número senão 
                       Imprimir “números iguais” 
 
c) Obtenha uma série de números positivos a partir do teclado, determine sua soma e a exiba. Admita que o usuário deve digitar o valor sentinela — 1 para indicar o "final da entrada de dados". 
 
Inicializar total com o valor zero 
Obter o primeiro número 
Enquanto o usuário não fornecer o valor sentinela de -1 
            Adicionar o número ao total. Obter o próximo número (possivelmente o valor sentinela) 
Definir a soma com o valor total 
Imprimir a soma 
 
 
3.16 Determine se cada uma das sentenças seguintes é verdadeira ou falsa. Se a sentença for falsa, explique por quê. 
 
a) A experiência demonstrou que a parte mais difícil de resolver um problema em computador é produzir um programa em C. 
Falsa. A experiência demonstrou que a parte mais difícil de resolver um problema em um computador é desenvolver o algoritmo para a solução. Normalmente, depois de o algoritmo correto ter sido especificado, o processo de produzir um programa funcional em C fica simples. 
 
b) O valor sentinela deve ser tal que não possa ser confundido com um valor válido de dados. 
Verdadeiro. 
 
c) As linhas de fluxo indicam as ações a serem realizadas. 
Falso. As linhas de fluxo indicam a ordem em que as ações devem ser executadas. 
 
d) As condições escritas no interior dos símbolos de decisão sempre contêm operadores 
aritméticos (i.e., +, -, *, / e %). 
Falso. O símbolo de decisão contém uma expressão que pode ser verdadeira ou falsa. 
 
e) No refinamento top-down em etapas, cada refinamento é uma representação completa do algoritmo.  
Verdadeiro. 
 
 
Para os Exercícios 3.17 a 3.21, realize cada um dos seguintes passos: 
1. Leia a definição do problema. 
2. Formule o algoritmo usando o pseudocódigo e o refinamento top-down em etapas. 
3. Escreva um programa em C. 
4. Teste, depure e execute o programa em C. 
 
3.17 Tendo em vista o alto preço da gasolina, os motoristas estão preocupados com a quilometragem percorrida por seus automóveis. Um motorista fez o controle recompletando várias vezes o tanque e registrando os quilômetros percorridos e os litros de gasolina necessários para encher o tanque. Desenvolva um programa em C que receba como dados a quilometragem dirigida e os litros usados para recompletar o tanque. O programa deve calcular e exibir a quilometragem por litro obtida para cada recompletamento. Depois de processar todas as informações, o programa deve calcular e exibir a média de quilômetros por litro obtida para todos os recompletamentos. 
 
Entre com os litros consumidos (-1 para finalizar): 12.8 
Entre com os km percorridos: 287 
A taxa km/litro para esse tanque foi 22.421875 
Entre com os litros consumidos (-1 para finalizar): 10.3 
Entre com os km percorridos: 200 
A taxa km/litro para esse tanque foi 19.417475 
Entre com os litros consumidos (-1 para finalizar): 5 
Entre com os km percorridos: 120 
A taxa km/litro para esse tanque foi 24.000000 
Entre com os litros consumidos (-1 para finalizar): -1 
A taxa total de km/litro foi 21.601423 
 
 
 
float litro, km, total=0; 
int contador=0; 
printf("Entre com os litros consumidos (-1 para finalizar):"); 
scanf("%f", &litro);  
if(litro<=0)printf("Nenhum valor foi fornecido\n"); else{ 
while(litro>0){printf("Entre com os km percorridos:"); scanf("%f", &km); 
printf("A taxa km/litro para esse tanque foi %f\n", km/litro); total+=km/litro; ++contador; 
printf("Entre com os litros consumidos (-1 para finalizar):"); 
scanf("%f", &litro); 
} 
printf("A taxa total de km/litro foi %f\n", total/contador); 
} 
 
 
3.18 Desenvolva um programa em C que determine se um cliente de uma loja de departamentos excedeu o limite de crédito de sua conta. Os seguintes dados de cada cliente estão disponíveis: 
1. Número da conta 
2. Saldo devedor no início do mês 
3. Total de itens cobrados do cliente no mês em questão 
4. Total de créditos aplicados à conta do cliente no mês cm questão. 
5. Limite de crédito permitido. 
O programa deve receber esses dados, calcular o novo saldo (= saldo devedor inicial + cobranças — créditos) e determinar se o novo saldo supera o limite de crédito do cliente. Para os clientes cujo limite de crédito foi excedido, o programa deve exibir o número da conta do cliente, o limite de crédito e a mensagem "Limite de Crédito Excedido". 
 
Entre com o número da conta (-1 para finalizar): 100 
Entre com o saldo inicial: 5394.78 
Entre com o total de cobranças: 1000.00 
Entre com o total de créditos: 500.00 
Entre com o limite de credito: 5500.00 
Conta: 100 
Limite de credito: 5500.00 
Saldo: 5894.78 
Limite de Credito Excedido. 
Entre com o número da conta (-1 para finalizar): 200 
Entre com o saldo inicial: 1000.00 
Entre com o total de cobranças: 123.45 
Entre com o total de créditos: 321.00 
Entre com o limite de credito: 1500.00 
Entre com o número da conta (-1 para finalizar): 300 
Entre com o saldo inicial: 500.00 
Entre com o total de cobranças: 274.73 
Entre com o total de créditos: 100.00 
Entre com o limite de credito: 800.00 
Entre com o número da conta (-1 para finalizar): -1 
 
 
 
float saldoinicial, cobrancas, creditos, limite; 
int conta; 
printf("Entre com o número da conta (-1 para finalizar):"); 
scanf("%d", &conta); 
while(conta!=-1){printf("Entre com o saldo inicial:"); 
scanf("%f", &saldoinicial); 
printf("Entre com o total de cobranças:"); 
scanf("%f", &cobrancas); 
printf("Entre com o total de créditos:"); 
scanf("%f", &creditos); 
printf("Entre com o limite de crédito:"); 
scanf("%f", &limite); 
printf("Conta: %d\n", conta); 
printf("Limite de crédito: %.2f\n", limite); 
printf("Saldo: %.2f\n", saldoinicial+cobrancas-creditos); 
if((saldoinicial+cobrancas-creditos)>limite)printf("Limite de Crédito Excedido\n"); 
printf("Entre com o número da conta (-1 para finalizar):"); 
scanf("%d", &conta); 
} 
 
 
3.19 Uma grande companhia química paga seus vendedores por comissão. Os vendedores recebem $200 por semana mais 9 por cento de suas vendas brutas naquela semana. Por exemplo, um vendedor que vender o equivalente a $5000 em produtos químicos em uma semana recebe $200 mais 9 por cento de $5000, ou um total de $650. Desenvolva um programa em C que receba as vendas brutas de cada vendedor na última semana, calcule seu salário e oexiba. Processe os dados de um vendedor de cada vez. 
 
Entre com a venda em dólares (-1 para finalizar): 5000.00 
Salário: $650.00 
Entre com a venda em dólares (-1 para finalizar): 1234.56 
Salário: $311.11 
Entre com a venda em dólares (-1 para finalizar): 1088.89 
Salário: $298.00 
Entre com a venda em dólares (-1 para finalizar): -1 
 
 
float venda; 
printf("Entre com a venda em dólares (-1 para finalizar):"); 
scanf("%f", &venda); 
while(venda!=-1){printf("Salário: $%.2f\n", 0.09*venda+200); 
printf("Entre com a venda em dólares (-1 para finalizar):"); 
scanf("%f", &venda); 
} 
 
 
3.23 Escreva um programa em C que utilize um loop para imprimir os números de 1 a 10, lado a lado na mesma linha e com 3 espaços entre eles. 
 
 
int x=1; 
while(x<=10){printf("%d   ",x); ++x; 
} 
 
 
3.35 Um palíndromo é um número ou texto que é lido da mesma forma tanto da direita para a esquerda como da esquerda para a direita. Por exemplo, cada um dos inteiros seguintes, de cinco dígitos, é palíndromo: 12321,55555,45554 e 11611. Escreva um programa que leia um inteiro de cinco dígitos e determine se ele é palíndromo ou não. (Sugestão: Use os operadores divisão e resto, ou modulus, para separar o número em seus algarismos isolados.) 
 
int n, a1, a2, a4, a5; 
printf("Entre com um número de 5 dígitos:"); 
scanf("%d", &n); 
if(n<10000||n>99999)printf("Número não tem 5 dígitos\n"); else{ 
a1=n/10000; 
a2=(n%10000)/1000; 
a4=(((n%10000)%1000)%100)/10; 
a5=(((n%10000)%1000)%100)%10; 
if(a1==a5&&a2==a4)printf("O número %d é palíndromo\n", n); 
else printf("O número %d Não é palíndromo\n", n); 
}

Outros materiais