Académique Documents
Professionnel Documents
Culture Documents
Algoritmos
e Programao para iniciantes
joa@deinfo.ufrpe.br
Quo cremoso?!?
Algoritmo Grfico-Textual
Informal
Identificao das peas
Algoritmo Grfico-Textual
Informal
Instrues
Leia e entenda as instrues antes de comear a
montagem
Lave as peas com gua e detergente. Na lavagem
sero removidos desmoldantes e sujeiras, que
dificultam a colagem e a pintura. Faa isto dentro de
uma bacia, para evitar perder peas pequenas, que
porventura se soltem
Encontre as peas que devem ser usadas na
primeira parte da montagem (figura do slide anterior)
Lixe as peas com cuidado eliminando as rebarbas
...
Abre porta-malas
Acessrios
OK?
No
Fecha
porta-malas
Sim
Pega tringulo
...
Algoritmo: CONCEITO
O que um ALGORITMO?
OBS.: No existe um algoritmo para
construir algoritmos
a criao de um algoritmo um exerccio de criatividade
(conhecimento) e experincia (tcnica e prtica)
O que Programao? =
ABSTRAO!
A realidade complexa
e rica em detalhes!
Abstrao
Realidade
O que voc abstrai dessa realidade?
Abstrao
O que abstrao?
Abstrao
Abstrao
=
Operao mental que
observa a realidade e
captura apenas os
aspectos relevantes
para um contexto
MASLO
W
Abstrao
Realidade
Abstrao
+
Programao
Sistema de Locadora de Veculo
Sistema Computacional
O que um
Sistema Computacional?
Sistema Computacional
Sistema
Computacional
Software
Hardware
Peopleware
Programao de Sistema
Computacional
A programao de um sistema computacional
pode ser resumida em 3 passos bsicos
Entrada
Dispositivo
de Entrada
Processamento
UCP
Memria
Sada
Dispositivo
de Sada
Programao de Sistema
Computacional
Exemplo 1 Exibir a mdia de dois nmeros
Entrada
Dispositivo
de Entrada
Processamento
UCP
Sada
Dispositivo
de Sada
Memria
6,8
(6 + 8) / 2
Programao de Sistema
Computacional
Exemplo 2 Exibir se o aluno est aprovado ou reprovado
Entrada
Dispositivo
de Entrada
Processamento
UCP
Sada
Dispositivo
de Sada
Memria
Ana, 5, 3
Se (5+3)/2>=7
aprovado
Seno
reprovado
Ana, reprovado
Linguagem
de
Mquina
Linguagem
Assembly
(Mnemnica)
Alto Nvel
Linguagem
de
Alto N vel
val2 = val1+val2
(2)
(3)
Noes de Lgica
Atividade 1 (10min)
Resolva os seguintes problemas de lgica
P1 Uma lesma deve subir um poste de 10m de
altura. De dia sobe 2m e noite desce 1m. Em
quantos dias atingir o topo do poste?
P2 - Trs gatos comem trs ratos em trs minutos.
Cem gatos comem cem ratos em quantos minutos?
P3 - O pai do padre filho do meu pai. O que eu sou
do Padre?
P4 - Se um bezerro pesa 75 kg mais meio bezerro,
quanto pesa um bezerro inteiro?
Atividade 1 (10min)
Resolva os seguintes problemas de lgica
P5 Qual o prximo nmero da seqncia
7,8,10,13,17,?
P6 Um pai de 80kg e suas 2 filhas (40kg cada),
precisam sair de uma ilha com um barco. Porm a
capacidade do barco de 80kg. Como faro para sair
da ilha?
P7 Usando uma jangada, um campons precisa
atravessar uma cabra, um leo e um fardo de capim
para a outra margem do rio. A jangada s tem lugar
para ele e mais outra coisa. O que ele deve fazer
para atravessar o rio com seus pertences intactos?
RESPOSTAS - Atividade 1
Respostas
R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros,
atinge o topo e evidentemente no desce 1 metro
R2 3 (trs) minutos
R3 Tio
R4 150 (cento e cinqenta) kg
R5 22
R6 Vo as duas filhas. Uma delas volta. O pai sai. A outra filha
volta. As duas filhas saem juntas.
R7 - Primeiro leve a cabra, volte e pegue o capim; deixe o capim
e leve a cabra de volta; deixe a cabra e leve o leo, depois s
voltar e pegar a cabra.
Noes de Lgica
Em Lgica um conceito importante
o de Proposio
Noes de Lgica
Noes de Lgica
Definindo a prioridade:
Usar parnteses Ex:((p v q)^(~q)) ou
Obedecer (~) > (^) > (v)
Noes de Lgica
Exemplos de aplicao das operaes lgica
Considere:
p = 7 primo = (V)
q = 4 impar = (F)
Ento:
4 NO impar = ~q = (~F) = (V)
7 NO primo = ~p = (~V) = (F)
7 primo E 4 NO impar = p ^ ~q = (V ^ (~F)) = (V ^ V) =
(V)
7 primo E 4 impar = p ^ q = (V ^ F) = (F)
4 impar E 7 primo = q ^ p = (F ^ V) = (F)
4 impar E 7 NO primo = q ^ ~p = (F ^ (~V)) = (F ^ F) =
(F)
Noes de Lgica
Noes de Lgica
Exemplos de aplicao das operaes lgica
Resumindo:
p
V
V
F
F
q
V
F
V
F
~p
F
F
V
V
p^q
V
F
F
F
pvq
V
V
V
F
Ou seja:
No (~) troca o valor lgico. Se F passa a ser V e vice-versa
E (^) s tem valor V quando as duas proposies forem V, basta
uma proposio ser F para o resultado ser F
OU (v) s tem valor F quando as duas proposies forem F, basta
uma proposio ser V para o resultado ser V
Atividade 2
RESPOSTAS - Atividade 2
O que
Programao
de computadores?
INSTRUES
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 torna-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 executados apenas se
<sentena> resultar em TRUE.
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 executados enquanto
<sentena> resultar em TRUE.
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>
<inicial> at <final> faa
<comandos>;
fim-para;
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
E se ...?
Um algoritmo
SEMPRE sofre melhorias sucessivas.
(Tcnica de refinamentos sucessivos)
Fluxogramas - Exemplo 1
Achar o valor da expresso: D = B2 - 4AC.
Incio
Ler A, B, C
D = B^2 - 4*A*C
Escrever D
Fim
Fluxogramas:
Exemplo 2
Achar o maior de
dois nmeros A e
B.
Incio
Ler A, B
Comparar
A com B
A=B
Escrever:
A e B iguais
A>B
Escrever:
A maior
Fim
A<B
Escrever:
B maior
Ler os valores de A, B e C
Calcular a expresso D = B2 - 4AC
Mostrar o resultado desse clculo
Pseudocdigo - Exemplo 1
Achar o valor da expresso: D = B2 - 4AC.
Incio
Declare A,B,C,D; { Declarao de variveis }
Leia(A,B,C);
D
B^2 - 4*A*C; { Operao de atribuio }
Escreva(D);
Fim.
Pseudocdigo - Exemplo 2
Achar o maior de dois nmeros A e B.
Incio
Declare A,B; { Declarao de variveis }
Leia(A,B);
Se A = B Ento Escreva(A e B iguais);
Seno Se A>B Ento Escreva(A maior);
Seno Escreva(B maior);
Fim-Se
Fim-Se
Fim.
Atividade 3
Reescreva corretamente o algoritmo abaixo
Algoritmo aprovao
Incio
1. Obter as 2 notas do aluno;
2. Repita
1. Se Mdia do aluno >=7, ento
1. Repita
1. Informar que o aluno est REPROVADO;
2. At Mdia < 7
2. Seno Mdia >= 7
1. Informar que o aluno est APROVADO;
3. At ltimo aluno;
Fim.
RESPOSTA - Atividade 3
Algoritmo aprovao
Incio
1. Repita
1. Obter as 2 notas do aluno;
2. Se Mdia do aluno >=7, ento
1. Informar que o aluno est APROVADO
3. Seno
1. Informar que o aluno est REPROVADO;
2. At ltimo aluno
Fim
#! /usr/bin/perl -w
my $file = $ARGV[0];
my $numero_g=0;
my $numero_c=0;
my $numero_total=0;
my $um=0;
while (<NEW>) {
if (/\>/) {
#
if ($um == 2) {
#
last;
#
}
#
$um++;
next;
}
print $_;
chomp;
UM EXERCCIO
Construa um algoritmo para escolher as
duas maiores laranjas de um balaio
Outros exerccios...
1) leia um nmero inteiro e mostre uma mensagem indicando se
este nmero par ou mpar, e se positivo ou negativo
2) leia quatro nmeros inteiros e encontre a mdia aritmtica
simples entre as que correspondem a nmeros pares. Lembrese que no pode haver diviso por zero
3) leia 4 notas, calcule a mdia dessas e escreva: Reprovado
(mdia < 5), Recuperao (mdia >= 5 e < 7) e Aprovado
(mdia >= 7)
mais exerccios...
4)
AMBIENTES/LINGUAGENS DE
PROGRAMAO
LA
PASCAL
declare
Var
Incio
Begin
Fim
End
Caracter
Char
Inteiro
Integer
Real
Real
Lgico
Boolean
Leia
Read
Escreva
Write
AMBIENTES/LINGUAGENS DE
PROGRAMAO
LA
declare
Incio
Fim
Caracter
Char
Inteiro
Int
Real
Double
Lgico
Boolean
Leia
Scanf
Escreva
Printf
Prximos passos?
Praticar a leitura e entendimento de
Algoritmos de sua rea de aplicao
Aprender uma Linguagem de
Programao para Computadores
Programao!