Exercícios de depuração com laços
Baseado no que foi visto sobre depuração de códigos em C, descubra os possíveis erros lógicos nos códigos apresentados abaixo e os conserte.
Exercício 01
Link no Github para exemplo: exercicio_depuracaoLaco01.c
Exercício 02
Link no Github para exemplo: exercicio_depuracaoLaco02.c
Exercícios Extra-Classe
Treinamento em Código 1
Treinamento em Código 2
Treinamento em Código 3
Treinamento em Código 4
Treinamento em Código 5
Treinamento em Código 6
Treinamento em Código 7
Treinamento em Código 8
Treinamento em Código 9
Treinamento em Código 10
Traduza os seguintes algoritmos para a linguagem C
1 – Apresentar os quadrados dos números inteiros de 15 a 200, com o a estrutura de repetição enquanto:
Início
/* declaração de variáveis */
Inteiro CONT, QUADRADO;
/* processamento e Saída de Dados */ CONT = 15;
Enquanto (CONT <= 200) faça
{
QUADRADO = CONT * CONT;
Escreva ("O quadrado de ", CONT," é :", QUADRADO);
CONT = CONT + 1;
};
Fim.
2 – Apresentar os resultados de uma tabuada de um número qualquer, a qual deverá ser impressa no seguinte formato: Considerando como exemplo o fornecimento do número 2.
2 X 1 = 2
2 X 2 = 4
2 X 3 = 6
(…)
2 X 10 = 20
Início
/* declaração de variáveis */
Inteiro CONT, N, RESULTADO;
/* Entrada de Dados */
Leia ("Entre com um número inteiro positivo qualquer: ", N);
/* processamento e Saída de Dados */ CONT = 1;
Enquanto (CONT <= 10) faça
{
RESULTADO = N * CONT;
Escreva (N, " X ", CONT, " = ", RESULTADO);
CONT = CONT + 1;
};
Fim.
3 – Apresentar o total da soma obtida dos cem primeiros números inteiros (1+2+3+5+…+99+100).
Início
/* declaração de variáveis */
Inteiro CONT, RESULTADO;
/* processamento */
CONT = 1;
RESULTADO = 0;
Enquanto (CONT <= 100) faça
{
RESULTADO = RESULTADO + CONT;
CONT = CONT + 1;
};
/* Saída de Dados */
Escreva ("A soma dos 100 primeiros números inteiros é: ", RESULTADO);
Fim.
4 – Elaborar um programa que apresente no final o somatório dos valores pares existentes na faixa de 1 até 500.
Início
/* declaração de variáveis */
Inteiro CONT, RESULTADO;
/* processamento */ CONT = 2;
RESULTADO = 0;
Enquanto (CONT <= 500) faça
{
RESULTADO = RESULTADO + CONT;
CONT = CONT + 2;
};
/* Saída de Dados */
Escreva ("A soma dos valores pares de 1 a 500 é: ", RESULTADO);
Fim.
5 – Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. Para verificar se o número é impar, efetuar dentro da malha a verificação lógica desta condição com a instrução SE, perguntando se o número é impar; sendo, mostre-o; não sendo; passe para o próximo passo.
6 – Elaborar um programa que apresente os valores de conversão de graus Celsius em Fahrenheit, de 10 em 10 graus, iniciando a contagem em 10 graus Celsius e finalizando em 100 graus Celsius. O programa deve apresentar os valores das duas temperaturas.
7 – Elaborar um programa que efetue a leitura de 15 valores numéricos inteiros e no final apresente o total do somatório do fatorial de cada valor lido.
Início
/* declaração de variáveis */
Inteiro CONT, CONT_FATORIAL, N, RESULTADO, FATORIAL;
/* processamento e Entrada de Dados */
CONT = 1;
RESULTADO = 0;
Enquanto (CONT <= 15) faça
{
/* Entrada de Dados */
Escreva ("Entre com um número inteiro qualquer:");
Leia (N);
/*Processamento*/
CONT_FATORIAL = 1;
FATORIAL = 1;
Enquanto (CONT_FATORIAL <= N) faça
{
FATORIAL = FATORIAL * CONT_FATORIAL;
CONT_FATORIAL = CONT_FATORIAL + 1;
};
RESULTADO = RESULTADO + FATORIAL; CONT = CONT + 1;
};
/* Saída de Dados */
Escreva ("A soma dos fatoriais dos valores fornecidos é: ", RESULTADO);
Fim.
8 – Elaborar um programa que efetue a leitura de 10 valores numéricos e apresente no final o total do somatório e a média dos valores lidos.
Início
/* declaração de variáveis */
Inteiro CONT;
Real N, RESULTADO, MEDIA;
/* processamento e Entrada de Dados*/ CONT = 1;
RESULTADO = 0;
Enquanto ( CONT <= 10 ) faça {
Escreva (“Entre com um número qualquer: ”); Leia (N);
RESULTADO = RESULTADO +N;
CONT = CONT + 1;
};
MEDIA = RESULTADO / (CONT –1 );
/* Saída de Dados */
Escreva ("A soma dos valores fornecidos é: ", RESULTADO);
Escreva ("A média dos valores fornecidos é: ", MEDIA);
Fim.
9 – Elaborar um programa que efetue a leitura sucessiva de valores numéricos e apresente no final o total do somatório, a média e o total de valores lidos. O programa deverá fazer as leituras dos valores enquanto o usuário estiver fornecendo valores positivos. Ou seja, o programa deverá parar quando o usuário fornecer um valor negativo (menor que zero).
Início
/* declaração de variáveis */
inteiro CONT;
real N, RESULTADO, MEDIA;
/* processamento e Entrada de Dados*/
CONT = 0;
RESULTADO = 0;
N = 0;
Enquanto ( N >= 0 ) faça
{
/* Entrada de dados */
Escreva ("Entre um número qualquer.")
Escreva ("Desejando parar, digite um número negativo");
Leia (N);
Se (N >= 0) então
{
RESULTADO = RESULTADO + N; CONT = CONT + 1;
};
};
/* Saída de Dados */
Se (CONT > 0) então
{
MEDIA = RESULTADO / CONT;
Escreva ("Foram lidos: ", CONT, " números positivos");
Escreva ("A soma dos valores fornecidos é: ", RESULTADO);
Escreva ("A média dos valores fornecidos é: ", MEDIA);
};
Fim.
10 – Elaborar um programa que apresente como resultado o valor do fatorial dos valores ímpares situados na faixa numérica de 1 a 10.
Início
/* declaração de variáveis */
inteiro CONT, CONT_FATORIAL, FATORIAL;
/* processamento */ CONT = 1;
Enquanto (CONT <= 10 ) faça
{
CONT_FATORIAL = 1;
FATORIAL = 1;
Enquanto (CONT_FATORIAL <= CONT) faça
{
FATORIAL = FATORIAL * CONT_FATORIAL;
CONT_FATORIAL = CONT_FATORIAL + 1;
};
/* Saída de Dados */
Escreva ("O fatorial de ", CONT, " é: ", FATORIAL);
CONT = CONT + 2;
};
Fim.
11 – Elaborar um programa que possibilite calcular a área total de uma residência (sala, cozinha, banheiro, quartos, área de serviço, garagem, etc). O programa deve solicitar a entrada do nome, a largura e o comprimento de um determinado cômodo. Em seguida, deve apresentar a área do cômodo lido e também uma mensagem solicitando do usuário a confirmação de continuar calculando novos cômodos. Caso o usuário responda “NÃO”, o programa deve apresentar o valor total acumulado da área residencial.
12 – Elaborar um programa que efetue a leitura de valores positivos inteiros até que um valor negativo seja informado. Ao final deverão ser apresentados o maior e o menor valores informados pelo usuário.
Início
/* declaração de variáveis */
Inteiro N, MAIOR, MENOR;
/* Entrada de Dados */
Escreva ("Entre com um número qualquer e, desejando parar,
digite um número negativo”);
Leia (N);
/* processamento e Entrada de Dados */
MAIOR = N;
MENOR = N;
Enquanto ( N >= 0 ) faça
{
Escreva ("Entre com um número qualquer e, desejando parar,
digite um número negativo");
Leia (N);
Se (N >= 0) então
{
Se (N > MAIOR) então
{
MAIOR = N;
};
Se (N < MENOR) então { MENOR = N; }; }; }; /* Saída de Dados */ Se (MAIOR >= 0) então
{
Escreva ("O maior número fornecido foi: ", MAIOR);
Escreva ("O menor número fornecido foi: ", MENOR);
}
Senão
{
Escreva ("Nenhum número foi informado");
};
Fim.
Outros exercícios – Fornecidos pelo Prof. Peter
1. Implementar três programas para exibir a tabuada de um número inteiro entre 1 e 20 dado pelo usuário.
o usando enquanto (while)
o usando faça-enquanto (do-while)
o usando para (for)
Caso o valor dado seja inválido o programa deve apenas exibir uma mensagem de aviso.
2. Faça um programa que calcule a soma de N números quaisquer fornecidos pelo usuário. O valor de N deve ser também dado pelo usuário (sugere-se que N seja o primeiro valor fornecido).
3. Escreva um programa que calcule a soma de N números quaisquer fornecidos pelo usuário. O programa deve parar de ler (e portanto somar) valores quando for introduzido o número 0 (zero).
4. Calcule a média de Nnotas dos alunos de uma sala. O programa deve parar de ler valores quando for
fornecido um valor negativo como nota.
5. Faça um programa que exiba a tabela verdade da operação E-Lógico para todas as combinações de três variáveis lógicas A, B e C. Os resultados da tabela devem ser exibidos como F ou V.
6. Faça um programa que exiba a tabela verdade da operação OU-Lógico para todas as combinações de três variáveis lógicas A, B e C. Os resultados da tabela devem ser exibidos como F ou V.
7. Uma pesquisa sobre o sabor de um novo refrigerante foi feita com várias pessoas. As mesmas preenchiam uma tabela com ‘O’ de ótimo, ‘B’ de bom, ‘R’ de regular e ‘U’ de ruim. Faça um programa que leias as respostas coletadas pela pesquisa (as letras ‘O’, ‘B’, ‘R’ e ‘U’) sendo que o fim das respostas será indicado por um traço ‘-‘. Outras letras devem ser desconsideradas. O programa deve também:
• indicar a quantidade de cada resposta,
• indicar o total de respostas,
• calcular a porcentagem de cada uma das respostas, e
• indicar se a soma de respostas ‘O’ e ‘B’ é maior ou não que a soma de respostas ‘R’ e ‘U’.
• Faça um programa que, dada uma seqüência qualquer de notas de alunos variando de 0 a 10 escreva, ao final da digitação, a maior e a menor das notas. O final será identificado pela introdução de uma nota
-1, que não deve fazer parte do cálculo.
• Escreva um programa que leia números inteiros até que a soma de tais números totalize no mínimo 100. Devem ser lidos tantos valores quantos necessários para que tal valor seja atingido ou superado. Quando isto ocorrer, o programa também deve exibir quantos números foram lidos e sua média.
8. Faça um programa que, dada uma seqüência qualquer de notas de alunos variando de 0 a 10 escreva, ao final da digitação, a maior e a menor das notas. O final será identificado pela introdução de uma nota -1, que não deve fazer parte do cálculo.
9. Escreva um programa que leia números inteiros até que a soma de tais números totalize no mínimo 100. Devem ser lidos tantos valores quantos necessários para que tal valor seja atingido ou superado. Quando isto ocorrer, o programa também deve exibir quantos números foram lidos e sua média.
10. Escreva um programa para determinar se um valor inteiro fornecido pelo usuário é ou não primo.