SlideShare uma empresa Scribd logo
Conceitos Fundamentais de
Algoritmos
e Programação para iniciantes
joa@deinfo.ufrpe.br
REFERÊNCIA: Material dos Profs. Reinaldo Gomes
(UFRPE) e Robson Fidalgo (UFPE)
www.xiscanoe.org
Algoritmo Textual Informal
• Modo de preparo:
– Bata a margarina, as gemas e o açúcar até ficar
cremoso
– Junte o leite, o coco e a farinha e continue
batendo
– Acrescente o fermento e, por último, as claras em
neve
– Unte uma forma com manteiga e leve ao forno
para assar
Quão cremoso?!?
De uma vez só?!?
Quanto tempo?!?
Quanto tempo?!?
• Modo de preparo:
– Bata a margarina, as gemas e o açúcar por 15
minutos
– Junte o leite, o coco e a farinha e continue
batendo por mais 15 minutos
– Acrescente 20 g de fermento e, por último, as
claras em neve
– Unte uma forma com manteiga e leve ao forno
para assar por 30 minutos
Algoritmo Textual Informal
Refinado
Algoritmo Gráfico-Textual Informal
• Montagem de um Aeromodelo
– Material
• Cola especial para plásticos
• Estilete
• Lixas finas
• Durex ou fita crepe
• Pregador de roupas, elásticos
• Identificação das peças
Algoritmo Gráfico-Textual
Informal
• Instruções
– Leia e entenda as instruções antes de começar a
montagem
– Lave as peças com água e detergente. Na lavagem
serão removidos desmoldantes e sujeiras, que
dificultam a colagem e a pintura. Faça isto dentro de
uma bacia, para evitar perder peças pequenas, que
porventura se soltem
– Encontre as peças que devem ser usadas na
primeira parte da montagem (figura do slide anterior)
– Lixe as peças com cuidado eliminando as rebarbas
– ...
Algoritmo Gráfico-Textual
Informal
• Troca de pneu
“Abra o porta-mala e verifique se todos
acessórios estão lá. Em caso negativo,
feche o porta-malas e peça carona a
alguém. Em caso positivo, retire o
triângulo, posicione-o a cerca de 30 m do
carro, e, depois, retire o estepe e o macaco.
Levante o carro... “
Algoritmo Textual Informal 2
• Troca de pneu
Algoritmo Gráfico Informal
Acessórios
OK?
Abre porta-malas
Pega triângulo
Fecha
porta-malas
• Troca de pneu (Fluxograma)
Algoritmo Gráfico Semi-formal
Não
Sim
• Troca de pneu
abre(porta_malas)
Se acessorio_ok = FALSO
Então
fecha(porta_malas)
espera_carona()
Senão
pega_triangulo()
...
Algoritmo Textual Formal
• Problema da Torre de Hanói
– Seja a seguinte situação:
• deve-se mover todos os discos do primeiro eixo para o
terceiro mantendo-se a ordem original
• em cada movimento, pode-se mover apenas um disco
• um disco nunca poderá ser sobreposto por outro maior
Algoritmo: Problemas Complexos
• Passo 1:
mova disco menor para terceiro eixo
Algoritmo: Problemas Complexos
• Passo 2:
mova disco médio para segundo eixo
Algoritmo: Problemas Complexos
• Passo 3:
mova disco menor para segundo eixo
Algoritmo: Problemas Complexos
• Passo 4:
mova disco maior para terceiro eixo
Algoritmo: Problemas Complexos
• Passo 5:
mova disco menor para primeiro eixo
Algoritmo: Problemas Complexos
• Passo 6:
mova disco médio para terceiro eixo
Algoritmo: Problemas Complexos
• Passo 7:
mova disco menor para terceiro eixo
Algoritmo: Problemas Complexos
• Seqüência de passos completa:
Passo 1: mova disco menor para terceiro eixo
Passo 2: mova disco médio para segundo eixo
Passo 3: mova disco menor para segundo eixo
Passo 4: mova disco maior para terceiro eixo
Passo 5: mova disco menor para primeiro eixo
Passo 6: mova disco médio para terceiro eixo
Passo 7: mova disco menor para terceiro eixo
Algoritmo: Problemas Complexos
Algoritmo: CONCEITO
• O que é um ALGORITMO?
• OBS.: Não existe um algoritmo para
construir algoritmos
– a criação de um algoritmo é um exercício de criatividade
(conhecimento) e experiência (técnica e prática)
O que é Programação? =
ABSTRAÇÃO!
A realidade é complexa
e rica em detalhes!
Abstração
RealidadeRealidade
O que vocêO que você abstraiabstrai dessa realidade?dessa realidade?
Abstração
O que é abstração?
Abstração
Abstração
=
Operação mental que
observa a realidade e
captura apenas os
aspectos relevantes
para um contexto
MASLOW
• A tarefa de programar
sistemas computacionais
envolve o exercício
constante da abstração da
realidade e sua codificação
em uma linguagem de
programação
Abstração
RealidadeRealidade
Sistema de Locadora de VeículoSistema de Locadora de Veículo
AbstraçãoAbstração
++
ProgramaçãoProgramação
Sistema Computacional
O que é um
Sistema Computacional?
Sistema Computacional
Sistema
Computacional
Software
Hardware
Peopleware
Programação de Sistema
Computacional
• A programação de um sistema computacional
pode ser resumida em 3 passos básicos
ProcessamentoEntrada Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
Programação de Sistema
Computacional
• Exemplo 1 – Exibir a média de dois números
ProcessamentoEntrada Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
6 , 8 (6 + 8) / 2 7
Programação de Sistema
Computacional
• Exemplo 2 – Exibir se o aluno está aprovado ou reprovado
ProcessamentoEntrada Saída
Dispositivo
de Entrada
Dispositivo
de Saída
Memória
UCP
Ana, 5, 3 Se (5+3)/2>=7
aprovado
Senão
reprovado
Ana, reprovado
Programação de Sistema Computacional
• Tipos de Linguagens de Programação
– 1 - Totalmente codificadas em binário (0´s e 1´s)
– 2 - Usa instruções simbólicas para representar os 0´s e 1´s
– 3 - Voltadas para facilitar o raciocínio humano
Linguagem
Assembly
(Mnemônica)
LOAD R1, val1
LOAD R2, val2
ADD R1, R2
STORE R1, val2
Linguagem
de
Máquina
0010 0001 1110
0010 0010 1111
0001 0001 0010
0011 0001 1111
Linguagem
de
Alto Nível
val2 = val1+val2
Baixo Nível Alto Nível
(1) (2) (3)
Noções de Lógica
• Exemplos de aplicação da lógica
– O quarto está fechado e que meu livro está no quarto. Então,
preciso primeiro abrir o quarto para pegar o livro
– Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana.
Então, Júlia é neta de Rosa e sobrinha de Paula
– Todo mamífero é animal e todo cavalo é mamífero. Então, todo
cavalo é animal
– Todo mamífero bebe leite e o homem bebe leite. Então, todo
homem é mamífero e animal (mas não é um cavalo)
Atividade 1 (10min)
• Resolva os seguintes problemas de lógica
– 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 - Três gatos comem três ratos em três 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 lógica
– P5 – Qual o próximo número da seqüência
7,8,10,13,17,?
– P6 – Um pai de 80kg e suas 2 filhas (40kg cada),
precisam sair de uma ilha com um barco. Porém a
capacidade do barco é de 80kg. Como farão para sair
da ilha?
– P7 – Usando uma jangada, um camponês precisa
atravessar uma cabra, um leão 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 não desce 1 metro
– R2 – 3 (três) minutos
– R3 – Tio
– R4 – 150 (cento e cinqüenta) kg
– R5 – 22
– R6 – Vão 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 leão, depois é só
voltar e pegar a cabra.
Noções de Lógica
Em Lógica um conceito importante
é o de “Proposição”
Você sabe o que é uma
PROPOSIÇÃO?
Noções de Lógica
• Proposição: é um enunciado verbal, ao qual deve ser atribuído,
sem ambigüidade, um valor lógico verdadeiro (V) ou falso (F).
– Exemplos de proposições:
• Robson Fidalgo é Professor (V)
• 3 + 5 = 10 (F)
• 5 < 8 (V)
– Contra-exemplos de Proposições:
• Onde você vai ?
• 3 + 5
• Os estudantes jogam vôlei. (quais ?)
Noções de Lógica
• Operações Lógicas: são usadas para formar novas proposições a
partir de proposições existentes.
– Considerando p e q duas proposições genéricas, pode-se
aplicar as seguintes operações lógicas básicas sobre elas
– Definindo a prioridade:
• Usar parênteses Ex:((p v q)^(~q)) ou
• Obedecer (~) > (^) > (v)
Noções de Lógica
• Exemplos de aplicação das operações lógica
– Considere:
• p = 7 é primo = (V)
• q = 4 é impar = (F)
– Então:
• 4 NÃO é impar = ~q = (~F) = (V)
• 7 NÃO é primo = ~p = (~V) = (F)
• 7 é primo E 4 NÃO é 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 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) =
(F)
Noções de Lógica
• Exemplos de aplicação das operações lógica (Cont.)
– Considere:
• p = 7 é primo = (V)
• q = 4 é impar = (F)
– Então:
• 7 é primo OU 4 NÃO é 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 NÃO é primo = q v ~p = (F v (~V)) = (F v
F ) = (F)
Noções de Lógica
• Exemplos de aplicação das operações lógica
– Resumindo:
– Ou seja:
• Não (~) troca o valor lógico. Se é F passa a ser V e vice-
versa
• E (^) só tem valor V quando as duas proposições forem V,
basta uma proposição ser F para o resultado ser F
• OU (v) só tem valor F quando as duas proposições forem F,
basta uma proposição ser V para o resultado ser V
p q p ^ q p v q
V V V V
V F F V
F V F V
F F F F
~p
F
F
V
V
pp qq p ^ qp ^ q p v qp v q
VV VV VV VV
VV FF FF VV
FF VV FF VV
FF FF FF FF
~p~p
FF
FF
VV
VV
Atividade 2
• Considerando p = V e q = F, resolva as seguintes expressões
lógicas
– ~p
– ~q
– p ^ q
– p v q
– (~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 expressões
lógicas
– ~p = F
– ~q = V
– p ^ q = F
– p v q = V
– (~p) ^ q = F
– (~p) v q = F
– p ^ (~q) = V
– p v (~q) = V
– (~p) ^ (~q) = F
– (~p) v (~q) = V
Lógica de Programação &
Algoritmo
O que é
Programação
de computadores?
 INSTRUÇÕES
Instruções Delimitadoras
• Servem para especificar o início e o fim do
algoritmo.
início
...
fim
Declaração de Variáveis
• Utilizado para especificar os nomes e os
respectivos tipos das variáveis
necessárias no algoritmo
declare <variáveis>: <tipo>;
onde:
<variáveis> - lista de nomes de variáveis
separados por vírgula
<tipo> - inteiro, real, caracter, string, lógico
Declaração de Variáveis
• Exemplos:
declare a,b,c: real;
declare nome: string;
declare sexo: caracter;
declare pratica_esporte: lógico;
Bloco de Comentário
• Serve para explicar um determinado
trecho do algoritmo, para torna-lo mais
claro, facilitando seu entendimento por
outras pessoas ou posteriormente.
{ <comentário> }
Exemplo:
{ Isto é um exemplo de comentário }
Instrução de Entrada
• Usada para ler dados de entrada do
algoritmo.
leia(<variáveis>);
onde:
<variáveis> - conterão os dados lidos.
Instrução de Entrada
• Exemplos:
leia(a,b,c);
leia(nome);
leia(sexo);
leia(pratica_esporte);
Instrução de Saída
• Usada para mostrar os resultados do
processamento dos dados de entrada.
escreva(<resultados>);
onde:
<resultados> - geralmente é o conteúdo de uma
ou mais variáveis com a resposta do
problema.
Instrução de Saída
• Exemplos:
escreva(“O valor de D é: ”, D);
escreva(nome, sexo);
escreva(“Pratica esporte.”);
Instrução de Atribuição
• Utilizado para atribuir um determinado
valor a uma variável.
<variável> <expressão>;
onde:
<variável> - nome de uma variável
<expressão> - um valor do mesmo tipo da
variável ou uma expressão lógica ou
aritmética.
Instrução de Atribuição
• Exemplos
D B^2-4*A*C;
nome “Paulo”;
Pratica_Esporte TRUE;
Sexo ‘M’;
Estruturas de Controle
• Baseado na lógica estruturada, Bohn e
Jacopini provaram que apenas três
estruturas são suficientes para explicar a
solução de qualquer problema, inclusive
tornando-os estruturados e mais legíveis.
Estruturas de Controle
• São elas:
– Estrutura Seqüencial: os comandos ou
instruções vão sendo executados na ordem
em que aparecem no algoritmo.
Estruturas de Controle
• Estrutura de Repetição: comandos são
executados repetidas vezes até que uma
condição de parada seja satisfeita
Estruturas de Controle
• Estrutura de Seleção: Conforme o
resultado de uma expressão lógica,
determinados comandos são executados
e outros não, caracterizando assim uma
seleção de comandos
TRUE
FALSE
Instruções de Seleção
• Tipo simples:
se <sentença> então
<comandos>;
fim-se
OBS.:
<comandos> serão executados apenas se
<sentença> resultar em TRUE.
Instruções de Seleção
• Exemplo:
se A>0 então
B A + 1;
A 0;
fim-se
Instruções de Seleção
• Tipo composto:
se <sentença> então
<comandos1>;
senão
<comandos2>;
fim-se
OBS.:
<comandos1> serão executados apenas se
<sentença> resultar em TRUE. Em caso contrário,
<comandos2> serão executados.
Instruções de Seleção
• Exemplo:
se A>B então
B A + 1;
A 0;
senão
A 0;
B A + 1;
fim-se
Instruções de Repetição
• Enquanto / Fim-Enquanto
enquanto <sentença> faça
<comandos>;
fim-enquanto;
OBS.:
<comandos> serão executados enquanto
<sentença> resultar em TRUE.
Instruções de Repetição
• Exemplo:
enquanto A>0 faça
leia(B);
escreva(B);
A A - 1;
fim-enquanto;
Instruções de Repetição
• Repita / Até
repita
<comandos>;
até <sentença>;
OBS.:
<comandos> serão executados até que
<sentença> resulte em TRUE.
Instruções de Repetição
• Exemplo:
repita
leia(B);
escreva(B);
A A - 1;
até A<1;
Instruções de Repetição
• Para / Até / Fim-Para
para <variável> <inicial> até <final> faça
<comandos>;
fim-para;
OBS.:
<variável> - contador do tipo inteiro
<inicial> - valor inicial da variável
<final> - valor final da variável
Instruções de Repetição
• Exemplo:
{ Comandos para escrever 10 vezes uma frase
na tela do computador }
para i 1 até 10 faça
escreva(“Último tipo de repetição”);
fim-para;
Estrutura de um Algoritmo
• Um algoritmo em Portugol tem a seguinte
estrutura:
início
<declaração de variáveis>
<inicialização de variáveis>
<corpo lógico do algoritmo>
fim
Lógica de Programação & Algoritmo
• Estruturas básicas de um algoritmo:
– Seqüência – Início/Fim
• Define uma estrutura onde as instruções serão
executadas na ordem que aparecem.
– Seleção – Se-Então/Senão
• Define uma estrutura condicional que dada a sua
avaliação (V ou F) determina qual “caminho” do
algoritmo será executado
– Repetição – Repita, Enquanto ou Para
• Define uma estrutura de iteração condicional (V ou
F) ou contada (pré-definida) de instruções
Lógica de Programação &
Algoritmo
• Algoritmo para ligar de um telefone público - Seqüência
Início
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o cartão;
4. Teclar o número desejado;
5. Conversar;
6. Desligar;
7. Retirar o cartão;
Fim.
Este algoritmo só usa uma
estrutura de seqüência
“Início/Fim”
Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone
público – Seleção
E se o telefone público estiver com defeito?
Início
1. Tirar o fone do gancho;
2. Se ouvir o sinal de linha, então
1. Introduzir o cartão;
2. Teclar o número desejado;
3. Conversar;
4. Desligar;
5. Retirar o cartão;
3. Senão
1. ir para o próximo telefone;
Fim.
Este algoritmo usa uma
estrutura de decisão
“Se-então/Senão”
Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone público – Repetição
E se o próximo telefone público também estiver com defeito?
Início
1. Repita
1. Tirar o fone do gancho;
2. Se ouvir o sinal de linha então
1. Introduzir o cartão;
2. Teclar o número desejado;
3. Conversar;
4. Desligar;
5. Retirar o cartão;
3. Senão
1. ir para o próximo telefone;
2. Até ouvir o sinal de linha
Fim.
Este algoritmo usa uma
estrutura de repetição
“Repita/Até”
Lógica de Programação & Algoritmo
• Algoritmo para ligar de um telefone público – Repetição
• E se o telefone chamado estiver com defeito?
• E se o telefone chamado estiver ocupado?
• E se acabarem os créditos do cartão telefônico?
• E se ...?
Um algoritmo
SEMPRE sofre melhorias sucessivas.
(Técnica de refinamentos sucessivos)
Fluxogramas - Exemplo 1
• Achar o valor da expressão: D = B2
- 4AC.
Início
Ler A, B, C D = B^2 - 4*A*C
1
1
Escrever D
Fim
Fluxogramas:
Exemplo 2
• Achar o maior de
dois números A e
B.
Início
Ler A, B
A=B A<BA>B
Comparar
A com B
Escrever:
“A e B iguais”
Fim
Escrever:
“A é maior”
Escrever:
“B é maior”
Português Estruturado - Exemplo 1
• Achar o valor da expressão: D = B2
- 4AC.
Ler os valores de A, B e C
Calcular a expressão D = B2
- 4AC
Mostrar o resultado desse cálculo
Português Estruturado - Exemplo 2
• Achar o maior de dois números A e B.
Ler dois números A e B
Comparar A com B
Mostrar o resultado dessa comparação
Pseudocódigo - Exemplo 1
• Achar o valor da expressão: D = B2
- 4AC.
Início
Declare A,B,C,D; { Declaração de variáveis }
Leia(A,B,C);
D B^2 - 4*A*C; { Operação de atribuição }
Escreva(D);
Fim.
Pseudocódigo - Exemplo 2
• Achar o maior de dois números A e B.
Início
Declare A,B; { Declaração de variáveis }
Leia(A,B);
Se A = B Então Escreva(“A e B iguais”);
Senão Se A>B Então Escreva(“A é maior”);
Senão Escreva(“B é maior”);
Fim-Se
Fim-Se
Fim.
Atividade 3
• Reescreva corretamente o algoritmo
abaixo
• Algoritmo aprovação
Início
1. Obter as 2 notas do aluno;
2. Repita
1. Se Média do aluno >=7, então
1. Repita
1. Informar que o aluno está REPROVADO;
2. Até Média < 7
2. Senão Média >= 7
1. Informar que o aluno está APROVADO;
3. Até último aluno;
Fim.
RESPOSTA - Atividade 3
• Algoritmo aprovação
Início
1. Repita
1. Obter as 2 notas do aluno;
2. Se Média do aluno >=7, então
1. Informar que o aluno está APROVADO
3. Senão
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 EXERCÍCIO
• Construa um algoritmo para escolher as
duas maiores laranjas de um balaio
1) leia um número inteiro e mostre uma mensagem indicando se
este número é par ou ímpar, e se é positivo ou negativo
2) leia quatro números inteiros e encontre a média aritmética
simples entre as que correspondem a números pares. Lembre-
se que não pode haver divisão por zero
3) leia 4 notas, calcule a média dessas e escreva: Reprovado
(média < 5), Recuperação (média >= 5 e < 7) e Aprovado
(média >= 7)
Outros exercícios...
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 números inteiros, uma operação matemática
(+,-,*,/) e faça o calculo destes números segundo a operação
lida
6) leia o nome e a idade de três pessoas e informe o nome da
pessoa mais velha e o nome da pessoa mais nova. Considere
que não existem idades iguais
mais exercícios...
7) leia os números inteiros A e B e informe se A é múltiplo,
divisor ou nada de B
8) leia três números e mostre-os em ordem crescente
9) leia uma milhar e informe se esse número é palíndromo.
Exemplos de números palíndromos: 9889, 7337 e 2002
10) leia um número inteiro entre 20 e 59 e mostre seu extenso.
Exiba um erro se o número estiver fora do intervalo
ainda mais exercícios...
AMBIENTES/LINGUAGENS DE
PROGRAMAÇÃO
LA PASCAL
declare Var
Início Begin
Fim End
Caracter Char
Inteiro Integer
Real Real
Lógico Boolean
Leia Read
Escreva Write
AMBIENTES/LINGUAGENS DE
PROGRAMAÇÃO
LA C
declare
Início {
Fim }
Caracter Char
Inteiro Int
Real Double
Lógico Boolean
Leia Scanf
Escreva Printf
Próximos passos?
• Praticar a leitura e entendimento de
Algoritmos de sua área de aplicação
• Aprender uma Linguagem de
Programação para Computadores
• Programação!

