terça-feira, 2 de julho de 2013

Exercícios Algoritmos Respondidos

Nas postagens anteriores mostramos a importância de se aprender a elaborar algoritmos corretamente. Mas uma boa forma de aperfeiçoar sua lógica é treinando. Para isso, abaixo são descritos alguns exercícios de algoritmos para treino, para o caso de alguma dúvida, os exercícios já se encontram respondidos. Esperamos que eles lhes possam ser úteis....mãos à obra!

Lista de Exercícios de Algoritmos: 

 

1 - Faça um algoritmo que receba que receba dois números e ao final mostre a soma, subtração, multiplicação e divisão dos números lidos.
  
var
x, y: real;

inicio
    escreva("Digite o primeiro número: ");
    leia(x);
    escreva("Digite o segundo número: ");
    leia(y);
    escreva("A soma é: ",x+y);
    escreva("A subtração é: ",x-y);
    escreva("A multiplicação é: ",x*y);
    escreva("A divisão é: ",x/y);
fim.

2 - Faça um algoritmo que leia o nome de um vendedor, o seu salário fixo e o total de vendas efetuadas por ele no mês (em dinheiro). Sabendo que este vendedor ganha 8% de comissão sobre as vendas efetuadas. Informe o seu nome, salário fixo e salário no final do mês acrescido das comissões.

var
nome: caractere;
salario: real;
vendas: real;
comissao: real;
salarioFinal: real;

inicio
    escreva("Digite o nome do vendedor: ");
    leia(nome);
    escreva("Digite o salário: ");
    leia(salario);
    escreva("Informe a quantidade de vendas deste no mês: ");
    leia(vendas);
    comissao <- 0.08 * vendas;
    salarioFinal <- salario + comissao;
    limpatela
    escreva("---------- RESUMO ----------");
    escreva("Nome: ",nome);
    escreva("Salário: ",salario);
    escreva("Salário Final (salário + comissão): ",salarioFinal);
fim.
3 - Faça um algoritmo que leia uma temperatura em graus Celsius e apresentá-la convertida em graus Fahrenheit. A fórmula usada para essa conversão é a seguinte: F = (9*C+160)/5, sendo que F representa a temperatura em Fahrenheit e C representa a temperatura em Celsius.

var
c, f: real;

inicio
    escreva("Digite a temperatura em Celcius: ");
    leia(c);
    f <- (9*c+160)/5;
    escreva("A nova temperatura é: ",f,"ºF");
fim.

4 - Faça um algoritmo que leia um número e descubra se ele está no intervalo entre 0 e 100.

var
numero: inteiro;

inicio
    escreva("Digite um número: ");
    leia(numero);
    se numero >= 0 entao
          se numero <= 100 entao
               escreva("O número está no intervalo entre 0 e 100");
          senao
               escreva("O número não está no intervalo entre 0 e 100");
          fimse
     senao
       escreva("O número não está no intervalo entre 0 e 100");
    fimse
fim.

5 - Faça um algoritmo que leia o nome e as três notas obtidas por um aluno durante um semestre. Calcule a média aritmética das notas desse aluno, informe seu nome e o seu status (APROVADO, se média >= 7; REPROVADO, se média <= 5; e EXAME, se média > 5 e média < 7).

var
nome: caractere;
n1, n2, n3, media: real;

inicio
    escreva("Sistema de médias");
    escreva("Digite a primeira nota: ");
    leia(n1);
    escreva("Digite a segunda nota: ");
    leia(n2);
    escreva("Digite a terceira nota: ");
    leia(n3);
    media <- (n1 + n2 + n3) / 3;

   se media >= 7 entao
       escreva("APROVADO!");
   senao
       se media <= 5 entao
          escreva("REPROVADO!");
      senao
          escreva("EXAME");
      fimse
  fimse
fim.

6 - Faça um algoritmo que leia três valores inteiros distintos e os escreva em ordem crescente.

var
num1, num2, num3: inteiro;
ordena: vetor[1..3] de inteiro;

