SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Algoritmo e Programação de Computadores




1. Introdução à Programação
1.1 Organização Básica de um Computador

O computador é composto basicamente de 4 unidades: unidade de entrada, unidade de saída,
unidade de processamento e memória. A unidade de entrada, é um dispositivo utilizado para fazer a
interação entre o usuário e o computador. A unidade de saída, por sua vez, serve para que o usuário
veja os resultados do processamento realizado pelo computador. A unidade central de
processamento, também conhecida como CPU, é responsável por todo o processamento requerido,
transformando os dados de entrada em dados de saída. Na memória são armazenados os dados e
informações temporariamente, que serão utilizados no processamento.



                       Entrada             Processamento                Saída




                                              Memória




1.2 Linguagem de Máquina

As unidades componentes de um computador precisam se comunicar entre si. Para que haja
comunicação é necessário que se estabeleça uma linguagem. A linguagem utilizada para
comunicação entre os componentes de um computador é chamada de linguagem de máquina,
constituída por dois símbolos básicos (zero e um), cada um deles denominados de bit (binary digit).
Uma linguagem de máquina, portanto, é constituída, por uma seqüência de bits, ou seja, seqüências
de dígitos zero e um.
Para que haja a comunicação do homem com o computador, é necessário que as palavras da
linguagem escrita seja traduzida para a linguagem de máquina.


1.3 Algoritmo

Um algoritmo nada mais é do que “um conjunto finito de regras, bem definidas, para a solução de um
problema em um tempo finito”.
Ex.:



                                                                                                 1
Algoritmo e Programação de Computadores




       Considerando o seguinte problema, dados três valores não nulos, a, b, c, determinar a sua
média aritmética. As tarefas a serem executadas para a solução deste problema, podem ser descritas
da seguinte forma:
       1. Obter os valores de a, b, c
       2. Calcular a média aritmética através da fórmula: (a+b+c)/3
       3. Comunicar o resultado obtido: média aritmética
       4. Terminar
A seqüência de tarefas acima, especificadas passo a passo, é um algoritmo, pois é formado por um
conjunto finito de regras que podem ser consideradas bem definidas e cuja execução produz a
solução do problema proposto, após um tempo finito.


1.4 Linguagem

Uma linguagem escrita (ou linguagem de programação) pode ser definida como um conjunto de
símbolos e regras (instruções), utilizados no processo de comunicação homem-máquina. O
computador foi concebido para executar instruções escritas em linguagens de máquina, portanto, o
computador é capaz de executar um algoritmo escrito nesta linguagem (programa).

1.5 Programa

Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de
computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e
executados por uma máquina, no caso um computador.
Um algoritmo escrito numa linguagem de computador é chamado de programa fonte ou simplesmente
programa. As instruções de um programa fonte são chamadas comandos. O programa fonte é
traduzido para a linguagem de máquina. Há dois tipos que programas que fazem esta tradução: os
interpretadores e os compiladores. Os interpretadores traduzem os comandos para a linguagem de
máquina um a um enquanto que os compiladores traduzem todo o programa para a linguagem de
máquina.


2. Introdução à Linguagem Algorítimica
2.1 Constante

Uma informação é constante quando não sofre nenhuma alteração no decorrer do tempo.
Uma constante pode ser:
    - um número (inteiro ou real)
    - um valor lógico
    - um caractere
Ex.: PI, NP, 5, 6.3, 0, “Aprovado”, falso


2.2 Variável

Uma informação é variável quando tem a possibilidade de ser alterada em algum instante no decorrer
do tempo.
Uma variável é uma posição de memória a qual estão associados um identificador e um tipo de dado.
Pelo nome dado a essa variável temos acesso a seu conteúdo, podendo manipulá-lo (alterar,
consultar, apagar, etc).

Sintaxe:         Var
                          <lista de identificadores> : <tipo de dado>

Onde:

    -   Lista de identificadores: se tiver mais de um identificador basta separá-los por vírgula e
        será usada no programa para fazer referência àquela variável. O primeiro caractere do

                                                                                                2
Algoritmo e Programação de Computadores




        identificador deverá sempre começar por uma letra, somente composto por letras, números e
        sublinhado ( _ ), não deve conter caracteres especiais (espaço em branco, hífen, asterisco,
        etc.
        Ex.: media_aluno, soma, ax, y, nomedoaluno

        Cuidado: nome de identificadores não podem conter palavras reservadas.

    -   Tipo de dado: associado a uma variável é o conjunto de elementos que nela podem ser
        armazenados.
        Utilizaremos quatro tipos de dados: inteiro, real, cadeia de caracteres e lógico (ou booleano).
        Serão definidos como(observe que não possuem acentos):
        • inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais.
        •       real: define variáveis numéricas do tipo real, ou seja, com casas decimais.
        •       caractere: define variáveis do tipo string, ou seja, cadeia de caracteres.
        •       logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO.


2.3 Expressões Aritméticas

O Visualg 2.0 é capaz de avaliar as seguintes expressões aritméticas que envolvam os seguintes
operadores:

Operadores unários( - e +): isto é, são aplicados a um único operando. São os operadores
aritméticos de maior precedência.
Ex.: -3, +x.
Enquanto o operador unário - inverte o sinal do seu operando, o operador + não altera o valor em
nada o seu valor.

Operador                   Significado
            ^              Potenciação
            *              Multiplicação
            /              Divisão
            +              Soma
            -              Subtração
                          Operador de divisão inteira. Por exemplo, 5  2 = 2. Tem a mesma
                           precedência do operador de divisão tradicional
         Mod               Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 % 3 = 2.
                           Tem a mesma precedência do operador de divisão tradicional.


Prioridade das operações
    - Parênteses mais internos
    - Efetuar as funções
    - Efetuar as potências e raízes
    - Efetuar a multiplicações e divisões
    - Efetuar as adições e subtrações


2.4 Expressões Lógicas
Operadores Relacionais
Utilizamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo de
dado. Tais valores são representados por constantes, variáveis (identificadores) ou expressões
aritméticas. O resultado obtido de uma relação é sempre um valor lógico (verdadeiro ou falso).
                                 Maior que                  >
                                 Menor que                  <
                                 Maior igual a             >=

                                                                                                       3
Algoritmo e Programação de Computadores




                                   Menor igual a               <=
                                   Igual a                      =
                                   Diferente de                <>
Ex.:
2*4 = 24/8
(15%4) < (19%6)

Operadores Lógicos

                           R1                R2        (R1) e (R2)   (R1) ou (R2)
                        Verdadeiro        Verdadeiro   Verdadeiro     Verdadeiro
                        Verdadeiro          Falso        Falso        Verdadeiro
                          Falso           Verdadeiro     Falso        Verdadeiro
                          Falso             Falso        Falso          Falso


                                     R1                  nao (R1)
                                  Verdadeiro              Falso
                                    Falso               Verdadeiro
Prioridade entre operadores lógicos

        nao
        e ou



Prioridades entre todos os operadores

        Parênteses mais internos
        Funções matemáticas
        Operadores aritméticos
        Operadores relacionais
        Operadores lógicos




2.5 Comando de atribuição
É o ato de colocar um valor dentro de uma variável. O valor a ser atribuído deve ser compatível com o
tipo de variável.
Sintaxe:
                              Identificador de variável <- expressão
Ex.:
    a <- 3
    Valor1 <- 1.5
    Valor2 <- Valor1 + a
    vet[1] <- vet[1] + (a * 3)
    matriz[3,9] <- a/4 - 5
    nome_do_aluno <- "José da Silva"
    sinalizador <- FALSO



2.6 Estrutura/Execução de um programa na Linguagem Algorítmica

A estrutura de um programa escrito em linguagem algorítmica terá a seguinte estrutura.

       Algoritmo "<nome do algoritmo>"
       var

                                                                                                   4
Algoritmo e Programação de Computadores




       < declaração de variáveis>
       inicio
       < lista de comandos>
       fimalgoritmo

As palavras algoritmo e fimalgoritmo fazem parte da sintaxe da linguagem e sempre
delimitam o inicio e fim de um algoritmo; a < declaração de variáveis> é a seção
ou parte do algoritmo onde descrevemos os tipos de dados que serão usados na lista de
comandos.; inicio indica o fim das declarações e o início da seção de comandos; <
lista de comandos > é apenas uma indicação de que entre as palavras inicio e
fimalgoritmo podemos escrever uma lista com uma ou mais instruções ou comandos. É
importante salientar que, quando um algoritmo é “executado”, as instruções ou
comandos de um algoritmo são sempre executados na ordem em que aparecem no
mesmo. As palavras que fazem parte da sintaxe da linguagem são palavras reservadas,
ou seja, não podem ser usadas para outro propósito em um algoritmo que não seja
aquele previsto nas regras de sintaxe. A palavra algoritmo, por exemplo, é uma palavra
reservada.

2.7 Comando de Entrada

Vimos anteriormente que a maioria dos programas manipula dados que são fornecidos pelo usuário
durante a execução do programa. Estes dados, repetindo, constituem a entrada do programa e,
naturalmente, devem ser armazenados em variáveis. O comando do Visualg que permite que o
usuário digite no teclado algum dado durante a execução de um programa e que armazena este dado
na memória é chamado de comando de entrada e deve ser escrito com a seguinte sintaxe:
Sintaxe:
                                 Leia    (identificador de variável)
Exemplo:
        leia (NumeroConta)
        leia (NumeroAgencia)
        leia (NomeCliente)

É incorreto usar:

        leia (NumeroConta+60)
        leia (12345)
        leia (NomeCliente+Sobrenome)


2.8 Comando de Saída

Um comando de saída é utilizado quando necessitamos apresentar os resultados da execução do
algoritmo no vídeo (monitor do computador).

Sintaxe:
                 Escreva           (identificador de variável)
        ou
                 Escreva           (expressão)
        ou
                 Escreva           (“mensagem”)
        ou uma combinação destes casos.

 No primeiro caso, o conteúdo da variável associada ao comando é exibido na tela do vídeo;
Ex.:

Algoritmo “Exibir uma variável”
Var
        Frase : caracter
Inicio


                                                                                              5
Algoritmo e Programação de Computadores




       Leia (Frase)
       Escreva (Frase)
Fimalgoritmo




                                          6
Algoritmo e Programação de Computadores




 No segundo caso, a expressão é avaliada e o seu resultado é exibido;
Ex.:
Algoritmo “Exibir uma expressão”

Var
         a, b, c : real
Inicio
       Leia a
       Leia b
       Leia c
       Escreva ((a+b+c)/3)
Fimalgoritmo

 No terceiro caso, a mensagem escrita entre aspas é exibida.
Ex.:
Algoritmo “Exibir uma mensagem”

Inicio
       Escreva (“Estou aprendendo a programar”)
Fimalgoritmo

OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando
usado consecutivamente.

Escreval (<expressão ou identificador ou constante>)
Mostra o primeiro resultado na mesma linha depois em linhas diferentes.

Escreva (<expressão ou identificador ou constante>)
Mostra o resultado na mesma linha, mas em colunas diferentes.

Exemplo
    X <- 3.5
    Y <- 4
    Escreva ("O valor de X é", X)
    Escreva (" E o valor de Y é ", Y)
    Escreval (" A soma de X e Y é", X+Y)
    Escreval ("O valor de X é", X)
    Escreval ("E o valor de Y é ", Y)
    Escreval ("A soma de X e Y é", X+Y)

Faria com que aparecesse na tela:
O valor de X é 3.5 E o valor de Y é 4 A soma de X e Y é 7.5
O valor de X é 3.5
E o valor de Y é 4
A soma de X e Y é 7.5


2.9 Métodos para construção de algoritmos
    a) Ler atentamente o enunciado do problema;
      b) Retirar do enunciado a relação das entradas de dados;
      c) Retirar do enunciado a relação das saídas de dados;
      d) Determinar o que deve ser feito para transformar as entradas determinadas nas saídas
      especificadas. Nesta fase teremos a construção do algoritmo propriamente dito;
      e) Executar o algoritmo. Implica em executar todas as ações descritas seguindo um fluxo de
      execução estabelecido, verificando a existência de possíveis erros no desenvolvimento do
      algoritmo. Essa atividade é conhecida como “teste de mesa”.



                                                                                              7