Mais conteúdo relacionado

Mais procurados

Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
Professor Samuel Ribeiro
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
Claudio Stein Junior
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
Roney Sousa
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
Andrei Bastos
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
alfredtaddeus
 
Processador intel 4040
Processador intel 4040Processador intel 4040
Processador intel 4040
Elaine Cecília Gatto
 
Visualg
VisualgVisualg
Visualg
Pedro Silva
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
Alberto Simões
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Leinylson Fontinele
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
Gercélia Ramos
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
Aislan Rafael
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
Mariana Camargo
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
diogoa21
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
Gabriel Vinicios Silva Maganha
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
André Agostinho
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
Mauro Pereira
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
Elaine Cecília Gatto
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
Carlos Wagner Costa
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
Gabriel Faustino
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Regis Magalhães
 

Mais procurados (20)

Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Processador intel 4040
Processador intel 4040Processador intel 4040
Processador intel 4040
 
Visualg
VisualgVisualg
Visualg
 
Aula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de AtividadeAula 03 - Introdução aos Diagramas de Atividade
Aula 03 - Introdução aos Diagramas de Atividade
 
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
Estrutura de Dados - Aula 12 - Pesquisa de Dados (Sequencial e Binária)
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Aula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e PseudocódigoAula 07 - Visualg e Pseudocódigo
Aula 07 - Visualg e Pseudocódigo
 
