LA – Ling C – Aula 05B – Exercícios de depuração com laços

 

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

depuracap_laco01

Link no Github para exemplo: exercicio_depuracaoLaco01.c

Exercício 02

depuracap_laco02

Link no Github para exemplo: exercicio_depuracaoLaco02.c

Exercícios Extra-Classe

Treinamento em Código 1

exercicio_estruturaRepeticao01

Treinamento em Código 2

exercicio_estruturaRepeticao02

Treinamento em Código 3

exercicio_estruturaRepeticao03

Treinamento em Código 4

exercicio_estruturaRepeticao04

Treinamento em Código 5

exercicio_estruturaRepeticao05

Treinamento em Código 6

exercicio_estruturaRepeticao06

Treinamento em Código 7

exercicio_estruturaRepeticao07

Treinamento em Código 8

exercicio_estruturaRepeticao08

Treinamento em Código 9

exercicio_estruturaRepeticao09

Treinamento em Código 10

exercicio_estruturaRepeticao10

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.

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s