Algoritmo e Programação de Computadores




2.10 Exercícios (Ler, Escrever, Atribuição e Funções)

Todos os exercícios deverão ser feitos obedecendo as regras do Português Estruturado utilizado pelo
interpretador Visualg. Somente utilize os comandos vistos, anteriormente, em aula.

1. Imprimir a mensagem: ALGORITMO SÓ SE APRENDE PRATICANDO.
2. Imprimir seu nome.
3. Ler um número e imprimi-lo.
4. Ler três números inteiros e imprimi-los.
5. Ler um número inteiro e imprimir seu sucessor e seu antecessor.
6. Ler nome, endereço e telefone e imprimi-los.

7. Entrar com um número e imprimir a seguinte saída:
   NUMERO:
   QUADRADO:
   RAIZ QUADRADA:

8. Entrar com nome e idade. Imprimir a seguinte saída:
   NOME:
   IDADE:

9. Efetuar a leitura de um número inteiro e apresentar o resultado do quadrado deste número.

10. Ler dois valores inteiros (variáveis A e B) e efetuar as operações de adição, subtração,
    multiplicação e divisão de A por B, apresentando ao final os quatro resultados obtidos.

11. Escreva um algoritmo que forneça o valor em graus Fahrenheit, de uma temperatura expressa
    em graus Celcius.

         9C + 32
   F=
            5

12. Faça um algoritmo para calcular o volume de uma esfera de raio r.
           4πr 3
     V =
            3

13. Faça um algoritmo que, para quatro valores reais, a, b, c e d determine:
    a)   a média aritmética (MA);
    b)   a média harmônica (MH);
    c)   a média geométrica (MG);
    d)   a média quadrática (MQ).
                    4                                                a 2 + b2 + c2 + d 2
    MH =                              M = 4 a.b.c.d
                                       G                    MQ =
             1 1 1 1                                                          4
              + + +
             a b c d

14. Construir um programa que efetue o cálculo do salário líquido de um professor. Para fazer este
    programa você deverá possuir alguns dados, tais como: valor da hora aula, número de aulas
    dadas no mês e percentual de desconto do INSS. Em primeiro lugar, deve-se estabelecer qual
    será o seu salário bruto para efetuar o desconto e ter o valor do salário líquido.
   ht = horas trabalhadas no mês
   vh = valor hora aula

                                                                                                 8
Algoritmo e Programação de Computadores




   pd = percentual de desconto
   sb = salário bruto
   td = total de desconto
   sl = salário líquido
15. Efetuar o cálculo da quantidade de litros de combustível gasta em uma viagem, utilizando-se um
    automóvel que faz 12 Km por litro. Para obter o cálculo, o usuário deverá fornecer o tempo gasto
    na viagem e a velocidade média durante a mesma. Desta forma, será possível obter a distância
    percorrida com a fórmula DISTÂNCIA = TEMPO * VELOCIDADE. Tendo o valor da distância,
    basta calcular a quantidade de litros de combustível utilizada na viagem com a fórmula
    LITROS_USADOS = DISTÂNCIA / 12. O programa deverá apresentar os valores da velocidade
    média, tempo gasto na viagem, a distância percorrida e a quantidade de litros utilizada na
    viagem.
16. Ler a temperatura em graus Fahrenheit e apresentá-la convertida em graus Centígrados. A
    fórmula de conversão é:
    C = (F – 32) * (5 / 9), onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados.
17. Ler dois valores para as variáveis A e B, efetuar a troca de valores de forma que a variável A
    passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A.
    Apresentar os valores trocados.
18. Efetuar o cálculo do valor de uma prestação em atraso, utilizando a fórmula:
    PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO).
19. Uma loja de animais precisa de um programa para calcular os custos de criação de coelhos. O
    custo é calculado com a fórmula CUSTO = (NUM_COELHOS * 0.70) / 18 + 10. O programa deve
    ler um valor para a variável NUM_COELHOS e apresentar o valor da variável CUSTO.


3. Iniciando o Visualg 2.0 (Interpretador de Linguagem Algorítmica)
Fonte: Ajuda do Visualg 2.0

O Visualg 2.0 é uma ferramenta que permite ao aluno escrever um programa num ambiente próximo
da realidade, ou seja, o aluno poderá executar o seu algoritmo utilizando o computador, vendo na
prática o que acontece com um programa. Esta ferramenta simula o que acontece na tela do
computador com o uso dos famosos comandos "leia" e "escreva", bem como possibilitar a verificação
dos valores das variáveis, o acompanhamento passo a passo da execução de um algoritmo (pelo seu
grande valor didático), e até mesmo suportar um modo simples de depuração. Aliado a tudo isto,
deveria estar um editor de texto com recursos razoáveis (tais como abrir e salvar arquivos) e que
dispusesse de todos os principais recursos de um ambiente gráfico do Visualg.




                                                                                                  9
Algoritmo e Programação de Computadores




3.1 A Tela Principal do VisuAlg

A tela do VisuAlg compõe-se da barra de tarefas, do editor de textos (que toma toda a sua metade
superior), do quadro de variáveis (no lado esquerdo da metade inferior), do simulador de saída (no
correspondente lado direito) e da barra de status. Quando o programa é carregado, já apresenta no
editor um "esqueleto" de pseudocódigo, com a intenção de poupar trabalho ao usuário e de mostrar o
formato básico que deve ser seguido. Explicaremos a seguir cada componente da interface do

3.2 A Barra de Tarefas

Contém os comandos mais utilizados no VisuAlg (estes comandos também podem ser acessados
pelo menu ou por atalhos no teclado).




Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se
este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.


                                                                                                  10
Algoritmo e Programação de Computadores




Novo (Ctrl-N): Cria um novo "esqueleto" de pseudocódigo, substituindo o texto presente no editor. Se
este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto.
Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é
gravado, o VisuAlg pede seu nome e localização.
Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Para configurar a
impressão, use o comando Imprimir do menu Arquivo (acessível também pelo atalho Ctrl-P).
Cortar (Ctrl-X): Apaga texto selecionado, armazenando-o em uma área de transferência.
Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência.
Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor.
Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A
extensão sugerida para o nome do arquivo é .inc.
Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o
nome do arquivo é .inc.
Desfazer (Ctrl-Z): Desfaz último comando efetuado.
Refazer (Shift-Ctrl-Z): Refaz último comando desfeito.
Localizar (Ctrl-L): Localiza no texto presente no editor determinada palavra especificada.
Substituir (Ctrl-U): Localiza no texto presente no editor determinada palavra especificada,
substituindo-a por outra.
Corrigir Indentação (Ctrl-G): Corrige automaticamente a indentação (ou tabulação) do
pseudocódigo, tabulando cada comando interno com espaços à esquerda.
Numerar linhas: Ativa ou desativa a exibição dos números das linhas na área à esquerda do editor.
A linha e a coluna do editor em que o cursor está em um determinado momento também são
mostradas na barra de status (parte inferior da tela). Por motivos técnicos, esta opção é
automaticamente desativada durante a execução do pseudocódigo, mas volta a ser ativada logo em
seguida.
Mostrar variáveis modificadas: Ativa ou desativa a exibição da variável que está sendo modificada.
Como o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização;
quando esta característica está ativada, o VisuAlg rola a grade de exibição de modo que cada
variável fique visível no momento em está sendo modificada. Este recurso é especialmente útil
quando se executa um pseudocódigo passo a passo. Por questões de desempenho, a configuração
padrão desta característica é desativada, quando o pseudocódigo está sendo executado
automaticamente. No entanto, basta clicar este botão para executá-lo automaticamente com a
exibição ativada. No final da execução, a configuração volta a ser desativada.
Restaurar tela inicial:




Executar (F9): Inicia (ou continua) a execução automática do pseudocódigo.
Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado)
antes da execução de cada linha. Também realça em fundo azul o comando que está sendo
executado, da mesma forma que na execução passo a passo.
Intervalo do timer: Atraso em cada linha, para quando se deseja executar o pseudocódigo com
timer.
Passo (F8): Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a
oportunidade de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos
subprogramas.
Parar (Ctrl-F2): Termina imediatamente a execução do pseudocódigo. Evidentemente, este botão
fica desabilitado quando o pseudocódigo não está sendo executado.a linha em que esteja o cursor.
Estes pontos de parada são úteis para a depuração e acompanhamento da execução dos


                                                                                                  11