Introdução à Lógica de Programação
Introdução à Lógica de ProgramaçãoIntrodução à Lógica de Programação
Introdução à Lógica de Programação
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 
Aula 1 aed - lógica de programação
Aula 1   aed - lógica de programaçãoAula 1   aed - lógica de programação
Aula 1 aed - lógica de programação
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 

Semelhante a Conceitos Fundamentais de algoritmos

2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
rapc987
 
aula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdfaula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdf
andersonsoares275191
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1
Isaac Barros
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
Mario Jorge Pereira
 
scilab aula 05
scilab  aula 05scilab  aula 05
scilab aula 05
Tomás Ribeiro
 
Aula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxAula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptx
Márcio Santos
 
Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Introduçao a Algoritmo...................
Introduçao a Algoritmo...................
Márcio Santos
 
Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01
Gabriel Demétrio
 
Algoritmos
AlgoritmosAlgoritmos
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1
Robson Ferreira
 
Backtracking
BacktrackingBacktracking
Recursividade
RecursividadeRecursividade
Recursividade
Sérgio Souza Costa
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
Momento da Informática
 
01-Lógica de Programação .pptx
01-Lógica de Programação .pptx01-Lógica de Programação .pptx
01-Lógica de Programação .pptx
FranciscoDavidSilvaS2
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
José Volmei Dal Prá Junior
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
GustavoBarrosLins1
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
Gabriel Demétrio
 
