Apostila de Algoritmo by Mauricio

Embed Size (px)

DESCRIPTION

Apostila básica de Algoritmo e Lógica, para ser usada livremente

Citation preview

  • ALGORITMO E LGICA DE PROGRAMAO

  • I - Algoritmo ------------------------------------------------------------------------------------------------ 4 Conceito -------------------------------------------------------------------------------------------------- 4 Formas de Apresentao ------------------------------------------------------------------------------- 4

    Descrio narrativa ---------------------------------------------------------------------------------- 4 Fluxograma ------------------------------------------------------------------------------------------- 5 Pseudo cdigo, linguagem estruturada ou portugol ------------------------------------------ 7

    Dados ----------------------------------------------------------------------------------------------------- 7 Numricos --------------------------------------------------------------------------------------------- 7

    Inteiros ---------------------------------------------------------------------------------------------- 8 Reais ------------------------------------------------------------------------------------------------ 8

    Literais ------------------------------------------------------------------------------------------------- 8 Lgicos ------------------------------------------------------------------------------------------------ 8

    Constantes ------------------------------------------------------------------------------------------------ 9 Variveis ------------------------------------------------------------------------------------------------- 9

    Conceito ----------------------------------------------------------------------------------------------- 9 Declarao de Variveis -------------------------------------------------------------------------- 10 Tipos de Variveis --------------------------------------------------------------------------------- 10

    Inteira --------------------------------------------------------------------------------------------- 10 Real ----------------------------------------------------------------------------------------------- 10 Caracter ------------------------------------------------------------------------------------------- 10 Cadeia--------------------------------------------------------------------------------------------- 10 Lgico -------------------------------------------------------------------------------------------- 10

    Sintaxe ----------------------------------------------------------------------------------------------- 11 Expresses --------------------------------------------------------------------------------------------- 11

    Operadores aritmticos ---------------------------------------------------------------------------- 11 Precedncia das operaes ---------------------------------- Erro! Indicador no definido.

    Operadores relacionais ----------------------------------------- Erro! Indicador no definido. Quadro Verdade --------------------------------------------------------------------------------- 12

    Instrues-------------------------------------------------------------------------------------------- 12 Atribuio ---------------------------------------------------------------------------------------- 12 Entrada-------------------------------------------------------------------------------------------- 12 Sada ---------------------------------------------------------------------------------------------- 13

    Estruturas de Repetio --------------------------------------------------------------------------- 13 Repita at... -------------------------------------------------------------------------------------- 13 Faa enquanto... --------------------------------------------------------------------------------- 13 Para ... at... -------------------------------------------------------------------------------------- 14

    Estruturas de Deciso ------------------------------------------------------------------------------ 14

  • Se -------------------------------------------------------------------------------------------------- 14 Caso ----------------------------------------------------------------------------------------------- 15

    Vetores -------------------------------------------------------------------------------------------------- 15 Matrizes ------------------------------------------------------------------------------------------------ 15

    II - Lgica de Programao ----------------------------------------------------------------------------- 15

  • I - Algoritmo

    Conceito Algoritmo so os passos sequencias necessrios que, aplicado a um grupo de dados

    finitos, possibilita a obteno da soluo de um problema.

    Os algoritmos tambm esto presente fora da rea da informtica, seja nas tarefas

    comuns do dia a dia, seja em sala de aula, trabalho ou passeio.

    Sem que percebemos criamos, em nossa cabea, algoritmos para as tarefas mais banais

    da nossa vida, por exemplo atravessar a rua, trocar um pneu, abrir o carro, etc.

    Sem que organizemos os passos, na ordem correta, sequencialmente, no poderamos

    concluir determinada tarefa, tais como trocar uma lmpada... Ou se consegussemos,

    levaramos mais tempo, de forma mais cansativa.

    Por esse motivo aprender Algoritmo serve para facilitar e abreviar o trabalho na hora

    de criarmos, desenvolvermos uma aplicao web, que o foco deste curso.

    Formas de Apresentao Um algoritmo pode ser apresentado, ou representado, de trs formas: descrio

    narrativa, fluxograma e/ou linguagem estruturada.

    Descrio narrativa a descrio de todos os passos para a resoluo de um problema. Vamos trazer para

    a nossa realidade diria um algoritmo para fazer um bolo. Veja o exemplo abaixo:

    RECEITA DE BOLO

    Ingredientes: 1kg de farinha

    02 ovos

    02 colheres de sopa de manteiga

    01 xcara de acar

    01 xcara de leite

    Modo de fazer: Coloque em um vasilha todos os ingredientes e misture at obter uma massa homognea, em

    seguida pegue uma forma, unte a mesma com margarina e farinha, e despeje a massa obtida.

    Leve ao forno, pr-aquecido a 300, por 30min, na temperatura mdia.

  • Provavelmente, seguindo estes passos, o bolo, ao final do tempo previsto estar

    pronto. Mas observe que existem instrues que podem gerar dbias interpretaes para um

    leigo, por exemplo, quando se pede para colocar os ovos podemos usar as cascas?? Qual o

    tamanho da xcara??

    Fluxograma uma forma grfica de representar os passos lgicos para se alcanar a soluo de um

    algoritmo, problema.

    As figuras comumente usadas so as seguintes:

    Incio e Fim

    Deciso

    Entrada de dados

    Processamento

    Sada

  • Veja o exemplo abaixo, usando um Fluxograma para obter a soma de duas notas:

    Incio

    nota1, nota2, total: inteiro

    total = nota1+nota2

    total = 5

    total = 3 + 2

    Fim

  • Pseudo cdigo, linguagem estruturada ou portugol uma forma mais prxima da codificao sem a utilizao de uma linguagem

    especfica. O uso de uma linguagem estruturada permite uma viso mais precisa e sequencial

    dos passos para a realizao da tarefa.

    Quando usamos a linguagem estruturada devemos usar um verbo por frase, e criarmos

    instrues claras. Veja o exemplo abaixo para o algoritmo trocar lmpada:

    Algoritmo Trocar Lmpada

    Inicio

    Pegue uma escada;

    Posicione a escada embaixo da lmpada;

    Pegue uma lmpada nova;

    Suba na escada;

    Retire a lmpada velha;

    Coloque a lmpada nova;

    Fim.

    Abaixo o algoritmo para somar dois nmeros, descrito no item anterior:

    Algoritmo Somar Dois Nmeros

    Inicio

    Informe o Primeiro Numero

    Informe o Segundo Nmero

    Some o Primeiro Nmero com o Segundo Nmero

    Exiba o Total desta soma

    Fim

    Dados A definio de Dados bastante variada, mas quando aplicada a Tecnologia da

    Informao, dado qualquer elemento identificado em sua forma bruta, podendo ser um

    nmero, letra ou smbolo.

    Numricos Dados numricos so aqueles compreendidos entre os nmeros naturais (N), sendo

    representados por N = {0,1, 2, 3... }.

    Os dados numricos so subdivididos em Inteiros e Reais.

  • Inteiros

    um subconjunto dos nmeros naturais (N), so compreendidos entre - .... +,

    representados por Z = {-..., -3, -2,-1 ,0 , 1, 2, 3,.. }

    Reais O conjunto dos nmeros reais surge para designar a unio do conjunto dos nmeros

    racionais (Q = {1/2, 3/4, 0.25...}) e o conjunto dos nmeros irracionais (I = 2, 5, -8, 3.14).

    O conjunto dos nmeros reais assim representado: R = {Q + I+ Z+ N}, ou seja, so todos os

    nmeros negativos, positivos ou decimais.

    Literais So aqueles utilizados para representar textos, seja um nome, uma sigla. Este tipo de

    dado pode ser formado por um nico caracter at conjunto destes.

    Quando falamos em caracter (string) devemos compreender que so todos as letras

    maisculas ou minsculas, smbolos, sinais de pontuao e algarismos.

    Lgicos Os dados lgicos so utilizados para a tomada de deciso durante o processamento

    feito pelo computador, comum os dados lgicos serem referidos como dados booleanos,

    referncia feita ao matemtico George Boole, que deu nome a lgebra booleana.

    Este tipo de dado s pode assumir dois resultados: Falso ou Verdadeiro.

    Vamos exemplificar em portugus estruturado o algoritmo soma de dois nmeros com

    um teste para indicar se o resultado maior ou menor que cinco:

    Algoritmo Somar Dois Nmeros Testando o Resultado

    Inicio

    Informe o Primeiro Numero

    Informe o Segundo Nmero

    Some o Primeiro Nmero com o Segundo Nmero

    Se Total maior que Cinco

    Exiba o Total desta soma

    Seno

    Exiba a Mensagem: No maior do que cinco

    Fim

  • Demonstrando com a utilizao de fluxograma:

    Constantes So dados que assumem um valor fixo durante toda a execuo de um programa, so

    imutveis. Exemplo: nome = "Jos", idade = 30.

    Mais a frente iremos explicar as formas de declarar constantes e variveis.

    Variveis So estruturas de dados que podem mudar o contedo ao longo da execuo do

    aplicativo.

    Conceito So nomes que utilizamos para fazer referncia a uma determinada informao

    alocada na memria do computador.

    Todos os programas reservam, na memria do computador, espaos para armazenar

    dados ou informaes referente ao problema, seja um nome, sexo ou telefone.

  • Mas para que isso funcione devemos pedir que o computador reserve estas reas para

    nosso uso, e, durante a declarao de variveis em um programa, este espao ficar reservado.

    Declarao de Variveis A declarao de variveis feita sempre iniciada com um caracter alfabtico, sendo

    incorreto o uso de nmeros, espaos em brancos ou smbolos.

    aconselhvel usar nomes sugestivos na criao das variveis, sendo permitido o uso

    de underline ou hfen para separar partes do nome da varivel.

    Exemplos de declarao de variveis: nome, salarioBruto, data_nasc.

    Tipos de Variveis Quando vamos declarar uma varivel temos que ter em mente quais valores ela

    armazenar.

    Podemos atribuir as variveis os seguintes tipos:

    Inteira do tipo numrico inteiro, permite armazenar valores inteiros, positivos ou negativos.

    Exemplo: nr_dependentes.

    Real do tipo numrico real, permite armazenar valores reais; ou seja, valores com ponto

    decimal. Exemplo: salarioBruto.

    Caracter do tipo literal, permite armazenar um nico caractere, que pode ser uma letra,

    nmero, que no ser submetido a nenhuma operao matemtica, ou smbolo. . Exemplo:

    sexo (poder receber "M" ou "F").

    Cadeia Tambm do tipo literal, mas permite armazenar um grupo, ou cadeia, de caracteres,

    palavras, mensagens. Exemplo: nome.

    Lgico utilizado para armazenarmos valores lgicos, e receber apenas os valores Falso ou

    Verdadeiro.

  • Sintaxe Para definirmos uma varivel devemos obedecer a seguinte sintaxe:

    nome_da_variavel: tipo.

    Exemplos: nome: cadeia; salario, desconto: real; idade: inteiro; sexo: caracter;

    Expresses J sendo do nosso conhecimento a declarao de variveis, constantes, os tipos de

    dados armazenados em cada varivel, vamos avanar para o prximo tpico, que so

    expresses, mas para que o assunto flua, necessrio sabermos que, para criarmos uma

    expresso, temos que conhecer os operadores que podem ser utilizados na mesma.

    Expresses aritmticas So aquelas que retornaro um resultado, ou valor numrico, podendo ser do tipo

    Inteiro ou Real.

    Operadores aritmticos

    Operador Descrio Prioridade + Soma 3 - Subtrao 3 * Multiplicao 2 / Diviso 2

    mod Mdulo (Resto da diviso inteira) 2 + Operador unrio (sinal de mais) 1 - Operador unrio (sinal de menos) 1

    Expresses Lgicas So aquelas que o resultado s pode assumir um valor, VERDADEIRO ou FALSO.

    Operadores lgicos

    Operador Descrio Prioridade ou Ou lgico 3 e E lgico 2

    no No lgico 1

  • Operadores relacionais

    Operador Descrio > maior que < menor que

    >= maior ou igual a

  • Sada a forma como a informao exibida ao usurio.

    Sintaxe em pseudocdigo: Escreva "Digite a Quantidade"

    Leia qtde.

    Representao no fluxograma, ou diagrama de blocos:

    Estruturas de Repetio So comandos que, como o nome sugere, repete instrues 'n' vezes durante o

    processamento do aplicativo

    Repita at... Neste tipo de estrutura as aes ser executadas, no mnimo uma vez.

    Sintaxe:

    inicio

    instrues

    repita

    comando

    at que teste

    instrues

    fim

    Faa enquanto... Nesta estrutura o comando poder ser executado ou no, visto que o teste fica no incio

    do aplicativo.

    Sintaxe:

    inicio

    faa enquanto teste for verdadeiro

    "Digite a Quantidade:"

    qtde

  • comando

    fim do faa

    fim

    Para ... at... Este tipo de estrutura utiliza uma varivel de controle a qual determina o nmero de

    vezes que o comando ser repetido.

    A varivel inicial recebe um valor inicial (vi) e varia at um valor final, ou limite, (vf),

    sendo incrementada a cada passo, a cada volta e, quando atingir o valor final, cessa a

    execuo do comando.

    Sintaxe:

    inicio

    para de ate [passo ] faa

    comandos

    fimpara

    fim

    Estruturas de Deciso Como o nome sugere as Estruturas de Deciso permitem que o programa aja de uma

    forma especfica em resposta a uma solicitao do usurio, por exemplo, se a nota for superior

    a 7 a mensagem ser aprovado, seno, reprovado.

    Se O comando Se deve ser utilizado quando a execuo de uma ou mais instrues do

    programa depender de uma ou mais condies

    Sintaxe:

    inicio

    se (expresso lgica)

    comando em caso verdadeiro

    seno

    comando em caso falso

    fimse

    fim

    Se a expresso lgica que se encontra entre os parnteses for verdadeira, a instruo da

    linha subsequente ser executada; caso contrrio, no ser.

  • Caso Assim como o comando Se, o comando Escolha uma estrutura de deciso. Devemos

    utilizar o comando Escolha quando o programa tiver que escolher uma entre vrias

    alternativas para um determinado valor.

    Sintaxe:

    inicio

    escolha

    caso

    comandos-1>

    caso

    comandos-2

    ...

    outrocaso

    comando que ser executado por padro caso nenhuma das alternativas sejam verdadeiras fimescolha

    fim

    Vetores

    Matrizes

    II - Lgica de Programao

    I - AlgoritmoConceitoFormas de ApresentaoDescrio narrativaFluxogramaPseudo cdigo, linguagem estruturada ou portugol

    DadosNumricosInteirosReais

    LiteraisLgicos

    ConstantesVariveisConceitoDeclarao de VariveisTipos de VariveisInteiraRealCaracterCadeiaLgico

    Sintaxe

    ExpressesExpresses aritmticasOperadores aritmticos

    Expresses LgicasOperadores lgicosOperadores relacionaisQuadro Verdade

    InstruesEntradaAtribuioSada

    Estruturas de RepetioRepita at...Faa enquanto...Para ... at...

    Estruturas de DecisoSeCaso

    VetoresMatrizes

    II - Lgica de Programao