Algoritmo e Programação de Computadores




pseudocódigos, pois permitem a verificação dos valores das variáveis e da pilha de ativação de
subprogramas.
Desmarcar todos os breakpoints (Ctrl-F5): Desativa todos os breakpoints que estejam ativados
naquele momento.
Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passa a ser
uma janela que imita o DOS, simulando a execução de um programa neste ambiente.
Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados.
A faixa padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada (basta alterar
intervalo ao lado). Para a geração de dados do tipo caractere, não há uma faixa pré-estabelecida: os
dados gerados serão sempre strings de 5 letras maiúsculas.
Intervalo dos valores aleatórios: Faixa de valores que serão gerados automaticamente, quando
esta opção estiver ativada.
Perfil (F7): Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das
suas linhas foi executada. É útil para a análise de eficiência (por exemplo, nos métodos de
ordenação).
Mostrar pilha de ativação (Ctrl-F3): Exibe a pilha de subprogramas ativados num dado momento.
Convém utilizar este comando em conjunto com breakpoints ou com a execução passo a passo.
Ajuda (F1): Possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg.


3.4 Quadro de Variáveis

É formado por uma grade na qual são mostrados o escopo de cada variável (se for do programa
principal, será global; se for local, será apresentado o nome do subprograma onde foi declarada),
seus nomes (também com os índices, nos casos em que sejam vetores), seu tipo ("I" para inteiro, "R"
para real, "C" para caractere e "L" para lógico) e o seu valor corrente. A versão atual do VisuAlg
permite a visualização de até 500 variáveis (contando individualmente cada elemento dos vetores).

3.5 A Barra de Status

Situada na parte inferior da tela, esta barra contém dois painéis: o primeiro mostra a linha e a coluna
onde o cursor está, e o segundo mostra a palavra Modificado no caso em que o pseudocódigo tenha
sido alterado desde que foi carregado ou salvo pela última vez. Nesta barra, há ainda um terceiro
painel disponível, que ainda não tem um uso específico na atual versão.


4. Estruturas de Seleção

4.1 Estrutura simples

Uma estrutura de seleção vai analisar se uma dada seqüência de comandos será ou não executada.

Sintaxe: estrutura simples
           SE (expressão lógica) ENTAO
                 Seqüência de comandos
           FIMSE

A seqüência de comandos só será executada se a expressão lógica for verdadeira, se for falsa a
referida seqüência não é executada e o sistema passa a executar o comando seguinte ao comando
SE.
Ex.: Elaborar um algoritmo que leia 2 valores e imprima a sua soma caso o resultado seja igual ou
superior a 15.

Algoritmo “condição simples”
Var
      a, b, soma : inteiro
Inicio
      Escreva (“Entre com dois valores”)

                                                                                                    12
Algoritmo e Programação de Computadores




      Leia (a)
      Leia (b)
      Soma <- a + b
      Se (soma >= 15) entao
            Escrever soma
      Fimse
Fimalgoritmo


4.2 Estrutura Composta

Sintaxe: estrutura composta
           SE (expressão lógica) ENTAO
                 Seqüência de comandos 1
           SENAO
                 Seqüência de comandos 2
           FIMSE



A seqüência de comandos 1 só será executada se a expressão lógica for verdadeira, se for falsa,
será executada a seqüência de comandos 2.
Ex.: Elaborar um algoritmo que leia dois números inteiros, efetuar a soma desses números, se o
resultado for maior que 10, multiplique o resultado por 2, caso contrário multiplique o resultado por 3.
Exiba os resultados encontrados.

Algoritmo “Condição composta”
Var
      a, b, soma : inteiro
Inicio
      Escreva (“Entre com dois valores”)
      Leia (a)
      Leia (b)
      Soma <- a + b
      Se (soma > 10) entao
            Escreva soma*2
      Senao
            Escreva soma*3
      Fimse
Fimalgoritmo


4.3 Comando de seleção múltipla
Sintaxe:
      escolha <expressão-de-seleção>
      caso <exp11>, <exp12>, ..., <exp1n>
         <seqüência-de-comandos-1>
      caso <exp21>, <exp22>, ..., <exp2n>
         <seqüência-de-comandos-2>
      outrocaso
         <seqüência-de-comandos-extra>
      fimescolha


Comentário:
       Cada comando ESCOLHA poderá conter uma lista de mais de um procedimento CASO
<expressão>, e apenas um dos <bloco-de-comandos...> será executado caso seja satisfeita a
condição <expressão> ou, se nenhuma condição for satisfeita, OUTROCASO será executado.

                                                                                                     13
Algoritmo e Programação de Computadores




Exemplo: Fazer um algoritmo para ler um valor numérico. Se este valor for igual a 1 então imprimir o
valor lido, se o valor for igual a 2 então imprimir o seu dobro, se o valor for igual a 3 então imprimir o
seu triplo e se o valor for igual a 4 então imprimir o seu quádruplo.

algoritmo "escolha"
var
val : inteiro
inicio
leia (val)
escolha val
caso 1
      escreva ("simples   = ",val)
caso 2
      escreva ("dobro     = ",val*2)
caso 3
      escreva ("triplo    = ",val*3)
caso 4
      escreva ("quadruplo = ",val*4)
outrocaso
      escreva ("outro caso ", val)
fimescolha
fimalgoritmo

Exercícios

1. Um hotel cobra R$ 60,00 a diária e mais uma taxa de serviços.
   A taxa de serviços é de:
       -                 R$ 5,50 por diária, se o número de diárias for maior que 15;
       -                 R$ 6,00 por diária, se o número de diárias for igual a 15;
   -                     R$ 8,00 por diária, se o número de diárias for menor que 15;
   Construa um algoritmo que mostre o nome a conta de um cliente.
2. Entrar com o salário de uma pessoa e imprimir o desconto do INSS segundo a tabela abaixo:
  - menor ou igual a R$ 600,00 - isento
  - maior que R$ 600,00 e menor ou igual a R$ 1200,00 - 20%
  - maior que R$ 1200,00 e menor ou igual a R$2000,00 - 25%
  - maior que R$ 2000,00 - 30%
3. Faça um algoritmo que possa imprimir o menu abaixo:
                                 O usuário deverá selecionar uma das opções, digitando um número
    1 – solteiro(a)
                                 e este deverá escrever o estado civil da pessoa. Emitir mensagem
    2 – desquitado(a)
                                 de erro caso seja escolhida uma opção inexistente.
    3 – casado(a)
    4 – divorciado(a)
    5 – viúvo(a)
    OPCAO:


                                                              Antes de começar a programar é preciso
                                                                   entender bem o enunciado do
                                                                   problema. Leia-o várias vezes, se
                                                                   necessário.




                                                                                                       14
Algoritmo e Programação de Computadores




5. Estruturas de Repetição

Todo o algoritmo que possui um ou mais de seus passos repetidos um determinado número de vezes
denomina-se algoritmos de repetição.


5.1 Variável Contador

É uma variável que recebe um valor inicial (geralmente 0) e é incrementado em algum passo do
algoritmo, de um valor constante (geralmente 1).
Ex.:
       cont <- 0                    //Atribuição de um valor para a variável cont
            .
            .
            .
       cont <- cont + 1             //Incremento de 1 para a variável cont

5.2 Variável Acumulador:

É uma variável que recebe um valor inicial (geralmente 0) e é incrementada em algum outro passo do
algoritmo, de um valor variável.
Ex.:
       acum <- c
            .
            .
            .
       acum <- acum + v

Onde v é uma variável qualquer e c é uma constante que geralmente é zero.

A diferença básica entre uma variável contador e uma variável acumulador está no valor do
incremento, que no caso do contador é um valor constante e no caso do acumulador é um valor
variável.

5.3 Comando ENQUANTO FACA (repetição com teste no início)

Este comando faz com que o conjunto de instruções colocado no seu interior, seja repetido enquanto
o valor da expressão lógica for verdadeiro.

       ENQUANTO <expressão lógica ou relacional> FACA

            bloco de comandos

       FIMENQUANTO

Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável
de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes.

Algoritmo “enquanto..faca”
Var
     x, r, cont : inteiro
Inicio
     cont <- 1
     enquanto cont <= 5 faca
          leia (x)
          r <- x * 3
          escreva (r)
          cont <- cont + 1
     fimenquanto
Fimalgoritmo

                                                                                                      15
Algoritmo e Programação de Computadores




5.4 Repetição controlada pelo usuário

algoritmo”repetição controlada”
var
     x, r : inteiro
     resp : caracter
inicio
     resp <- “sim”
     enquanto (resp = “sim”) ou (resp = “s”) ou (resp = “S”) faca
          leia (x)
          r <- x * 3
          escreva (r)
          escreva (“deseja continuar (sim / não)?”)
          leia (resp)
     fimenquanto
fimalgoritmo

5.5 Exercícios

1. Elaborar um algoritmo que efetue o calculo do fatorial do número 5.
2. Faça um algoritmo para apresentar o total da soma dos cinco primeiros números inteiros.
3. Desenvolva os algoritmos abaixo utilizando o comando FACA ENQUANTO
   a) Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. Para
      verificar se o número é ímpar, efetuar dentro da malha a repetição desta condição com a
      instrução SE, perguntando se o número é ímpar; sendo, mostre-o, não sendo, passe para o
      próximo passo.
   b) Faça um algoritmo que apresente todos os valores numéricos inteiros pares situados na faixa
      de 100 a 200.
    c) Apresentar o total da              soma     obtido   dos   cem    primeiros    números    inteiros
       (1+2+3+4+...98+99+100).
    d) Apresentar as potências de 3 variando de 0 a 15. Deve ser considerado que qualquer número
       elevado a zero é 1, e elevado a um é ele próprio. Deverá ser apresentado, observando a
       seguinte definição:
              30 = 1
              31 = 3
              32 = 9
              (...)
              315 = 14348907


5.6 Comando PARA..FACA

O comando PARA PROXIMO é uma estrutura de repetição que repete a execução de uma dada
seqüência de comandos um número de vezes determinado pelo próprio programa.
Sintaxe:
      para <variável> de <valor inicial> ate <valor final> [passo] faca
      <lista de comandos>
      fimpara