Forb.cap1
Forb.cap1Forb.cap1
01 maquinas de turing
01 maquinas de turing01 maquinas de turing
01 maquinas de turing
Yuri Passos
 
questoes enem
questoes enemquestoes enem
questoes enem
Airton Alves
 

Semelhante a Conceitos Fundamentais de algoritmos (20)

2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
2 - Algoritmos e Estruturas de Dados - Algoritmo.pptx
 
aula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdfaula_01_tec_programacao_python_programacao.pdf
aula_01_tec_programacao_python_programacao.pdf
 
Aula 1 - Programação 1
Aula 1 - Programação 1Aula 1 - Programação 1
Aula 1 - Programação 1
 
Lógica de Programação e Algoritmos
Lógica de Programação e AlgoritmosLógica de Programação e Algoritmos
Lógica de Programação e Algoritmos
 
scilab aula 05
scilab  aula 05scilab  aula 05
scilab aula 05
 
Aula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptxAula 01 - Apresentação - Introdução a Lógica.pptx
Aula 01 - Apresentação - Introdução a Lógica.pptx
 
Introduçao a Algoritmo...................
Introduçao a Algoritmo...................Introduçao a Algoritmo...................
Introduçao a Algoritmo...................
 
Algoritmos e Programação_01
Algoritmos e Programação_01Algoritmos e Programação_01
Algoritmos e Programação_01
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1Conceitos e técnicas de programação aula 1
Conceitos e técnicas de programação aula 1
 
