Professional Documents
Culture Documents
joa@deinfo.ufrpe.br
REFERNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson Fidalgo (UFPE) www.xiscanoe.org
Bata a margarina, as gemas e o acar at ficar Quanto tempo?!? cremoso Junte o leite, o coco e a farinha e continue batendo De uma vez s?!? Acrescente o fermento e, por ltimo, as claras em neve Quanto tempo?!? Unte uma forma com manteiga e leve ao forno para assar
Cola especial para plsticos Estilete Lixas finas Durex ou fita crepe Pregador de roupas, elsticos
Abre porta-malas
Sim
Acessrios OK? Pega tringulo
No
Fecha porta-malas
...
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)
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
MASLOW
A tarefa de programar sistemas computacionais envolve o exerccio constante da abstrao da realidade e sua codificao em uma linguagem de programao
Abstrao
Realidade
Sistema Computacional
Sistema Computacional
Sistema Computacional
Software Hardware
Peopleware
Sada
Dispositivo de Sada
UCP Memria
Sada
Dispositivo de Sada
UCP Memria
6,8
(6 + 8) / 2
Sada
Dispositivo de Sada
UCP Memria
Ana, 5, 3
Ana, reprovado
Linguagem de Mquina
0010 0001 1110 LOAD R1, val1 0010 0010 1111 LOAD R2, val2 0001 0001 0010 ADD R1, R2 0011 0001 1111 STORE R1, val2
(1) (2)
(3)
Noes de Lgica
Exemplos de aplicao da lgica
O quarto est fechado e que meu livro est no quarto. Ento, preciso primeiro abrir o quarto para pegar o livro
Rosa me de Ana, Paula filha de Rosa, Jlia filha de Ana. Ento, Jlia neta de Rosa e sobrinha de Paula Todo mamfero animal e todo cavalo mamfero. Ento, todo cavalo animal Todo mamfero bebe leite e o homem bebe leite. Ento, todo homem mamfero e animal (mas no um cavalo)
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
Proposio: um enunciado verbal, ao qual deve ser atribudo, sem ambigidade, um valor lgico verdadeiro (V) ou falso (F). Exemplos de proposies: Robson Fidalgo Professor (V) 3 + 5 = 10 (F) 5 < 8 (V) Contra-exemplos de Proposies: Onde voc vai ? 3+5 Os estudantes jogam vlei. (quais ?)
Noes de Lgica
Operaes Lgicas: so usadas para formar novas proposies a partir de proposies existentes. Considerando p e q duas proposies genricas, pode-se aplicar as seguintes operaes lgicas bsicas sobre elas
Significado No E OU
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
Exemplos de aplicao das operaes lgica (Cont.) Considere: p = 7 primo = (V) q = 4 impar = (F) Ento: 7 primo OU 4 NO impar = p v ~q = (V v (~F)) = (V v V) = (V) 7 primo OU 4 impar = p v q = (V v F) = (V) 4 impar OU 7 primo = q v p = (F v V) = (V) 4 impar OU 7 NO primo = q v ~p = (F v (~V)) = (F v F ) = (F)
Noes de Lgica
Exemplos de aplicao das operaes lgica Resumindo: p q ~p p^q pvq
V V F F V F V F F F V V V F F F V V V F
Atividade 2
Considerando p = V e q = F, resolva as seguintes expresses lgicas ~p ~q p^q pvq (~p) ^ q (~p) v q p ^ (~q) p v (~q) (~p) ^ (~q) (~p) v (~q)
RESPOSTAS - Atividade 2
Considerando p = V e q = F, resolva as seguintes expresses lgicas ~p = F ~q = V p^q=F pvq=V (~p) ^ q = F (~p) v q = F p ^ (~q) = V p v (~q) = V (~p) ^ (~q) = F (~p) v (~q) = V
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
Seqncia Incio/Fim
Define uma estrutura onde as instrues sero executadas na ordem que aparecem. Seleo Se-Ento/Seno Define uma estrutura condicional que dada a sua avaliao (V ou F) determina qual caminho do algoritmo ser executado
Incio
1. Tirar o fone do gancho; 2. Ouvir o sinal de linha;
3. Introduzir o carto;
4. Teclar o nmero desejado; 5. Conversar;
6. Desligar;
7. Retirar o carto; Fim.
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
Fim
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
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]; open NEW, $file; 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; for ($i=0; $i<length($_); $i++) { $numero_total++; if (uc(substr($_,$i,1)) eq "C" ) { $numero_c++; } if (uc(substr($_,$i,1)) eq "G") { $numero_g++; } }
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)
leia a idade de um nadador e exiba sua categoria segundo as regras: A(5 at 7); B(8 at 10); C(11 at 13); D(14 at 18) e E( Idade > 18)
5) leia dois nmeros inteiros, uma operao matemtica (+,-,*,/) e faa o calculo destes nmeros segundo a operao lida
6) leia o nome e a idade de trs pessoas e informe o nome da pessoa mais velha e o nome da pessoa mais nova. Considere que no existem idades iguais
8) leia trs nmeros e mostre-os em ordem crescente 9) leia uma milhar e informe se esse nmero palndromo. Exemplos de nmeros palndromos: 9889, 7337 e 2002
10) leia um nmero inteiro entre 20 e 59 e mostre seu extenso. Exiba um erro se o nmero estiver fora do intervalo
AMBIENTES/LINGUAGENS DE PROGRAMAO
LA
declare Var
PASCAL
Begin
End Char
Incio
Fim Caracter
Inteiro
Real Lgico Leia Escreva
Integer
Real Boolean Read Write
AMBIENTES/LINGUAGENS DE PROGRAMAO
LA
declare
C
{
} Char
Incio
Fim Caracter
Inteiro
Real Lgico Leia Escreva
Int
Double Boolean Scanf Printf
Prximos passos?
Praticar a leitura e entendimento de Algoritmos de sua rea de aplicao Aprender uma Linguagem de Programao para Computadores Programao!