Onde:
<variável>            Representa a variável que controlará o processo de repetição.
<valor inicial>       Consiste do valor inicial que deverá ser assumido pela variável de controle.
<valor final>         Constitui-se do valor final da variável de controle.
<passo>               Representa qual o incremento que deve ser sofrido pela variável de controle.


                                                                                                      16
Algoritmo e Programação de Computadores




Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável
de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes.

Algoritmo “para..faca”
var
     x, r, i : inteiro
inicio
     para i de 1 ate 5 passo 1 faca                //incrementa i de 1 em 1
          leia (x)
          r <- x * 3
          escreva (r)
     fimpara
fimalgoritmo

5.7 Exercícios: Utilize o comando PARA PROXIMO

4. Elaborar um algoritmo que efetue o cálculo do fatorial do número 5.
5. Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 1000 a 1500.
6. Apresentar o total da soma obtido de N números inteiros.
7. Apresentar o fatorial de um número qualquer.
8. Elaborar um algoritmo que apresente no final, o somatório dos valores pares existentes entre 10
   até 20.
9. Elabore um algoritmo que, utilizando as duas estruturas de repetição, imprima a tabuada do 5.
10. Escrever um algoritmo que gera e escreve os números ímpares entre 100 e 200.
11. Escrever um algoritmo que lê 10 valores, um de cada vez, e conta quantos deles estão no
    intervalo [10,20] e quantos deles estão fora deste intervalo, escrevendo estas informações.
12. Escrever um algoritmo que lê um número não conhecido de valores, um de cada vez, e conta
    quantos deles em cada um dos intervalos [0,25], (25,50], (50,75], (75,100].
13. Faça o teste de mesa para os trechos de algoritmos a seguir:

Trecho 1
   A <- 1                                                   Trecho 3
   S <- 0                                                   A <- 1
   Enquanto A < 5 faca                                      B <- 4
       S <- S + A                                           S <- 0
       A <- A + 2                                           Enquanto A <= 6 faca
   Fimenquanto                                                  Se A <= B entao
                                                                      S <- S + A * B
                                                                Senao
                                                                      S <- S + A * B
                                                                Fimse
                                                                A <- A + 1
Trecho 2                                                        B <- B - 1
     A <- 1                                                 Fimenquanto
     N <- 0
     S <- 0                                             Trecho 4
     Enquanto S < 12 faca                                  Para G de 1 ate 5 passo 1 faca
        S <- S + A                                             C <- 0
        A <- A + 1                                             Enquanto C < G faca
        N <- N + 1                                                   C <- C + 1
     Fimenquanto                                               Fimenquanto
                                                           Fimpara

14. Faça um algoritmo que imprima todos os números pares compreendidos entre 85 e 907. O
    algoritmo deve também calcular a soma destes valores.
15. Construa um algoritmo que verifique se um número fornecido pelo usuário é primo ou não.
16. Construa um algoritmo que leia três valores inteiros e os coloque em ordem crescente.

                                                                                                      17
Algoritmo e Programação de Computadores




17. Para os funcionários de uma empresa, construir um algoritmo que, determine qual sexo que
    apresenta maior média salarial.
18. A série de Fibonacci é formada pela seguinte seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...etc.
    Escreva um algoritmo que gere a série de Fibonacci até o vigésimo termo.
19. Construa um algoritmo que, para cada grupo de 50 valores inteiros, determine:
            a. A soma dos números positivos;
            b. A quantidade de valores negativos.
20. Construir um algoritmo que tome como entrada, N números inteiros, e mostre o menor deles.
21. Foi feita uma pesquisa com um grupo de alunos de uma universidade, onde se perguntou para
    cada aluno, o número de vezes que utilizou o restaurante da universidade, no último mês.
    Construa um algoritmo que determine:
           a. O percentual de alunos que utilizaram menos que 10 vezes o restaurante.
           b. O percentual de alunos que utilizaram entre 10 e 15 vezes.
           c. O percentual de alunos que utilizaram o restaurante acima de 15 vezes.
22. Considere que em uma eleição para prefeito, concorrem três candidatos. Cada candidato é
    identificado pó um número inteiro (1,2,3). Em uma pesquisa eleitoral, perguntou-se a cada
    entrevistado, em quem votaria na próxima eleição para prefeito.
    Cada entrevistado deu seu voto conforme abaixo:
    1,2 ou 3     : voto para os respectivos candidatos;
    4            : voto nulo;
    5            : indeciso;
    Faça um algoritmo que calcule e escreva:
              a. Percentual de votos de cada candidato;
              b. Percentual de eleitores indecisos.
23. A conversão de graus Fahrenheit para centígrados é obtida pela fórmula C=5/9(F-32). Escreva
    um algoritmo que calcule e escreva uma tabela de graus centígrados em função de graus
    Fahenheit que variem de 50 a 150 de 1 em 1.




                                                                                                18
Algoritmo e Programação de Computadores




6. Fluxograma
O fluxograma é uma representação gráfica de algoritmos onde formas geométricas diferentes
implicam ações distintas. É composto de um conjunto de símbolos pré-definidos.

Simbologia básica:
                       Terminal: símbolo utilizado para indicar inicio/fim do fluxo do programa.


                       Seta de fluxo de dados: indica o sentido do fluxo de dados. Conecta os
                       símbolos ou blocos existentes.

                       Teclado: indica a entrada de dados recebidas ou fornecidas de ou por um
                       computador.


                       Display: símbolo utilizado para exibir informações no vídeo ou monitor.



                       Processamento: símbolo ou bloco utilizado para indicar cálculos a
                       efetuar, atribuições de valores ou qualquer manipulação de dados que
                       tenha bloco específico para sua descrição


                       Condição: indica uma condição, podendo resultar em uma resposta
                       verdadeira ou falsa.


                       Repetição: símbolo utilizado para repetir uma determinada seqüência do
                       programa.




                       Conector: utilizado quando é necessário particionar o diagrama.


                       Conector: indica a conexão do fluxo em outra página.



Obs.: Existem vários outros símbolos, cada qual com seu significado e função. Para esta disciplina
utilizaremos os indicados na lista acima com suas respectivas variações (quando houver).




                                                                                                   19
Algoritmo e Programação de Computadores




7. Palavras reservadas

As palavras reservadas não podem ser usadas como identificador de variáveis, ou seja, não podem
ser declaradas como variáveis.


                                PALAVRAS RESERVADAS
aleatório               e                  grauprad           passo
abs                     eco                inicio             pausa
algoritmo               enquanto           int                pi
arccos                  entao              interrompa         pos
arcsen                  escolha            leia               procedimento
arctan                  escreva            literal            quad
arquivo                 exp                log                radpgrau
asc                     faca               logico             raizq
ate                     falso              logn               rand
caracter                fimalgoritmo       maiusc             randi
caso                    fimenquanto        mensagem           repita
compr                   fimescolha         minusc             se
copia                   fimfuncao          nao                sen
cós                     fimpara            numerico           senao
cotan                   fimprocedimento    numpcarac          timer
cronometro              fimrepita          ou                 tan
debug                   fimse              outrocaso          verdadeiro
declare                 função             para               xou




                                                                                            20
Algoritmo e Programação de Computadores




8. Referências Bibliográficas

-   CRESPO, SÉRGIO; EVARISTO, JAIME; aprendendo a Programar, programando numa
    linguagem algorítmica executável (ILA), Book Express, Rio de Janeiro, 2000.

-   FARRER, H. et al. Programação estruturada e computadores: algoritmos estruturados. Rio
    de Janeiro: LTC, 1989.

-   FORBELLONE, A. L. V.; EVERSPACHER, H. F. Lógica de Programação: a construção de
    Algoritmos e Estrutura de Dados. São Paulo: Makron Books, 1993.

-   GUIMARÃES, A.; LAGES, N. Algoritmos e estrutura de dados. Rio de Janeiro: LTC, 1985.

-   MANZANO, J. A. Estudo Dirigido de Algoritmos. São Paulo: Érica, 1997.

-   OLIVEIRA, A. B. Introdução à Programação: algoritmos. Florianópolis: Bookstore, 1999.

-   SALVETI, D. D. Algoritmos. São Paulo: Makron Books, 1998.

-   WIRTH, N. Algoritmos e Estrutura de Dados. Rio de Janeiro: Prentice-Hall, 1989.




                                                                                            21

Contenu connexe

Tendances

Algoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de ExerciciosAlgoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de ExerciciosRodrigo Kiyoshi Saito
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmosMauro Pereira
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosMauro Pereira
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 
Expressões algébricas
Expressões algébricasExpressões algébricas
Expressões algébricasleilamaluf
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosElaine Cecília Gatto
 
FunçõEs Polinomiais
FunçõEs PolinomiaisFunçõEs Polinomiais
FunçõEs Polinomiaiseducacao f
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Eder Samaniego
 
Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos João moreira
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Adriano Teixeira de Souza
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAlberto Simões
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 

Tendances (20)

Algoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de ExerciciosAlgoritmos - Aula 05 A - Correcao de Exercicios
Algoritmos - Aula 05 A - Correcao de Exercicios
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
Lista de exercicios   vetores, matrizes, registros e sub-algoritmosLista de exercicios   vetores, matrizes, registros e sub-algoritmos
Lista de exercicios vetores, matrizes, registros e sub-algoritmos
 
Operações com frações
Operações com fraçõesOperações com frações
Operações com frações
 
Algoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentosAlgoritmos e lp parte 2-fundamentos
Algoritmos e lp parte 2-fundamentos
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Expressões algébricas
Expressões algébricasExpressões algébricas
Expressões algébricas
 
Aula De Desenho Geometrico
Aula De Desenho GeometricoAula De Desenho Geometrico
Aula De Desenho Geometrico
 
Algoritmos - Vetores
Algoritmos - VetoresAlgoritmos - Vetores
Algoritmos - Vetores
 
Algoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de AlgoritmosAlgoritmos - Formas de Representação de Algoritmos
Algoritmos - Formas de Representação de Algoritmos
 
