Upload
mauricio-silveira
View
218
Download
0
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