Backtracking
BacktrackingBacktracking
Backtracking
 
Recursividade
RecursividadeRecursividade
Recursividade
 
Logica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptxLogica de Progamacao - Aula (1) (1).pptx
Logica de Progamacao - Aula (1) (1).pptx
 
01-Lógica de Programação .pptx
01-Lógica de Programação .pptx01-Lógica de Programação .pptx
01-Lógica de Programação .pptx
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Forb.cap1
Forb.cap1Forb.cap1
Forb.cap1
 
01 maquinas de turing
01 maquinas de turing01 maquinas de turing
01 maquinas de turing
 
questoes enem
questoes enemquestoes enem
questoes enem
 

Último

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
Momento da Informática
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
Momento da Informática
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
joaovmp3
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
2m Assessoria
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
Faga1939
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
Danilo Pinotti
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Gabriel de Mattos Faustino
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
TomasSousa7
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
WELITONNOGUEIRA3
 

Último (9)

TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdfTOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
TOO - TÉCNICAS DE ORIENTAÇÃO A OBJETOS aula 1.pdf
 
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdfDESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
DESENVOLVIMENTO DE SOFTWARE I_aula1-2.pdf
 
Certificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdfCertificado Jornada Python Da Hashtag.pdf
Certificado Jornada Python Da Hashtag.pdf
 
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ADSIS - ESTRUTURA DE DADOS II - 52_2024.docx
 
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
PRODUÇÃO E CONSUMO DE ENERGIA DA PRÉ-HISTÓRIA À ERA CONTEMPORÂNEA E SUA EVOLU...
 
Segurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas PráticasSegurança Digital Pessoal e Boas Práticas
Segurança Digital Pessoal e Boas Práticas
 
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdfEscola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
Escola Virtual - Fundação Bradesco - ITIL - Gabriel Faustino.pdf
 
História da Rádio- 1936-1970 século XIX .2.pptx
História da Rádio- 1936-1970 século XIX   .2.pptxHistória da Rádio- 1936-1970 século XIX   .2.pptx
História da Rádio- 1936-1970 século XIX .2.pptx
 
Manual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdfManual-de-Credenciamento ANATER 2023.pdf
Manual-de-Credenciamento ANATER 2023.pdf
 