inicio
    escreva("Digite o primeiro número: ");
    leia(num1);
    escreva("Digite o segundo número: ");
    leia(num2);
    escreva("Digite o terceiro número: ");
    leia(num3);

    se num1 > num2 entao
         ordena[3] <- num1;
         ordena[2] <- num2;
         se num3 > num1 entao
             ordena[3] <- num3;
             ordena[2] <- num1;
             ordena[1] <- num2;
        senao
            se num3 > num2 entao
                 ordena[3] <- num1;
                 ordena[2] <- num3;
                 ordena[1] <- num2;
            senao
                 ordena[3] <- num1;
                 ordena[2] <- num2;
                 ordena[1] <- num3;
            fimse
        fimse
    senao
        ordena[3] <- num2;
        ordena[2] <- num1;
        se num3 > num2 entao
            ordena[3] <- num3;
            ordena[2] <- num2;
            ordena[1] <- num1;
        senao
            se num3 > num1 entao
                ordena[3] <- num2;
                ordena[2] <- num3;
                ordena[1] <- num1;
            senao
                ordena[3] <- num2;
                ordena[2] <- num1;
                ordena[1] <- num3;
            fimse
       fimse
    fimse

   escreva("Os números em ordem crescente são: ");
   escreva(">",ordena[1]);
   escreva(">",ordena[2]);
   escreva(">",ordena[3]);
fim.

7 - Faça um algoritmo que receba o número do mês e mostre o mês correspondente, validando se houver um número de mês inválido.

var
mes: inteiro;

inicio
    escreva("Digite o número do mês: ");
    leia(mes);
    escolha mes
         caso 1:
             escreva("Janeiro");
         caso 2:
             escreva("Fevereiro");
         caso 3:
             escreva("Março");
         caso 4:
             escreva("Abril");
         caso 5:
            escreva("Maio");
         caso 6:
            escreva("Junho");
         caso 7:
             escreva("Julho");
         caso 8:
             escreva("Agosto");
         caso 9:
             escreva("Setembro");
         caso 10:
             escreva("Outubro");
         caso 11:
             escreva("Novembro");
         caso 12:
             escreva("Dezembro");
         outrocaso:
             escreva("Mês inválido!");
     fimescolha
fim.

8 - Faça um algoritmo que receba N números e mostre POSITIVO, NEGATIVO ou ZERO, para cada número informado.

var
programa, numero: inteiro;
opc: caractere;

inicio
    programa <- 1;
    enquanto programa = 1 faca
         limpatela
         escreva("Digite um número: ");
         leia(numero);
         se numero > 0 entao
              escreva("POSITIVO!");
         senao
              se numero = 0 entao
                     escreva("ZERO!");
              fimse
              se numero < 0 entao
                     escreva("NEGATIVO!");
              fimse
         fimse

        escreva("Deseja finalizar? (S/N) ");
        leia(opc);
        se opc = "S" entao
              programa <- 0;
        fimse
   fimenquanto
fim.

9 - Faça um algoritmo para ler 50 números e ao final informe quantos números estão no intervalo entre 100 e 150.

var
x, num, intervalo: inteiro;

inicio
    para x de 1 ate 50 faca
           escreva("Digite um número: ");
           leia(num);
           se num >= 100 entao
                 se num <= 150 entao
                       intervalo <- intervalo + 1;
                 fimse
          fimse
    fimpara

    escreva("Ao total, foram digitados",intervalo,"números no intervalo entre 100 e 150");
fim.

10 -  Faça um algoritmo que leia três valores inteiros e verifique se eles podem ser os lados de um triângulo. Se forem, informe qual tipo de triângulo eles podem formar: equilátero, isósceles ou escaleno.
Propriedade: O comprimento de cada lado de um triângulo é menor que a soma dos comprimentos dos outros dois lados.
Triângulo equilátero: Possui o comprimento dos três lados iguais.
Triângulo isósceles: Possui o comprimento de apenas dois lados iguais.
Triângulo escaleno: Possui o comprimento dos três lados diferentes.

var
la, lb, lc, triangulo: inteiro;
inicio
    escreva("Digite o lado A do triângulo: ");
    leia(la);
    escreva("Digite o lado B do triângulo: ");
    leia(lb);
    escreva("Digite o lado C do triângulo: ");
    leia(lc);

    se la < (lc+lb) entao
         triangulo <- 1;
    senao
        se lb < (lc + la) entao
              triangulo <- 1;
        senao
             se lc < (lb + la) entao
                   triangulo <- 1;
              fimse
        fimse
    fimse

    se triangulo = 1 entao
         se la = lb entao
              se lb = lc entao
                    escreva("TRIÂNGULO EQUILÁTERO!");
              senao
                    escreva("TRIÂNGULO ISÓSCELES!");
              fimse
        senao
             se lb = lc entao
                    escreva("TRIÂNGULO ISÓSCELES!");
             senao
                    escreva("TRIÂNGULO ESCALENO!");
             fimse
       fimse
    fimse
fim.

Nenhum comentário:

Postar um comentário