FunçõEs Polinomiais
FunçõEs PolinomiaisFunçõEs Polinomiais
FunçõEs Polinomiais
 
Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2Algoritmos 1 - Semana 2
Algoritmos 1 - Semana 2
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Matematica Aplicada
Matematica AplicadaMatematica Aplicada
Matematica Aplicada
 
Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos Apresentação 20130805 algoritmos
Apresentação 20130805 algoritmos
 
Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)Estrutura de Dados em Java (Funções e Procedimentos)
Estrutura de Dados em Java (Funções e Procedimentos)
 
Fisica aplicada aos games
Fisica aplicada aos gamesFisica aplicada aos games
Fisica aplicada aos games
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 

En vedette

En vedette (6)

Logica programação
Logica programaçãoLogica programação
Logica programação
 
Curso de logica_e_programacao
Curso de logica_e_programacaoCurso de logica_e_programacao
Curso de logica_e_programacao
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Lista de exercício resposta
Lista de exercício   respostaLista de exercício   resposta
Lista de exercício resposta
 
1ª lista de_algoritmos
1ª lista de_algoritmos1ª lista de_algoritmos
1ª lista de_algoritmos
 
Apostila c++ básico
Apostila c++ básicoApostila c++ básico
Apostila c++ básico
 

Similaire à 53297189 apostila-algoritmo-e-logica-i

Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30hflandim
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1Thalles Anderson
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimosCleide Soares
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresRegis Magalhães
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
algoritmo-m03-tiposdedados-151221150545.pptx
algoritmo-m03-tiposdedados-151221150545.pptxalgoritmo-m03-tiposdedados-151221150545.pptx
algoritmo-m03-tiposdedados-151221150545.pptxGustavoMaciel67
 

Similaire à 53297189 apostila-algoritmo-e-logica-i (20)

Logica java ate slide 30
Logica java   ate slide 30Logica java   ate slide 30
Logica java ate slide 30
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Alg aula 02 - algoritmos 1 tp1
Alg   aula 02 - algoritmos 1 tp1Alg   aula 02 - algoritmos 1 tp1
Alg aula 02 - algoritmos 1 tp1
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
01 logica
01 logica01 logica
01 logica
 
Apostila de algoritimos
Apostila de algoritimosApostila de algoritimos
Apostila de algoritimos
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 
Módulo 2 pascal
Módulo 2  pascalMódulo 2  pascal
Módulo 2 pascal
 
Cap07
Cap07Cap07
Cap07
 
Cap07
Cap07Cap07
Cap07
 
02 algoritmos
02 algoritmos02 algoritmos
02 algoritmos
 
Cap 2
Cap 2Cap 2
Cap 2
 
Cap 2
Cap 2Cap 2
Cap 2
 
Aula algoritmo
Aula algoritmoAula algoritmo
Aula algoritmo
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
algoritmo-m03-tiposdedados-151221150545.pptx
algoritmo-m03-tiposdedados-151221150545.pptxalgoritmo-m03-tiposdedados-151221150545.pptx
algoritmo-m03-tiposdedados-151221150545.pptx
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 

