You are on page 1of 47

ALGORITMOS E

ESTRUTURAS DE DADOS I
Prof. Danielson Rodrigues

INSTRUES DE UM ALGORITMO

OBJETIVOS


Identificar os elementos de um algoritmo e/ou


fluxograma e utiliz-los corretamente na soluo de
um problema para posterior codificao de um
programa;

Construir algoritmos e fluxogramas;

Conceituar e utilizar corretamente os comandos de


programao da linguagem PASCAL.

INTRODUO


Para que exista comunicao necessrio estabelecer


padres e regras que podem ser:


falados, escritos,
smbolos.

desenhados

e/ou

representados

em

INTRODUO


Regras de comunicao

INTRODUO


Linguagem de Programao


A comunicao com o computador tambm feita atravs


de um conjunto de regras, originando a:
Linguagem de Programao!

Exemplos: Pascal, C, C++, Delphi, Java, etc.

INTRODUO


Programa exemplo em Pascal

INTRODUO


Definio de Programa


Programas so seqncias finitas de ordens que tm o


objetivo de resolver um problema, apresentar uma figura,
calcular valores, tomar ou auxiliar decises.

INTRODUO


Lgica de Programao


Para se programar em uma linguagem necessrio possuir


Lgica de Programao;

Lgica de Programao consiste em compreender


claramente os diversos passos e funes que so realizados
na execuo de um programa.

INTRODUO


Definio de Algoritmo


Algoritmo uma seqncia de instrues organizadas de


forma lgica e estruturada (sem desvios), expressas em
linguagem natural (Portugus estruturado), que tem por
finalidade resolver um problema ou descrever uma tarefa.

INTRODUO


Exemplo 1 - Escovar os dentes pela manh

INTRODUO


Exemplo 2 Trocar uma lmpada queimada

INTRODUO


Exemplo 3 Resolver Equao do 2 Grau

INTRODUO


Importante: abordar o mximo de detalhes em um


algoritmo.

No esquecer: como ser interpretado o que foi


escrito?

PROBLEMAS - ATRAVESSAR UM RIO




Na margem esquerda de um rio esto:


1 Pastor
 1 Lobo
 1 Cabra
 1 Repolho


Objetivo: Passar todos para a margem direita do rio,


sendo que:
O pastor s pode atravessar um passageiro de cada vez;
 Um Passageiro que devora o outro nunca podem estar
no mesmo local sem a presena do pastor.


PROBLEMAS DIVISO DE GUA






Inicialmente o recipiente de 8 litros est cheio e os demais


vazios;
Os recipientes no possuem escala de medio, sabe-se
apenas o volume total de cada;
Cada transferncia(entre os recipientes) deve ser feita no
volume total do recipiente receptor;
Ao final das transferncias o recipiente com capacidade
para 8 litros deve possuir apenas 4 litros de gua e o
recipiente de 5 litros deve possuir apenas 4 litros de gua.

PROBLEMAS DIVISO DE GUA




Soluo:

PROBLEMAS TORRE DE HANOI

Admita 3 bastes posicionados verticalmente lado a lado. No


primeiro basto 3 roldanas (1 pequena, 1 mdia e 1 grande).

Transferi-ls para o ltimo basto com as seguintes condies:


s possvel a retirada das roldanas pela parte superior do basto;
 s possvel retirar 1 roldana por vez;
 jamais pode ocorrer de uma roldana maior estar sobre uma menor;
 toda roldana que retirada de um basto tem que ser colocada em
outro basto antes da retirada da prxima.


PROBLEMAS TRANSPORTE CHINS




Transportar todos os elementos de um lado para


outro do rio, sendo que:







Somente o pai, a me e o policial sabem pilotar o barco;


A me no pode ficar sozinha com os filhos;
O pai no pode ficar sozinho com as filhas;
O prisioneiro no pode ficar sozinho com nenhum
integrante da famlia;
O barco s pode transportar duas pessoas por vez;
Voc pode ir e vir com as pessoas quantas vezes precisar.

PROBLEMAS TRANSPORTE CHINS

PROBLEMAS TRANSPORTE CHINS




Soluo

DVIDAS?

INSTRUES DELIMITADORAS


Servem para especificar o incio e o fim do algoritmo.


incio
...
fim

DECLARAO DE VARIVEIS


Utilizado para especificar os nomes e os respectivos


tipos das variveis necessrias no algoritmo
declare <variveis>: <tipo>;
onde:
<variveis> - lista de nomes de variveis separados por
vrgula
<tipo> - inteiro, real, caracter, string, lgico

