Unidade 1: Fundamentos

Introdução a Algoritmos

1 - Noções de Lógica

2 - Sobre Algoritmos


Algoritmo 1.1 - Trocar uma lâmpada queimada


Reexaminando o algoritmo 1.1, notamos que ele tem um objetivo bem definido: trocar uma lâmpada queimada. Porém o algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva).


Algoritmo 1.2 - Trocar uma lâmpada queimada (uso de teste condicional)


O Algoritmo 1.2 não está terminado. As ações cessarão quando conseguirmos colocar uma lâmpada que acenda (objetivo do algoritmo). Ao invés de reescrevermos várias vezes um conjunto de ações, podemos alterar o fluxo seqüencial de execução para permitir que ações sejam reexecutadas quantas vezes forem necessárias. Precisamos expressar essa repetição (estrutura de repetição) garantindo uma condição de parada.


Algoritmo 1.3 - Trocar uma lâmpada queimada (uso de estruturas de repetição)



Algoritmo 2 - Calcular a série de Fibonacci


2.1 Itens Fundamentais dos Algoritmos

2.2 Estruturas de Controle


Algoritmo 4 - Cálculo da média aritmética de quatro valores

início

    /* Declaração de variáveis */

    numérico: nota1, nota2, nota2, média;

    /* Obtenção da notas */

    escreva("Informe as notas do aluno: ");

    leia(nota1, nota2, nota3, nota4);

    /* Cálculo da média */

    média = (nota1 + nota2 + nota3 + nota4) / 4;

    escreva("Média calculada: " média);

fim


Estruturas de seleção


Algoritmo 5 - Verificar se três lados formam um triângulo e que tipo de triângulo

início

    /* Declaração de variáveis */

    numérico: lado1, lado2, lado3;

    /* Obtenção dos dados */

    leia(lado1, lado2, lado3);

    se (lado1 < lado2+lado3) AND (lado2 < lado1+lado3) AND (lado3 < lado2+lado1) /* Testa se é triângulo */
        então
            se (lado1=lado2) AND (lado2=lado3) /* Testa se é equilátero */
                então
                    escreva ("Os valores fornecidos formam um triângulo equilátero.");
                senão /* Testa se é isósceles */
                    se (lado1 = lado2) OR (lado2 = lado3) OR (lado1 = lado3)
                        então
                            escreva ("Os valores fornecidos formam um triângulo isósceles");
                        senão /* É escaleno */
                            escreva ("Os valores fornecidos formam um triângulo escaleno");
                    fim-se
            fim-se
    fim-se

fim /* do algoritmo */


Estruturas de repetição


Algoritmo 6 - Calcular a média aritmética de 4 notas para vários alunos

início
    /* Declaração de variáveis */

    numérico: nota1, nota2, nota3, nota4, média;

    literal: resposta;

    resposta  ¬ "S";

    enquanto (resposta = "S") faça
    início
        /* Obtenção da notas */
        escreva("Informe as notas do aluno: ");
        leia(nota1, nota2, nota3, nota4);
        /* Cálculo da média */
        média = (nota1 + nota2 + nota3 + nota4) / 4;
       escreva("Média calculada: " média);
        escreva("Deseja calcular outras médias de alunos (S/N)?");
    
    leia(resposta);
    fim
    fim-enquanto

fim /* do algoritmo */



Algoritmo 7 - Calcular a média aritmética de 4 notas para 50 alunos

início
    /* Declaração de variáveis */

    numérico: nota1, nota2, nota2, média, numAlunos;

    para numAlunos de 1 até 50 passo 1 faça
    início
        /* Obtenção da notas */
        escreva("Informe as notas do aluno: ");
        leia(nota1, nota2, nota3, nota4);
        /* Cálculo da média */
        média = (nota1 + nota2 + nota3 + nota4) / 4;
       escreva("Média calculada: " média);
    fim
    fim-enquanto

fim /* do algoritmo */


Versão ".doc" do material apresentado acima (aqui)