53297189 apostila-algoritmo-e-logica-i

  • 1. Algoritmo e Programação de Computadores 1. Introdução à Programação 1.1 Organização Básica de um Computador O computador é composto basicamente de 4 unidades: unidade de entrada, unidade de saída, unidade de processamento e memória. A unidade de entrada, é um dispositivo utilizado para fazer a interação entre o usuário e o computador. A unidade de saída, por sua vez, serve para que o usuário veja os resultados do processamento realizado pelo computador. A unidade central de processamento, também conhecida como CPU, é responsável por todo o processamento requerido, transformando os dados de entrada em dados de saída. Na memória são armazenados os dados e informações temporariamente, que serão utilizados no processamento. Entrada Processamento Saída Memória 1.2 Linguagem de Máquina As unidades componentes de um computador precisam se comunicar entre si. Para que haja comunicação é necessário que se estabeleça uma linguagem. A linguagem utilizada para comunicação entre os componentes de um computador é chamada de linguagem de máquina, constituída por dois símbolos básicos (zero e um), cada um deles denominados de bit (binary digit). Uma linguagem de máquina, portanto, é constituída, por uma seqüência de bits, ou seja, seqüências de dígitos zero e um. Para que haja a comunicação do homem com o computador, é necessário que as palavras da linguagem escrita seja traduzida para a linguagem de máquina. 1.3 Algoritmo Um algoritmo nada mais é do que “um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito”. Ex.: 1
  • 2. Algoritmo e Programação de Computadores Considerando o seguinte problema, dados três valores não nulos, a, b, c, determinar a sua média aritmética. As tarefas a serem executadas para a solução deste problema, podem ser descritas da seguinte forma: 1. Obter os valores de a, b, c 2. Calcular a média aritmética através da fórmula: (a+b+c)/3 3. Comunicar o resultado obtido: média aritmética 4. Terminar A seqüência de tarefas acima, especificadas passo a passo, é um algoritmo, pois é formado por um conjunto finito de regras que podem ser consideradas bem definidas e cuja execução produz a solução do problema proposto, após um tempo finito. 1.4 Linguagem Uma linguagem escrita (ou linguagem de programação) pode ser definida como um conjunto de símbolos e regras (instruções), utilizados no processo de comunicação homem-máquina. O computador foi concebido para executar instruções escritas em linguagens de máquina, portanto, o computador é capaz de executar um algoritmo escrito nesta linguagem (programa). 1.5 Programa Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e executados por uma máquina, no caso um computador. Um algoritmo escrito numa linguagem de computador é chamado de programa fonte ou simplesmente programa. As instruções de um programa fonte são chamadas comandos. O programa fonte é traduzido para a linguagem de máquina. Há dois tipos que programas que fazem esta tradução: os interpretadores e os compiladores. Os interpretadores traduzem os comandos para a linguagem de máquina um a um enquanto que os compiladores traduzem todo o programa para a linguagem de máquina. 2. Introdução à Linguagem Algorítimica 2.1 Constante Uma informação é constante quando não sofre nenhuma alteração no decorrer do tempo. Uma constante pode ser: - um número (inteiro ou real) - um valor lógico - um caractere Ex.: PI, NP, 5, 6.3, 0, “Aprovado”, falso 2.2 Variável Uma informação é variável quando tem a possibilidade de ser alterada em algum instante no decorrer do tempo. Uma variável é uma posição de memória a qual estão associados um identificador e um tipo de dado. Pelo nome dado a essa variável temos acesso a seu conteúdo, podendo manipulá-lo (alterar, consultar, apagar, etc). Sintaxe: Var <lista de identificadores> : <tipo de dado> Onde: - Lista de identificadores: se tiver mais de um identificador basta separá-los por vírgula e será usada no programa para fazer referência àquela variável. O primeiro caractere do 2
  • 3. Algoritmo e Programação de Computadores identificador deverá sempre começar por uma letra, somente composto por letras, números e sublinhado ( _ ), não deve conter caracteres especiais (espaço em branco, hífen, asterisco, etc. Ex.: media_aluno, soma, ax, y, nomedoaluno Cuidado: nome de identificadores não podem conter palavras reservadas. - Tipo de dado: associado a uma variável é o conjunto de elementos que nela podem ser armazenados. Utilizaremos quatro tipos de dados: inteiro, real, cadeia de caracteres e lógico (ou booleano). Serão definidos como(observe que não possuem acentos): • inteiro: define variáveis numéricas do tipo inteiro, ou seja, sem casas decimais. • real: define variáveis numéricas do tipo real, ou seja, com casas decimais. • caractere: define variáveis do tipo string, ou seja, cadeia de caracteres. • logico: define variáveis do tipo booleano, ou seja, com valor VERDADEIRO ou FALSO. 2.3 Expressões Aritméticas O Visualg 2.0 é capaz de avaliar as seguintes expressões aritméticas que envolvam os seguintes operadores: Operadores unários( - e +): isto é, são aplicados a um único operando. São os operadores aritméticos de maior precedência. Ex.: -3, +x. Enquanto o operador unário - inverte o sinal do seu operando, o operador + não altera o valor em nada o seu valor. Operador Significado ^ Potenciação * Multiplicação / Divisão + Soma - Subtração Operador de divisão inteira. Por exemplo, 5 2 = 2. Tem a mesma precedência do operador de divisão tradicional Mod Operador de módulo (isto é, resto da divisão inteira). Por exemplo, 8 % 3 = 2. Tem a mesma precedência do operador de divisão tradicional. Prioridade das operações - Parênteses mais internos - Efetuar as funções - Efetuar as potências e raízes - Efetuar a multiplicações e divisões - Efetuar as adições e subtrações 2.4 Expressões Lógicas Operadores Relacionais Utilizamos os operadores relacionais para realizar comparações entre dois valores de mesmo tipo de dado. Tais valores são representados por constantes, variáveis (identificadores) ou expressões aritméticas. O resultado obtido de uma relação é sempre um valor lógico (verdadeiro ou falso). Maior que > Menor que < Maior igual a >= 3
  • 4. Algoritmo e Programação de Computadores Menor igual a <= Igual a = Diferente de <> Ex.: 2*4 = 24/8 (15%4) < (19%6) Operadores Lógicos R1 R2 (R1) e (R2) (R1) ou (R2) Verdadeiro Verdadeiro Verdadeiro Verdadeiro Verdadeiro Falso Falso Verdadeiro Falso Verdadeiro Falso Verdadeiro Falso Falso Falso Falso R1 nao (R1) Verdadeiro Falso Falso Verdadeiro Prioridade entre operadores lógicos nao e ou Prioridades entre todos os operadores Parênteses mais internos Funções matemáticas Operadores aritméticos Operadores relacionais Operadores lógicos 2.5 Comando de atribuição É o ato de colocar um valor dentro de uma variável. O valor a ser atribuído deve ser compatível com o tipo de variável. Sintaxe: Identificador de variável <- expressão Ex.: a <- 3 Valor1 <- 1.5 Valor2 <- Valor1 + a vet[1] <- vet[1] + (a * 3) matriz[3,9] <- a/4 - 5 nome_do_aluno <- "José da Silva" sinalizador <- FALSO 2.6 Estrutura/Execução de um programa na Linguagem Algorítmica A estrutura de um programa escrito em linguagem algorítmica terá a seguinte estrutura. Algoritmo "<nome do algoritmo>" var 4
  • 5. Algoritmo e Programação de Computadores < declaração de variáveis> inicio < lista de comandos> fimalgoritmo As palavras algoritmo e fimalgoritmo fazem parte da sintaxe da linguagem e sempre delimitam o inicio e fim de um algoritmo; a < declaração de variáveis> é a seção ou parte do algoritmo onde descrevemos os tipos de dados que serão usados na lista de comandos.; inicio indica o fim das declarações e o início da seção de comandos; < lista de comandos > é apenas uma indicação de que entre as palavras inicio e fimalgoritmo podemos escrever uma lista com uma ou mais instruções ou comandos. É importante salientar que, quando um algoritmo é “executado”, as instruções ou comandos de um algoritmo são sempre executados na ordem em que aparecem no mesmo. As palavras que fazem parte da sintaxe da linguagem são palavras reservadas, ou seja, não podem ser usadas para outro propósito em um algoritmo que não seja aquele previsto nas regras de sintaxe. A palavra algoritmo, por exemplo, é uma palavra reservada. 2.7 Comando de Entrada Vimos anteriormente que a maioria dos programas manipula dados que são fornecidos pelo usuário durante a execução do programa. Estes dados, repetindo, constituem a entrada do programa e, naturalmente, devem ser armazenados em variáveis. O comando do Visualg que permite que o usuário digite no teclado algum dado durante a execução de um programa e que armazena este dado na memória é chamado de comando de entrada e deve ser escrito com a seguinte sintaxe: Sintaxe: Leia (identificador de variável) Exemplo: leia (NumeroConta) leia (NumeroAgencia) leia (NomeCliente) É incorreto usar: leia (NumeroConta+60) leia (12345) leia (NomeCliente+Sobrenome) 2.8 Comando de Saída Um comando de saída é utilizado quando necessitamos apresentar os resultados da execução do algoritmo no vídeo (monitor do computador). Sintaxe: Escreva (identificador de variável) ou Escreva (expressão) ou Escreva (“mensagem”) ou uma combinação destes casos.  No primeiro caso, o conteúdo da variável associada ao comando é exibido na tela do vídeo; Ex.: Algoritmo “Exibir uma variável” Var Frase : caracter Inicio 5
  • 6. Algoritmo e Programação de Computadores Leia (Frase) Escreva (Frase) Fimalgoritmo 6
  • 7. Algoritmo e Programação de Computadores  No segundo caso, a expressão é avaliada e o seu resultado é exibido; Ex.: Algoritmo “Exibir uma expressão” Var a, b, c : real Inicio Leia a Leia b Leia c Escreva ((a+b+c)/3) Fimalgoritmo  No terceiro caso, a mensagem escrita entre aspas é exibida. Ex.: Algoritmo “Exibir uma mensagem” Inicio Escreva (“Estou aprendendo a programar”) Fimalgoritmo OBS.: No Visualg existem dois comandos escreva com finalidades diferentes quando usado consecutivamente. Escreval (<expressão ou identificador ou constante>) Mostra o primeiro resultado na mesma linha depois em linhas diferentes. Escreva (<expressão ou identificador ou constante>) Mostra o resultado na mesma linha, mas em colunas diferentes. Exemplo X <- 3.5 Y <- 4 Escreva ("O valor de X é", X) Escreva (" E o valor de Y é ", Y) Escreval (" A soma de X e Y é", X+Y) Escreval ("O valor de X é", X) Escreval ("E o valor de Y é ", Y) Escreval ("A soma de X e Y é", X+Y) Faria com que aparecesse na tela: O valor de X é 3.5 E o valor de Y é 4 A soma de X e Y é 7.5 O valor de X é 3.5 E o valor de Y é 4 A soma de X e Y é 7.5 2.9 Métodos para construção de algoritmos a) Ler atentamente o enunciado do problema; b) Retirar do enunciado a relação das entradas de dados; c) Retirar do enunciado a relação das saídas de dados; d) Determinar o que deve ser feito para transformar as entradas determinadas nas saídas especificadas. Nesta fase teremos a construção do algoritmo propriamente dito; e) Executar o algoritmo. Implica em executar todas as ações descritas seguindo um fluxo de execução estabelecido, verificando a existência de possíveis erros no desenvolvimento do algoritmo. Essa atividade é conhecida como “teste de mesa”. 7
  • 8. Algoritmo e Programação de Computadores 2.10 Exercícios (Ler, Escrever, Atribuição e Funções) Todos os exercícios deverão ser feitos obedecendo as regras do Português Estruturado utilizado pelo interpretador Visualg. Somente utilize os comandos vistos, anteriormente, em aula. 1. Imprimir a mensagem: ALGORITMO SÓ SE APRENDE PRATICANDO. 2. Imprimir seu nome. 3. Ler um número e imprimi-lo. 4. Ler três números inteiros e imprimi-los. 5. Ler um número inteiro e imprimir seu sucessor e seu antecessor. 6. Ler nome, endereço e telefone e imprimi-los. 7. Entrar com um número e imprimir a seguinte saída: NUMERO: QUADRADO: RAIZ QUADRADA: 8. Entrar com nome e idade. Imprimir a seguinte saída: NOME: IDADE: 9. Efetuar a leitura de um número inteiro e apresentar o resultado do quadrado deste número. 10. Ler dois valores inteiros (variáveis A e B) e efetuar as operações de adição, subtração, multiplicação e divisão de A por B, apresentando ao final os quatro resultados obtidos. 11. Escreva um algoritmo que forneça o valor em graus Fahrenheit, de uma temperatura expressa em graus Celcius. 9C + 32 F= 5 12. Faça um algoritmo para calcular o volume de uma esfera de raio r. 4πr 3 V = 3 13. Faça um algoritmo que, para quatro valores reais, a, b, c e d determine: a) a média aritmética (MA); b) a média harmônica (MH); c) a média geométrica (MG); d) a média quadrática (MQ). 4 a 2 + b2 + c2 + d 2 MH = M = 4 a.b.c.d G MQ = 1 1 1 1 4 + + + a b c d 14. Construir um programa que efetue o cálculo do salário líquido de um professor. Para fazer este programa você deverá possuir alguns dados, tais como: valor da hora aula, número de aulas dadas no mês e percentual de desconto do INSS. Em primeiro lugar, deve-se estabelecer qual será o seu salário bruto para efetuar o desconto e ter o valor do salário líquido. ht = horas trabalhadas no mês vh = valor hora aula 8
  • 9. Algoritmo e Programação de Computadores pd = percentual de desconto sb = salário bruto td = total de desconto sl = salário líquido 15. Efetuar o cálculo da quantidade de litros de combustível gasta em uma viagem, utilizando-se um automóvel que faz 12 Km por litro. Para obter o cálculo, o usuário deverá fornecer o tempo gasto na viagem e a velocidade média durante a mesma. Desta forma, será possível obter a distância percorrida com a fórmula DISTÂNCIA = TEMPO * VELOCIDADE. Tendo o valor da distância, basta calcular a quantidade de litros de combustível utilizada na viagem com a fórmula LITROS_USADOS = DISTÂNCIA / 12. O programa deverá apresentar os valores da velocidade média, tempo gasto na viagem, a distância percorrida e a quantidade de litros utilizada na viagem. 16. Ler a temperatura em graus Fahrenheit e apresentá-la convertida em graus Centígrados. A fórmula de conversão é: C = (F – 32) * (5 / 9), onde F é a temperatura em Fahrenheit e C é a temperatura em Centígrados. 17. Ler dois valores para as variáveis A e B, efetuar a troca de valores de forma que a variável A passe a possuir o valor da variável B e que a variável B passe a possuir o valor da variável A. Apresentar os valores trocados. 18. Efetuar o cálculo do valor de uma prestação em atraso, utilizando a fórmula: PRESTAÇÃO = VALOR + (VALOR * (TAXA / 100) * TEMPO). 19. Uma loja de animais precisa de um programa para calcular os custos de criação de coelhos. O custo é calculado com a fórmula CUSTO = (NUM_COELHOS * 0.70) / 18 + 10. O programa deve ler um valor para a variável NUM_COELHOS e apresentar o valor da variável CUSTO. 3. Iniciando o Visualg 2.0 (Interpretador de Linguagem Algorítmica) Fonte: Ajuda do Visualg 2.0 O Visualg 2.0 é uma ferramenta que permite ao aluno escrever um programa num ambiente próximo da realidade, ou seja, o aluno poderá executar o seu algoritmo utilizando o computador, vendo na prática o que acontece com um programa. Esta ferramenta simula o que acontece na tela do computador com o uso dos famosos comandos "leia" e "escreva", bem como possibilitar a verificação dos valores das variáveis, o acompanhamento passo a passo da execução de um algoritmo (pelo seu grande valor didático), e até mesmo suportar um modo simples de depuração. Aliado a tudo isto, deveria estar um editor de texto com recursos razoáveis (tais como abrir e salvar arquivos) e que dispusesse de todos os principais recursos de um ambiente gráfico do Visualg. 9
  • 10. Algoritmo e Programação de Computadores 3.1 A Tela Principal do VisuAlg A tela do VisuAlg compõe-se da barra de tarefas, do editor de textos (que toma toda a sua metade superior), do quadro de variáveis (no lado esquerdo da metade inferior), do simulador de saída (no correspondente lado direito) e da barra de status. Quando o programa é carregado, já apresenta no editor um "esqueleto" de pseudocódigo, com a intenção de poupar trabalho ao usuário e de mostrar o formato básico que deve ser seguido. Explicaremos a seguir cada componente da interface do 3.2 A Barra de Tarefas Contém os comandos mais utilizados no VisuAlg (estes comandos também podem ser acessados pelo menu ou por atalhos no teclado). Abrir (Ctrl-A): Abre um arquivo anteriormente gravado, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto. 10
  • 11. Algoritmo e Programação de Computadores Novo (Ctrl-N): Cria um novo "esqueleto" de pseudocódigo, substituindo o texto presente no editor. Se este tiver sido modificado, o VisuAlg pedirá sua confirmação para salvá-lo antes que seja sobreposto. Salvar (Ctrl-S): Grava imediatamente o texto presente no editor. Na primeira vez que um novo texto é gravado, o VisuAlg pede seu nome e localização. Imprimir: Imprime imediatamente na impressora padrão o texto presente no editor. Para configurar a impressão, use o comando Imprimir do menu Arquivo (acessível também pelo atalho Ctrl-P). Cortar (Ctrl-X): Apaga texto selecionado, armazenando-o em uma área de transferência. Copiar (Ctrl-C): Copia o texto selecionado para a área de transferência. Colar (Ctrl-V): Copia texto da área de transferência para o local em que está o cursor. Gravar bloco de texto: Permite a gravação em arquivo de um texto selecionado no editor. A extensão sugerida para o nome do arquivo é .inc. Inserir bloco de texto: Permite a inserção do conteúdo de um arquivo. A extensão sugerida para o nome do arquivo é .inc. Desfazer (Ctrl-Z): Desfaz último comando efetuado. Refazer (Shift-Ctrl-Z): Refaz último comando desfeito. Localizar (Ctrl-L): Localiza no texto presente no editor determinada palavra especificada. Substituir (Ctrl-U): Localiza no texto presente no editor determinada palavra especificada, substituindo-a por outra. Corrigir Indentação (Ctrl-G): Corrige automaticamente a indentação (ou tabulação) do pseudocódigo, tabulando cada comando interno com espaços à esquerda. Numerar linhas: Ativa ou desativa a exibição dos números das linhas na área à esquerda do editor. A linha e a coluna do editor em que o cursor está em um determinado momento também são mostradas na barra de status (parte inferior da tela). Por motivos técnicos, esta opção é automaticamente desativada durante a execução do pseudocódigo, mas volta a ser ativada logo em seguida. Mostrar variáveis modificadas: Ativa ou desativa a exibição da variável que está sendo modificada. Como o número de variáveis pode ser grande, muitas podem estar fora da janela de visualização; quando esta característica está ativada, o VisuAlg rola a grade de exibição de modo que cada variável fique visível no momento em está sendo modificada. Este recurso é especialmente útil quando se executa um pseudocódigo passo a passo. Por questões de desempenho, a configuração padrão desta característica é desativada, quando o pseudocódigo está sendo executado automaticamente. No entanto, basta clicar este botão para executá-lo automaticamente com a exibição ativada. No final da execução, a configuração volta a ser desativada. Restaurar tela inicial: Executar (F9): Inicia (ou continua) a execução automática do pseudocódigo. Executar com timer (Shift-F9):: Insere um atraso (que pode ser especificado no intervalo ao lado) antes da execução de cada linha. Também realça em fundo azul o comando que está sendo executado, da mesma forma que na execução passo a passo. Intervalo do timer: Atraso em cada linha, para quando se deseja executar o pseudocódigo com timer. Passo (F8): Inicia (ou continua) a execução linha por linha do pseudocódigo, dando ao usuário a oportunidade de acompanhar o fluxo de execução, os valores das variáveis e a pilha de ativação dos subprogramas. Parar (Ctrl-F2): Termina imediatamente a execução do pseudocódigo. Evidentemente, este botão fica desabilitado quando o pseudocódigo não está sendo executado.a linha em que esteja o cursor. Estes pontos de parada são úteis para a depuração e acompanhamento da execução dos 11
  • 12. Algoritmo e Programação de Computadores pseudocódigos, pois permitem a verificação dos valores das variáveis e da pilha de ativação de subprogramas. Desmarcar todos os breakpoints (Ctrl-F5): Desativa todos os breakpoints que estejam ativados naquele momento. Executar em modo DOS: Com esta opção ativada, tanto a entrada como a saída-padrão passa a ser uma janela que imita o DOS, simulando a execução de um programa neste ambiente. Gerar valores aleatórios: Ativa a geração de valores aleatórios que substituem a digitação de dados. A faixa padrão de valores gerados é de 0 a 100 inclusive, mas pode ser modificada (basta alterar intervalo ao lado). Para a geração de dados do tipo caractere, não há uma faixa pré-estabelecida: os dados gerados serão sempre strings de 5 letras maiúsculas. Intervalo dos valores aleatórios: Faixa de valores que serão gerados automaticamente, quando esta opção estiver ativada. Perfil (F7): Após a execução de um pseudocódigo, exibe o número de vezes que cada umas das suas linhas foi executada. É útil para a análise de eficiência (por exemplo, nos métodos de ordenação). Mostrar pilha de ativação (Ctrl-F3): Exibe a pilha de subprogramas ativados num dado momento. Convém utilizar este comando em conjunto com breakpoints ou com a execução passo a passo. Ajuda (F1): Possibilita acesso às páginas de ajuda e às informações sobre o VisuAlg. 3.4 Quadro de Variáveis É formado por uma grade na qual são mostrados o escopo de cada variável (se for do programa principal, será global; se for local, será apresentado o nome do subprograma onde foi declarada), seus nomes (também com os índices, nos casos em que sejam vetores), seu tipo ("I" para inteiro, "R" para real, "C" para caractere e "L" para lógico) e o seu valor corrente. A versão atual do VisuAlg permite a visualização de até 500 variáveis (contando individualmente cada elemento dos vetores). 3.5 A Barra de Status Situada na parte inferior da tela, esta barra contém dois painéis: o primeiro mostra a linha e a coluna onde o cursor está, e o segundo mostra a palavra Modificado no caso em que o pseudocódigo tenha sido alterado desde que foi carregado ou salvo pela última vez. Nesta barra, há ainda um terceiro painel disponível, que ainda não tem um uso específico na atual versão. 4. Estruturas de Seleção 4.1 Estrutura simples Uma estrutura de seleção vai analisar se uma dada seqüência de comandos será ou não executada. Sintaxe: estrutura simples SE (expressão lógica) ENTAO Seqüência de comandos FIMSE A seqüência de comandos só será executada se a expressão lógica for verdadeira, se for falsa a referida seqüência não é executada e o sistema passa a executar o comando seguinte ao comando SE. Ex.: Elaborar um algoritmo que leia 2 valores e imprima a sua soma caso o resultado seja igual ou superior a 15. Algoritmo “condição simples” Var a, b, soma : inteiro Inicio Escreva (“Entre com dois valores”) 12
  • 13. Algoritmo e Programação de Computadores Leia (a) Leia (b) Soma <- a + b Se (soma >= 15) entao Escrever soma Fimse Fimalgoritmo 4.2 Estrutura Composta Sintaxe: estrutura composta SE (expressão lógica) ENTAO Seqüência de comandos 1 SENAO Seqüência de comandos 2 FIMSE A seqüência de comandos 1 só será executada se a expressão lógica for verdadeira, se for falsa, será executada a seqüência de comandos 2. Ex.: Elaborar um algoritmo que leia dois números inteiros, efetuar a soma desses números, se o resultado for maior que 10, multiplique o resultado por 2, caso contrário multiplique o resultado por 3. Exiba os resultados encontrados. Algoritmo “Condição composta” Var a, b, soma : inteiro Inicio Escreva (“Entre com dois valores”) Leia (a) Leia (b) Soma <- a + b Se (soma > 10) entao Escreva soma*2 Senao Escreva soma*3 Fimse Fimalgoritmo 4.3 Comando de seleção múltipla Sintaxe: escolha <expressão-de-seleção> caso <exp11>, <exp12>, ..., <exp1n> <seqüência-de-comandos-1> caso <exp21>, <exp22>, ..., <exp2n> <seqüência-de-comandos-2> outrocaso <seqüência-de-comandos-extra> fimescolha Comentário: Cada comando ESCOLHA poderá conter uma lista de mais de um procedimento CASO <expressão>, e apenas um dos <bloco-de-comandos...> será executado caso seja satisfeita a condição <expressão> ou, se nenhuma condição for satisfeita, OUTROCASO será executado. 13
  • 14. Algoritmo e Programação de Computadores Exemplo: Fazer um algoritmo para ler um valor numérico. Se este valor for igual a 1 então imprimir o valor lido, se o valor for igual a 2 então imprimir o seu dobro, se o valor for igual a 3 então imprimir o seu triplo e se o valor for igual a 4 então imprimir o seu quádruplo. algoritmo "escolha" var val : inteiro inicio leia (val) escolha val caso 1 escreva ("simples = ",val) caso 2 escreva ("dobro = ",val*2) caso 3 escreva ("triplo = ",val*3) caso 4 escreva ("quadruplo = ",val*4) outrocaso escreva ("outro caso ", val) fimescolha fimalgoritmo Exercícios 1. Um hotel cobra R$ 60,00 a diária e mais uma taxa de serviços. A taxa de serviços é de: - R$ 5,50 por diária, se o número de diárias for maior que 15; - R$ 6,00 por diária, se o número de diárias for igual a 15; - R$ 8,00 por diária, se o número de diárias for menor que 15; Construa um algoritmo que mostre o nome a conta de um cliente. 2. Entrar com o salário de uma pessoa e imprimir o desconto do INSS segundo a tabela abaixo: - menor ou igual a R$ 600,00 - isento - maior que R$ 600,00 e menor ou igual a R$ 1200,00 - 20% - maior que R$ 1200,00 e menor ou igual a R$2000,00 - 25% - maior que R$ 2000,00 - 30% 3. Faça um algoritmo que possa imprimir o menu abaixo: O usuário deverá selecionar uma das opções, digitando um número 1 – solteiro(a) e este deverá escrever o estado civil da pessoa. Emitir mensagem 2 – desquitado(a) de erro caso seja escolhida uma opção inexistente. 3 – casado(a) 4 – divorciado(a) 5 – viúvo(a) OPCAO: Antes de começar a programar é preciso entender bem o enunciado do problema. Leia-o várias vezes, se necessário. 14
  • 15. Algoritmo e Programação de Computadores 5. Estruturas de Repetição Todo o algoritmo que possui um ou mais de seus passos repetidos um determinado número de vezes denomina-se algoritmos de repetição. 5.1 Variável Contador É uma variável que recebe um valor inicial (geralmente 0) e é incrementado em algum passo do algoritmo, de um valor constante (geralmente 1). Ex.: cont <- 0 //Atribuição de um valor para a variável cont . . . cont <- cont + 1 //Incremento de 1 para a variável cont 5.2 Variável Acumulador: É uma variável que recebe um valor inicial (geralmente 0) e é incrementada em algum outro passo do algoritmo, de um valor variável. Ex.: acum <- c . . . acum <- acum + v Onde v é uma variável qualquer e c é uma constante que geralmente é zero. A diferença básica entre uma variável contador e uma variável acumulador está no valor do incremento, que no caso do contador é um valor constante e no caso do acumulador é um valor variável. 5.3 Comando ENQUANTO FACA (repetição com teste no início) Este comando faz com que o conjunto de instruções colocado no seu interior, seja repetido enquanto o valor da expressão lógica for verdadeiro. ENQUANTO <expressão lógica ou relacional> FACA bloco de comandos FIMENQUANTO Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes. Algoritmo “enquanto..faca” Var x, r, cont : inteiro Inicio cont <- 1 enquanto cont <= 5 faca leia (x) r <- x * 3 escreva (r) cont <- cont + 1 fimenquanto Fimalgoritmo 15
  • 16. Algoritmo e Programação de Computadores 5.4 Repetição controlada pelo usuário algoritmo”repetição controlada” var x, r : inteiro resp : caracter inicio resp <- “sim” enquanto (resp = “sim”) ou (resp = “s”) ou (resp = “S”) faca leia (x) r <- x * 3 escreva (r) escreva (“deseja continuar (sim / não)?”) leia (resp) fimenquanto fimalgoritmo 5.5 Exercícios 1. Elaborar um algoritmo que efetue o calculo do fatorial do número 5. 2. Faça um algoritmo para apresentar o total da soma dos cinco primeiros números inteiros. 3. Desenvolva os algoritmos abaixo utilizando o comando FACA ENQUANTO a) Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 0 a 20. Para verificar se o número é ímpar, efetuar dentro da malha a repetição desta condição com a instrução SE, perguntando se o número é ímpar; sendo, mostre-o, não sendo, passe para o próximo passo. b) Faça um algoritmo que apresente todos os valores numéricos inteiros pares situados na faixa de 100 a 200. c) Apresentar o total da soma obtido dos cem primeiros números inteiros (1+2+3+4+...98+99+100). d) Apresentar as potências de 3 variando de 0 a 15. Deve ser considerado que qualquer número elevado a zero é 1, e elevado a um é ele próprio. Deverá ser apresentado, observando a seguinte definição: 30 = 1 31 = 3 32 = 9 (...) 315 = 14348907 5.6 Comando PARA..FACA O comando PARA PROXIMO é uma estrutura de repetição que repete a execução de uma dada seqüência de comandos um número de vezes determinado pelo próprio programa. Sintaxe: para <variável> de <valor inicial> ate <valor final> [passo] faca <lista de comandos> fimpara Onde: <variável> Representa a variável que controlará o processo de repetição. <valor inicial> Consiste do valor inicial que deverá ser assumido pela variável de controle. <valor final> Constitui-se do valor final da variável de controle. <passo> Representa qual o incremento que deve ser sofrido pela variável de controle. 16
  • 17. Algoritmo e Programação de Computadores Ex.: Pedir a leitura de um valor para a variável X, multiplicar este valor por 3, implicando-o à variável de resposta R e apresentar o valor de R obtido, repetindo esta seqüência por 5 vezes. Algoritmo “para..faca” var x, r, i : inteiro inicio para i de 1 ate 5 passo 1 faca //incrementa i de 1 em 1 leia (x) r <- x * 3 escreva (r) fimpara fimalgoritmo 5.7 Exercícios: Utilize o comando PARA PROXIMO 4. Elaborar um algoritmo que efetue o cálculo do fatorial do número 5. 5. Apresentar todos os valores numéricos inteiros ímpares situados na faixa de 1000 a 1500. 6. Apresentar o total da soma obtido de N números inteiros. 7. Apresentar o fatorial de um número qualquer. 8. Elaborar um algoritmo que apresente no final, o somatório dos valores pares existentes entre 10 até 20. 9. Elabore um algoritmo que, utilizando as duas estruturas de repetição, imprima a tabuada do 5. 10. Escrever um algoritmo que gera e escreve os números ímpares entre 100 e 200. 11. Escrever um algoritmo que lê 10 valores, um de cada vez, e conta quantos deles estão no intervalo [10,20] e quantos deles estão fora deste intervalo, escrevendo estas informações. 12. Escrever um algoritmo que lê um número não conhecido de valores, um de cada vez, e conta quantos deles em cada um dos intervalos [0,25], (25,50], (50,75], (75,100]. 13. Faça o teste de mesa para os trechos de algoritmos a seguir: Trecho 1 A <- 1 Trecho 3 S <- 0 A <- 1 Enquanto A < 5 faca B <- 4 S <- S + A S <- 0 A <- A + 2 Enquanto A <= 6 faca Fimenquanto Se A <= B entao S <- S + A * B Senao S <- S + A * B Fimse A <- A + 1 Trecho 2 B <- B - 1 A <- 1 Fimenquanto N <- 0 S <- 0 Trecho 4 Enquanto S < 12 faca Para G de 1 ate 5 passo 1 faca S <- S + A C <- 0 A <- A + 1 Enquanto C < G faca N <- N + 1 C <- C + 1 Fimenquanto Fimenquanto Fimpara 14. Faça um algoritmo que imprima todos os números pares compreendidos entre 85 e 907. O algoritmo deve também calcular a soma destes valores. 15. Construa um algoritmo que verifique se um número fornecido pelo usuário é primo ou não. 16. Construa um algoritmo que leia três valores inteiros e os coloque em ordem crescente. 17
  • 18. Algoritmo e Programação de Computadores 17. Para os funcionários de uma empresa, construir um algoritmo que, determine qual sexo que apresenta maior média salarial. 18. A série de Fibonacci é formada pela seguinte seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55...etc. Escreva um algoritmo que gere a série de Fibonacci até o vigésimo termo. 19. Construa um algoritmo que, para cada grupo de 50 valores inteiros, determine: a. A soma dos números positivos; b. A quantidade de valores negativos. 20. Construir um algoritmo que tome como entrada, N números inteiros, e mostre o menor deles. 21. Foi feita uma pesquisa com um grupo de alunos de uma universidade, onde se perguntou para cada aluno, o número de vezes que utilizou o restaurante da universidade, no último mês. Construa um algoritmo que determine: a. O percentual de alunos que utilizaram menos que 10 vezes o restaurante. b. O percentual de alunos que utilizaram entre 10 e 15 vezes. c. O percentual de alunos que utilizaram o restaurante acima de 15 vezes. 22. Considere que em uma eleição para prefeito, concorrem três candidatos. Cada candidato é identificado pó um número inteiro (1,2,3). Em uma pesquisa eleitoral, perguntou-se a cada entrevistado, em quem votaria na próxima eleição para prefeito. Cada entrevistado deu seu voto conforme abaixo: 1,2 ou 3 : voto para os respectivos candidatos; 4 : voto nulo; 5 : indeciso; Faça um algoritmo que calcule e escreva: a. Percentual de votos de cada candidato; b. Percentual de eleitores indecisos. 23. A conversão de graus Fahrenheit para centígrados é obtida pela fórmula C=5/9(F-32). Escreva um algoritmo que calcule e escreva uma tabela de graus centígrados em função de graus Fahenheit que variem de 50 a 150 de 1 em 1. 18
  • 19. Algoritmo e Programação de Computadores 6. Fluxograma O fluxograma é uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações distintas. É composto de um conjunto de símbolos pré-definidos. Simbologia básica: Terminal: símbolo utilizado para indicar inicio/fim do fluxo do programa. Seta de fluxo de dados: indica o sentido do fluxo de dados. Conecta os símbolos ou blocos existentes. Teclado: indica a entrada de dados recebidas ou fornecidas de ou por um computador. Display: símbolo utilizado para exibir informações no vídeo ou monitor. Processamento: símbolo ou bloco utilizado para indicar cálculos a efetuar, atribuições de valores ou qualquer manipulação de dados que tenha bloco específico para sua descrição Condição: indica uma condição, podendo resultar em uma resposta verdadeira ou falsa. Repetição: símbolo utilizado para repetir uma determinada seqüência do programa. Conector: utilizado quando é necessário particionar o diagrama. Conector: indica a conexão do fluxo em outra página. Obs.: Existem vários outros símbolos, cada qual com seu significado e função. Para esta disciplina utilizaremos os indicados na lista acima com suas respectivas variações (quando houver). 19
  • 20. Algoritmo e Programação de Computadores 7. Palavras reservadas As palavras reservadas não podem ser usadas como identificador de variáveis, ou seja, não podem ser declaradas como variáveis. PALAVRAS RESERVADAS aleatório e grauprad passo abs eco inicio pausa algoritmo enquanto int pi arccos entao interrompa pos arcsen escolha leia procedimento arctan escreva literal quad arquivo exp log radpgrau asc faca logico raizq ate falso logn rand caracter fimalgoritmo maiusc randi caso fimenquanto mensagem repita compr fimescolha minusc se copia fimfuncao nao sen cós fimpara numerico senao cotan fimprocedimento numpcarac timer cronometro fimrepita ou tan debug fimse outrocaso verdadeiro declare função para xou 20
  • 21. Algoritmo e Programação de Computadores 8. Referências Bibliográficas - CRESPO, SÉRGIO; EVARISTO, JAIME; aprendendo a Programar, programando numa linguagem algorítmica executável (ILA), Book Express, Rio de Janeiro, 2000. - FARRER, H. et al. Programação estruturada e computadores: algoritmos estruturados. Rio de Janeiro: LTC, 1989. - FORBELLONE, A. L. V.; EVERSPACHER, H. F. Lógica de Programação: a construção de Algoritmos e Estrutura de Dados. São Paulo: Makron Books, 1993. - GUIMARÃES, A.; LAGES, N. Algoritmos e estrutura de dados. Rio de Janeiro: LTC, 1985. - MANZANO, J. A. Estudo Dirigido de Algoritmos. São Paulo: Érica, 1997. - OLIVEIRA, A. B. Introdução à Programação: algoritmos. Florianópolis: Bookstore, 1999. - SALVETI, D. D. Algoritmos. São Paulo: Makron Books, 1998. - WIRTH, N. Algoritmos e Estrutura de Dados. Rio de Janeiro: Prentice-Hall, 1989. 21