DECLARAO DE VARIVEIS


Exemplos:
declare a,b,c: real;
declare nome: string;
declare sexo: caracter;
declare pratica_esporte: lgico;

BLOCO DE COMENTRIO


Serve para explicar um determinado trecho do


algoritmo, para torn-lo mais claro, facilitando seu
entendimento por outras pessoas ou posteriormente.
{ <comentrio> }
Exemplo:
{ Isto um exemplo de comentrio }

INSTRUO DE ENTRADA


Usada para ler dados de entrada do algoritmo.


leia(<variveis>);
onde:
<variveis> - contero os dados lidos.

INSTRUO DE ENTRADA


Exemplos:
leia(a,b,c);
leia(nome);
leia(sexo);
leia(pratica_esporte);

INSTRUO DE SADA


Usada para mostrar os resultados do processamento


dos dados de entrada.
escreva(<resultados>);
onde:
<resultados> - geralmente o contedo de uma ou mais
variveis com a resposta do problema.

INSTRUO DE SADA


Exemplos:
escreva(O valor de D : , D);
escreva(nome, sexo);
escreva(Pratica esporte.);

INSTRUO DE ATRIBUIO


Utilizado para atribuir um determinado valor a uma


varivel.
<varivel>
<expresso>;
onde:
<varivel> - nome de uma varivel
<expresso> - um valor do mesmo tipo da varivel ou uma
expresso lgica ou aritmtica.

INSTRUO DE ATRIBUIO


Exemplos
D
B^2-4*A*C;
nome
Paulo;
Pratica_Esporte
Sexo
M;

TRUE;

ESTRUTURAS DE CONTROLE


Baseado na lgica estruturada, Bohn e Jacopini


provaram que apenas trs estruturas so suficientes
para explicar a soluo de qualquer problema, inclusive
tornando-os estruturados e mais legveis.

ESTRUTURAS DE CONTROLE


So elas:


Estrutura Seqencial: os comandos ou instrues vo sendo


executados na ordem em que aparecem no algoritmo.

ESTRUTURAS DE CONTROLE


Estrutura de Repetio: comandos so executados


repetidas vezes at que uma condio de parada seja
satisfeita

ESTRUTURAS DE CONTROLE


Estrutura de Seleo: Conforme o resultado de uma


expresso
lgica,
determinados
comandos
so
executados e outros no, caracterizando assim uma
seleo de comandos

TRUE

FALSE

INSTRUES DE SELEO


Tipo simples:
se <sentena> ento
<comandos>;
fim-se
OBS.:
<comandos> sero
resultar em TRUE.

executados

apenas

se

<sentena>

INSTRUES DE SELEO


Exemplo:
se A>0 ento
B
A + 1;
A
0;
fim-se

INSTRUES DE SELEO


Tipo composto:
se <sentena> ento
<comandos1>;
seno
<comandos2>;
fim-se

OBS.:
<comandos1> sero executados apenas se
<sentena> resultar em TRUE. Em caso contrrio,
<comandos2> sero executados.

INSTRUES DE SELEO


Exemplo:
se A>B ento
B
A + 1;
A
0;
seno
A
0;
B
A + 1;
fim-se

INSTRUES DE REPETIO


Enquanto / Fim-Enquanto
enquanto <sentena> faa
<comandos>;
fim-enquanto;
OBS.:
<comandos> sero
resultar em TRUE.

executados

enquanto

<sentena>

INSTRUES DE REPETIO


Exemplo:
enquanto A>0 faa
leia(B);
escreva(B);
A
A - 1;
fim-enquanto;

INSTRUES DE REPETIO


Repita / At
repita
<comandos>;
at <sentena>;
OBS.:
<comandos> sero executados at que <sentena> resulte
em TRUE.

INSTRUES DE REPETIO


Exemplo:
repita
leia(B);
escreva(B);
A
A - 1;
at A<1;

INSTRUES DE REPETIO


Para / At / Fim-Para
para <varivel>
<comandos>;
fim-para;

<inicial> at <final> faa

OBS.:
<varivel> - contador do tipo inteiro
<inicial> - valor inicial da varivel
<final> - valor final da varivel

INSTRUES DE REPETIO


Exemplo:
{

Comandos para escrever 10 vezes uma frase na tela do


computador }

para i
1 at 10 faa
escreva(ltimo tipo de repetio);
fim-para;

ESTRUTURA DE UM ALGORITMO


Um algoritmo em Portugol tem a seguinte estrutura:


incio
<declarao de variveis>
<inicializao de variveis>
<corpo lgico do algoritmo>
fim

You might also like