A Lista de Exercícios
Por: Hekton Santos • 15/6/2019 • Monografia • 7.233 Palavras (29 Páginas) • 496 Visualizações
[pic 1] |
TMI11-Algoritmos e Programação Prof. Vitor Bremgartner da Frota |
Lista de Exercícios 02: Estruturas Condicionais
Todos os algoritmos devem ser elaborados em forma de fluxograma, Portugol ou C
- Um caixa eletrônico dispõe apenas de cédulas de R$50 e R$2 para saques. Elabore um algoritmo que calcule quantas cédulas de cada tipo devem ser fornecidas para satisfazer um valor de saque informado. Seu algoritmo deve validar o valor solicitado. Por exemplo, saques nos valores de R$5 ou de R$53 não devem ser permitidos.
#include
int main(void)
{
int valor, c50=50, quantidadeNotas50=0, c2=2, quantidadeNotas2=0, vAcomulado=0;
printf("\nValor do saque: ");
scanf("%d", &valor);
while (valor >= (vAcomulado + c50))
{
//printf("_______Adicionando %d valor: %d; vAcomulado: ; %d\n\n", c50, valor, vAcomulado);
vAcomulado += c50;
quantidadeNotas50++;
}
while (valor >= (vAcomulado + c2))
{
//printf("_______Adicionando %d valor: %d; vAcomulado: ; %d\n\n", c2, valor, vAcomulado);
vAcomulado += c2;
quantidadeNotas2++;
}
if(((quantidadeNotas50 * c50) + (quantidadeNotas2 * c2)) == valor)
{
printf("\nSão necessárias %d cédulas de %d e %d cédulas de %d para realizar a operação\n\n", quantidadeNotas50, c50, quantidadeNotas2, c2, valor);
} else
{
printf("\nImposível realizar saque neste valor\n\n");
}
return 0;
}
- Repita o problema anterior, mas desta vez considere que a quantidade de cédulas é finita. Ou seja, se a quantidade de cédulas de R$50 ou de R$2 a serem fornecidas para um saque for maior que a quantidade delas existente em estoque (Q1 e Q2, respectivamente, informadas antes pelo usuário), então uma mensagem de erro deve ser exibida.
- Desafio (não-obrigatório): Considere agora que o caixa eletrônico dispõe apenas de cédulas de R$50 e de R$20. Se você aplicar o algoritmo visto em sala de aula, verá que ele não funciona, por exemplo, para saques de R$110, apesar de serem possíveis (uma cédula de R$50 e três de R$20). Modifique tal algoritmo.
- Indique o que será impresso pelo fluxograma a seguir.
[pic 2]
- Faça um algoritmo para indicar se um ponto P(X,Y) do plano cartesiano pertence à reta 2x + y = 3. Explicite as variáveis de entrada e de saída, em termos de grandeza, unidade de medida e faixa de valores.
- Escreva um algoritmo que leia um número e verifique se ele tem ou não tem quatro dígitos. Dica: utilize operadores relacionais.
- O número 3025 possui a seguinte característica:
3025 = (30 + 25)²
Faça um algoritmo que imprima uma mensagem dizendo se um número fornecido pelo usuário satisfaz ou não essa característica. Considere que sempre um número de quatro dígitos será fornecido. Dica: utilize o operador de resto da divisão (%).
- Escreva um algoritmo para calcular a área de um triângulo retângulo, a partir das medidas dos três lados, fornecidas pelo usuário, em qualquer ordem. O algoritmo não pode permitir a entrada de dados inválidos, ou seja, medidas menores ou iguais a zero, ou medidas que não correspondam a um triângulo retângulo.
- Faça um algoritmo que leia dois números inteiros e verifique se um é divisor do outro.
- Faça um algoritmo que dados três números, diga qual o central.
- Reescreva o seguinte fluxograma usando apenas uma única condição.
[pic 3]
| [pic 4] |
Exercícios
2.7 Identifique e corrija os erros em cada uma das instruções a seguir (Nota: pode haver mais de um erro por instrução):
a) scanf("d", valor); R: scanf("%d",valor);
b) printf("O produto de %d e %â e %d"\n, x, y) ; R: printf ("O produto de %d e %d \n", x, y);
c) primeiroNumero + segundoNumero = somaDosNumeros
R: primeiroNumero + segundoNumero = somaDosNumeros;
d) if (numero => maior) maior == numero;
R: if (numero => maior) { maior = numero;}
e) */ Programa para determinar o maior de tres inteiros /*
R: /* Programa para determinar o maior de tres inteiros */
f) Scanf ("%á", umlnteiro) ;
R: Scanf ("%d", umlnteiro) ;
g) printf("0 resto de %d dividido por %â e\n", x, y, x % y);
R: printf("0 resto de %d dividido por %â e\n", x, y, x % y);
h) if (x = y); printf(%d e igual a %d\n", x, y);
i) print("A soma e %d\n, " x + y) ;
j) Printf("O valor fornecido e: %d\n, &valor);
2.12 O que é impresso quando cada uma das instruções seguintes da linguagem C é executada? Se nada for impresso, responda "nada". Admita x = 2ey = 3.
a) printf("%d", x); R: Um valor double.
b) printf("%d", x + x); R: nada
c) printf ("x=") ; R: x=
d) printf("x=%d", x) ; R: x= um valor double.
e) printf("%ã - %â", x + y, y + x); nada
f) z = x + y; R: z recebe a soma de x+y.
g) scanf("%ã%ã", &x, &y); R: nada
h) /* printf("x + y = %ã", x + y); */ R: esta linha é um comentário.
...