Conceitos Fundamentais de algoritmos

  • 1. Conceitos Fundamentais de Algoritmos e Programação para iniciantes joa@deinfo.ufrpe.br REFERÊNCIA: Material dos Profs. Reinaldo Gomes (UFRPE) e Robson Fidalgo (UFPE) www.xiscanoe.org
  • 2. Algoritmo Textual Informal • Modo de preparo: – Bata a margarina, as gemas e o açúcar até ficar cremoso – Junte o leite, o coco e a farinha e continue batendo – Acrescente o fermento e, por último, as claras em neve – Unte uma forma com manteiga e leve ao forno para assar Quão cremoso?!? De uma vez só?!? Quanto tempo?!? Quanto tempo?!?
  • 3. • Modo de preparo: – Bata a margarina, as gemas e o açúcar por 15 minutos – Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos – Acrescente 20 g de fermento e, por último, as claras em neve – Unte uma forma com manteiga e leve ao forno para assar por 30 minutos Algoritmo Textual Informal Refinado
  • 4. Algoritmo Gráfico-Textual Informal • Montagem de um Aeromodelo – Material • Cola especial para plásticos • Estilete • Lixas finas • Durex ou fita crepe • Pregador de roupas, elásticos
  • 5. • Identificação das peças Algoritmo Gráfico-Textual Informal
  • 6. • Instruções – Leia e entenda as instruções antes de começar a montagem – Lave as peças com água e detergente. Na lavagem serão removidos desmoldantes e sujeiras, que dificultam a colagem e a pintura. Faça isto dentro de uma bacia, para evitar perder peças pequenas, que porventura se soltem – Encontre as peças que devem ser usadas na primeira parte da montagem (figura do slide anterior) – Lixe as peças com cuidado eliminando as rebarbas – ... Algoritmo Gráfico-Textual Informal
  • 7. • Troca de pneu “Abra o porta-mala e verifique se todos acessórios estão lá. Em caso negativo, feche o porta-malas e peça carona a alguém. Em caso positivo, retire o triângulo, posicione-o a cerca de 30 m do carro, e, depois, retire o estepe e o macaco. Levante o carro... “ Algoritmo Textual Informal 2
  • 8. • Troca de pneu Algoritmo Gráfico Informal
  • 9. Acessórios OK? Abre porta-malas Pega triângulo Fecha porta-malas • Troca de pneu (Fluxograma) Algoritmo Gráfico Semi-formal Não Sim
  • 10. • Troca de pneu abre(porta_malas) Se acessorio_ok = FALSO Então fecha(porta_malas) espera_carona() Senão pega_triangulo() ... Algoritmo Textual Formal
  • 11. • Problema da Torre de Hanói – Seja a seguinte situação: • deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original • em cada movimento, pode-se mover apenas um disco • um disco nunca poderá ser sobreposto por outro maior Algoritmo: Problemas Complexos
  • 12. • Passo 1: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos
  • 13. • Passo 2: mova disco médio para segundo eixo Algoritmo: Problemas Complexos
  • 14. • Passo 3: mova disco menor para segundo eixo Algoritmo: Problemas Complexos
  • 15. • Passo 4: mova disco maior para terceiro eixo Algoritmo: Problemas Complexos
  • 16. • Passo 5: mova disco menor para primeiro eixo Algoritmo: Problemas Complexos
  • 17. • Passo 6: mova disco médio para terceiro eixo Algoritmo: Problemas Complexos
  • 18. • Passo 7: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos
  • 19. • Seqüência de passos completa: Passo 1: mova disco menor para terceiro eixo Passo 2: mova disco médio para segundo eixo Passo 3: mova disco menor para segundo eixo Passo 4: mova disco maior para terceiro eixo Passo 5: mova disco menor para primeiro eixo Passo 6: mova disco médio para terceiro eixo Passo 7: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos
  • 20. Algoritmo: CONCEITO • O que é um ALGORITMO? • OBS.: Não existe um algoritmo para construir algoritmos – a criação de um algoritmo é um exercício de criatividade (conhecimento) e experiência (técnica e prática)
  • 21. O que é Programação? = ABSTRAÇÃO! A realidade é complexa e rica em detalhes!
  • 22. Abstração RealidadeRealidade O que vocêO que você abstraiabstrai dessa realidade?dessa realidade?
  • 23. Abstração O que é abstração?
  • 24. Abstração Abstração = Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto
  • 25.
  • 26.
  • 27.
  • 29. • A tarefa de programar sistemas computacionais envolve o exercício constante da abstração da realidade e sua codificação em uma linguagem de programação Abstração RealidadeRealidade Sistema de Locadora de VeículoSistema de Locadora de Veículo AbstraçãoAbstração ++ ProgramaçãoProgramação
  • 30. Sistema Computacional O que é um Sistema Computacional?
  • 32. Programação de Sistema Computacional • A programação de um sistema computacional pode ser resumida em 3 passos básicos ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP
  • 33. Programação de Sistema Computacional • Exemplo 1 – Exibir a média de dois números ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP 6 , 8 (6 + 8) / 2 7
  • 34. Programação de Sistema Computacional • Exemplo 2 – Exibir se o aluno está aprovado ou reprovado ProcessamentoEntrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP Ana, 5, 3 Se (5+3)/2>=7 aprovado Senão reprovado Ana, reprovado
  • 35. Programação de Sistema Computacional • Tipos de Linguagens de Programação – 1 - Totalmente codificadas em binário (0´s e 1´s) – 2 - Usa instruções simbólicas para representar os 0´s e 1´s – 3 - Voltadas para facilitar o raciocínio humano Linguagem Assembly (Mnemônica) LOAD R1, val1 LOAD R2, val2 ADD R1, R2 STORE R1, val2 Linguagem de Máquina 0010 0001 1110 0010 0010 1111 0001 0001 0010 0011 0001 1111 Linguagem de Alto Nível val2 = val1+val2 Baixo Nível Alto Nível (1) (2) (3)
  • 36. Noções de Lógica • Exemplos de aplicação da lógica – O quarto está fechado e que meu livro está no quarto. Então, preciso primeiro abrir o quarto para pegar o livro – Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e sobrinha de Paula – Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal – Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo)
  • 37. Atividade 1 (10min) • Resolva os seguintes problemas de lógica – 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 - Três gatos comem três ratos em três 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?
  • 38. Atividade 1 (10min) • Resolva os seguintes problemas de lógica – P5 – Qual o próximo número da seqüência 7,8,10,13,17,? – P6 – Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilha com um barco. Porém a capacidade do barco é de 80kg. Como farão para sair da ilha? – P7 – Usando uma jangada, um camponês precisa atravessar uma cabra, um leão 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?
  • 39. RESPOSTAS - Atividade 1 • Respostas – R1 - 9(nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o topo e evidentemente não desce 1 metro – R2 – 3 (três) minutos – R3 – Tio – R4 – 150 (cento e cinqüenta) kg – R5 – 22 – R6 – Vão 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 leão, depois é só voltar e pegar a cabra.
  • 40. Noções de Lógica Em Lógica um conceito importante é o de “Proposição” Você sabe o que é uma PROPOSIÇÃO?
  • 41. Noções de Lógica • Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambigüidade, um valor lógico verdadeiro (V) ou falso (F). – Exemplos de proposições: • Robson Fidalgo é Professor (V) • 3 + 5 = 10 (F) • 5 < 8 (V) – Contra-exemplos de Proposições: • Onde você vai ? • 3 + 5 • Os estudantes jogam vôlei. (quais ?)
  • 42. Noções de Lógica • Operações Lógicas: são usadas para formar novas proposições a partir de proposições existentes. – Considerando p e q duas proposições genéricas, pode-se aplicar as seguintes operações lógicas básicas sobre elas – Definindo a prioridade: • Usar parênteses Ex:((p v q)^(~q)) ou • Obedecer (~) > (^) > (v)
  • 43. Noções de Lógica • Exemplos de aplicação das operações lógica – Considere: • p = 7 é primo = (V) • q = 4 é impar = (F) – Então: • 4 NÃO é impar = ~q = (~F) = (V) • 7 NÃO é primo = ~p = (~V) = (F) • 7 é primo E 4 NÃO é 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 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F)
  • 44. Noções de Lógica • Exemplos de aplicação das operações lógica (Cont.) – Considere: • p = 7 é primo = (V) • q = 4 é impar = (F) – Então: • 7 é primo OU 4 NÃO é 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 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) = (F)
  • 45. Noções de Lógica • Exemplos de aplicação das operações lógica – Resumindo: – Ou seja: • Não (~) troca o valor lógico. Se é F passa a ser V e vice- versa • E (^) só tem valor V quando as duas proposições forem V, basta uma proposição ser F para o resultado ser F • OU (v) só tem valor F quando as duas proposições forem F, basta uma proposição ser V para o resultado ser V p q p ^ q p v q V V V V V F F V F V F V F F F F ~p F F V V pp qq p ^ qp ^ q p v qp v q VV VV VV VV VV FF FF VV FF VV FF VV FF FF FF FF ~p~p FF FF VV VV
  • 46. Atividade 2 • Considerando p = V e q = F, resolva as seguintes expressões lógicas – ~p – ~q – p ^ q – p v q – (~p) ^ q – (~p) v q – p ^ (~q) – p v (~q) – (~p) ^ (~q) – (~p) v (~q)
  • 47. RESPOSTAS - Atividade 2 • Considerando p = V e q = F, resolva as seguintes expressões lógicas – ~p = F – ~q = V – p ^ q = F – p v q = V – (~p) ^ q = F – (~p) v q = F – p ^ (~q) = V – p v (~q) = V – (~p) ^ (~q) = F – (~p) v (~q) = V
  • 48. Lógica de Programação & Algoritmo O que é Programação de computadores?  INSTRUÇÕES
  • 49. Instruções Delimitadoras • Servem para especificar o início e o fim do algoritmo. início ... fim
  • 50. Declaração de Variáveis • Utilizado para especificar os nomes e os respectivos tipos das variáveis necessárias no algoritmo declare <variáveis>: <tipo>; onde: <variáveis> - lista de nomes de variáveis separados por vírgula <tipo> - inteiro, real, caracter, string, lógico
  • 51. Declaração de Variáveis • Exemplos: declare a,b,c: real; declare nome: string; declare sexo: caracter; declare pratica_esporte: lógico;
  • 52. Bloco de Comentário • Serve para explicar um determinado trecho do algoritmo, para torna-lo mais claro, facilitando seu entendimento por outras pessoas ou posteriormente. { <comentário> } Exemplo: { Isto é um exemplo de comentário }
  • 53. Instrução de Entrada • Usada para ler dados de entrada do algoritmo. leia(<variáveis>); onde: <variáveis> - conterão os dados lidos.
  • 54. Instrução de Entrada • Exemplos: leia(a,b,c); leia(nome); leia(sexo); leia(pratica_esporte);
  • 55. Instrução de Saída • Usada para mostrar os resultados do processamento dos dados de entrada. escreva(<resultados>); onde: <resultados> - geralmente é o conteúdo de uma ou mais variáveis com a resposta do problema.
  • 56. Instrução de Saída • Exemplos: escreva(“O valor de D é: ”, D); escreva(nome, sexo); escreva(“Pratica esporte.”);
  • 57. Instrução de Atribuição • Utilizado para atribuir um determinado valor a uma variável. <variável> <expressão>; onde: <variável> - nome de uma variável <expressão> - um valor do mesmo tipo da variável ou uma expressão lógica ou aritmética.
  • 58. Instrução de Atribuição • Exemplos D B^2-4*A*C; nome “Paulo”; Pratica_Esporte TRUE; Sexo ‘M’;
  • 59. Estruturas de Controle • Baseado na lógica estruturada, Bohn e Jacopini provaram que apenas três estruturas são suficientes para explicar a solução de qualquer problema, inclusive tornando-os estruturados e mais legíveis.
  • 60. Estruturas de Controle • São elas: – Estrutura Seqüencial: os comandos ou instruções vão sendo executados na ordem em que aparecem no algoritmo.
  • 61. Estruturas de Controle • Estrutura de Repetição: comandos são executados repetidas vezes até que uma condição de parada seja satisfeita
  • 62. Estruturas de Controle • Estrutura de Seleção: Conforme o resultado de uma expressão lógica, determinados comandos são executados e outros não, caracterizando assim uma seleção de comandos TRUE FALSE
  • 63. Instruções de Seleção • Tipo simples: se <sentença> então <comandos>; fim-se OBS.: <comandos> serão executados apenas se <sentença> resultar em TRUE.
  • 64. Instruções de Seleção • Exemplo: se A>0 então B A + 1; A 0; fim-se
  • 65. Instruções de Seleção • Tipo composto: se <sentença> então <comandos1>; senão <comandos2>; fim-se OBS.: <comandos1> serão executados apenas se <sentença> resultar em TRUE. Em caso contrário, <comandos2> serão executados.
  • 66. Instruções de Seleção • Exemplo: se A>B então B A + 1; A 0; senão A 0; B A + 1; fim-se
  • 67. Instruções de Repetição • Enquanto / Fim-Enquanto enquanto <sentença> faça <comandos>; fim-enquanto; OBS.: <comandos> serão executados enquanto <sentença> resultar em TRUE.
  • 68. Instruções de Repetição • Exemplo: enquanto A>0 faça leia(B); escreva(B); A A - 1; fim-enquanto;
  • 69. Instruções de Repetição • Repita / Até repita <comandos>; até <sentença>; OBS.: <comandos> serão executados até que <sentença> resulte em TRUE.
  • 70. Instruções de Repetição • Exemplo: repita leia(B); escreva(B); A A - 1; até A<1;
  • 71. Instruções de Repetição • Para / Até / Fim-Para para <variável> <inicial> até <final> faça <comandos>; fim-para; OBS.: <variável> - contador do tipo inteiro <inicial> - valor inicial da variável <final> - valor final da variável
  • 72. Instruções de Repetição • Exemplo: { Comandos para escrever 10 vezes uma frase na tela do computador } para i 1 até 10 faça escreva(“Último tipo de repetição”); fim-para;
  • 73. Estrutura de um Algoritmo • Um algoritmo em Portugol tem a seguinte estrutura: início <declaração de variáveis> <inicialização de variáveis> <corpo lógico do algoritmo> fim
  • 74. Lógica de Programação & Algoritmo • Estruturas básicas de um algoritmo: – Seqüência – Início/Fim • Define uma estrutura onde as instruções serão executadas na ordem que aparecem. – Seleção – Se-Então/Senão • Define uma estrutura condicional que dada a sua avaliação (V ou F) determina qual “caminho” do algoritmo será executado – Repetição – Repita, Enquanto ou Para • Define uma estrutura de iteração condicional (V ou F) ou contada (pré-definida) de instruções
  • 75. Lógica de Programação & Algoritmo • Algoritmo para ligar de um telefone público - Seqüência Início 1. Tirar o fone do gancho; 2. Ouvir o sinal de linha; 3. Introduzir o cartão; 4. Teclar o número desejado; 5. Conversar; 6. Desligar; 7. Retirar o cartão; Fim. Este algoritmo só usa uma estrutura de seqüência “Início/Fim”
  • 76. Lógica de Programação & Algoritmo • Algoritmo para ligar de um telefone público – Seleção E se o telefone público estiver com defeito? Início 1. Tirar o fone do gancho; 2. Se ouvir o sinal de linha, então 1. Introduzir o cartão; 2. Teclar o número desejado; 3. Conversar; 4. Desligar; 5. Retirar o cartão; 3. Senão 1. ir para o próximo telefone; Fim. Este algoritmo usa uma estrutura de decisão “Se-então/Senão”
  • 77. Lógica de Programação & Algoritmo • Algoritmo para ligar de um telefone público – Repetição E se o próximo telefone público também estiver com defeito? Início 1. Repita 1. Tirar o fone do gancho; 2. Se ouvir o sinal de linha então 1. Introduzir o cartão; 2. Teclar o número desejado; 3. Conversar; 4. Desligar; 5. Retirar o cartão; 3. Senão 1. ir para o próximo telefone; 2. Até ouvir o sinal de linha Fim. Este algoritmo usa uma estrutura de repetição “Repita/Até”
  • 78. Lógica de Programação & Algoritmo • Algoritmo para ligar de um telefone público – Repetição • E se o telefone chamado estiver com defeito? • E se o telefone chamado estiver ocupado? • E se acabarem os créditos do cartão telefônico? • E se ...? Um algoritmo SEMPRE sofre melhorias sucessivas. (Técnica de refinamentos sucessivos)
  • 79. Fluxogramas - Exemplo 1 • Achar o valor da expressão: D = B2 - 4AC. Início Ler A, B, C D = B^2 - 4*A*C 1 1 Escrever D Fim
  • 80. Fluxogramas: Exemplo 2 • Achar o maior de dois números A e B. Início Ler A, B A=B A<BA>B Comparar A com B Escrever: “A e B iguais” Fim Escrever: “A é maior” Escrever: “B é maior”
  • 81. Português Estruturado - Exemplo 1 • Achar o valor da expressão: D = B2 - 4AC. Ler os valores de A, B e C Calcular a expressão D = B2 - 4AC Mostrar o resultado desse cálculo
  • 82. Português Estruturado - Exemplo 2 • Achar o maior de dois números A e B. Ler dois números A e B Comparar A com B Mostrar o resultado dessa comparação
  • 83. Pseudocódigo - Exemplo 1 • Achar o valor da expressão: D = B2 - 4AC. Início Declare A,B,C,D; { Declaração de variáveis } Leia(A,B,C); D B^2 - 4*A*C; { Operação de atribuição } Escreva(D); Fim.
  • 84. Pseudocódigo - Exemplo 2 • Achar o maior de dois números A e B. Início Declare A,B; { Declaração de variáveis } Leia(A,B); Se A = B Então Escreva(“A e B iguais”); Senão Se A>B Então Escreva(“A é maior”); Senão Escreva(“B é maior”); Fim-Se Fim-Se Fim.
  • 85. Atividade 3 • Reescreva corretamente o algoritmo abaixo • Algoritmo aprovação Início 1. Obter as 2 notas do aluno; 2. Repita 1. Se Média do aluno >=7, então 1. Repita 1. Informar que o aluno está REPROVADO; 2. Até Média < 7 2. Senão Média >= 7 1. Informar que o aluno está APROVADO; 3. Até último aluno; Fim.
  • 86. RESPOSTA - Atividade 3 • Algoritmo aprovação Início 1. Repita 1. Obter as 2 notas do aluno; 2. Se Média do aluno >=7, então 1. Informar que o aluno está APROVADO 3. Senão 1. Informar que o aluno está REPROVADO; 2. Até último aluno Fim
  • 87. • #! /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++; • }
  • 88. UM EXERCÍCIO • Construa um algoritmo para escolher as duas maiores laranjas de um balaio
  • 89. 1) leia um número inteiro e mostre uma mensagem indicando se este número é par ou ímpar, e se é positivo ou negativo 2) leia quatro números inteiros e encontre a média aritmética simples entre as que correspondem a números pares. Lembre- se que não pode haver divisão por zero 3) leia 4 notas, calcule a média dessas e escreva: Reprovado (média < 5), Recuperação (média >= 5 e < 7) e Aprovado (média >= 7) Outros exercícios...
  • 90. 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 números inteiros, uma operação matemática (+,-,*,/) e faça o calculo destes números segundo a operação lida 6) leia o nome e a idade de três pessoas e informe o nome da pessoa mais velha e o nome da pessoa mais nova. Considere que não existem idades iguais mais exercícios...
  • 91. 7) leia os números inteiros A e B e informe se A é múltiplo, divisor ou nada de B 8) leia três números e mostre-os em ordem crescente 9) leia uma milhar e informe se esse número é palíndromo. Exemplos de números palíndromos: 9889, 7337 e 2002 10) leia um número inteiro entre 20 e 59 e mostre seu extenso. Exiba um erro se o número estiver fora do intervalo ainda mais exercícios...
  • 92. AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO LA PASCAL declare Var Início Begin Fim End Caracter Char Inteiro Integer Real Real Lógico Boolean Leia Read Escreva Write
  • 93. AMBIENTES/LINGUAGENS DE PROGRAMAÇÃO LA C declare Início { Fim } Caracter Char Inteiro Int Real Double Lógico Boolean Leia Scanf Escreva Printf
  • 94. Próximos passos? • Praticar a leitura e entendimento de Algoritmos de sua área de aplicação • Aprender uma Linguagem de Programação para Computadores • Programação!