Algoritmos e LP - Aula 01 - Introdução a Algoritmos.pdf

EnioFilho 36 views 38 slides Jun 29, 2023
Slide 1
Slide 1 of 38
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38

About This Presentation

Aula de Algoritmos (1)


Slide Content

Aula 01
Introdução a Algoritmos
Ênio Prates Vasconcelos Filho
Faculdades Alfa

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tópicos
ΔOqueéumAlgoritmo;
ΔPorquecriamosalgoritmos?
ΔTiposdeAlgoritmos;
ΔLinguagensdeBaixoxAltonível;
ΔExemplos;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um Algoritmo?

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um algoritmo?
ΔSequênciafinitadeinstruções,ordenadasdeformalógicaparaaresolução
deumadeterminadatarefaouproblema;
ΔNãonecessariamenteenvolveaspectoscomputacionais.Ex.:
•Umareceitadebolo,
•Trocarumpneudecarro,
•Trocarumalâmpada...;
ΔUmalgoritmotambémnãorepresenta,necessariamente,umprograma
decomputadoresimospassosnecessáriospararealizarumatarefaou
solucionarumproblema,sejadequeáreafor.

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um algoritmo?
ΔExemplo:Sequênciaparafritarumovo:
1.Retiraroovodageladeira;
2.Colocarafrigideiranofogo;
3.Colocaróleo;
4.Esperaratéoóleoficarquente;
5.Quebraroovoseparandoacasca;
6.Colocaroconteúdodoovonafrigideira;
7.Esperarumminuto;
8.Retiraroovodafrigideira;
9.Apagarofogo;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um algoritmo?
ΔTalsequênciaéumalgoritmo?Vejamos...
•Asequênciaanteriorpossuiinstruçõesfinitaseordenadas?
oSIM.9instruçõesordenadas;
oOiníciodeumainstruçãodependedaconclusãodeumainstruçãoanterior;
ΔOobjetivodasequênciafoiatingido?
•SIM.Oovofoifrito;
ΔLogo,asequênciaanterioréumalgoritmo!

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um Algoritmo?
ΔTodoalgoritmoprecisapossuirasseguintescaracterísticas:
•Entrada:zerooumaisvaloresdeentrada;
•Saída:pelomenosumvaloréproduzido;
•ClarezaouDefinição:cadapasso/instrução/etapadeumalgoritmo
deveserclaroenãoambíguo;
•Efetividade:cadapasso/instrução/etapadeumalgoritmodeveser
executável;
•Finitude:oalgoritmodeveterumconjuntofinitodepassos.

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um algoritmo?
⚫Exercício
–Ordeneeestrutureumasequênciaparaarealizaçãodeuma
ligaçãotelefônicaemumorelhão.

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um algoritmo?
ΔUmapossívelsolução:
1.Tirarotelefonedogancho;
2.Ouvirosinaldelinha;
3.Introduzirocartãonoorelhão;
4.Teclaronúmerodesejado;
5.Conversar;
6.Desligar;
7.Tirarocartão;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O que é um algoritmo?
ΔAsoluçãoanterior...maisrobusta:
1.Tirarotelefonedogancho;
2.Ouvirosinaldelinha;
3.Introduzirocartãonoorelhão;
4.Teclaronúmerodesejado;
5.Sechamarealguématender...
1.Conversar;
2.Desligar;
3.Retirarocartão;
6.Senão...
1.Desligar;
2.Voltarparaainstrução1;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Desafio
ΔEscrevaumalgoritmoqueajudeohomemdobarcoalevarolobo,aovelha
eacaixadeverdurasparaooutroladodolago.Utilizeadescriçãonarrativa
pararepresentaroalgoritmo.Lembre-se:
•Loboscomemovelhaseovelhascomemasverdurasquandoohomemestána
outramargem!
•OBarcotemapenasdoislugares;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Desafio
ΔSolução:
1.Pegaaovelha
2.Vaiparaaoutramargem
3.Deixaaovelha
4.Voltaamargeminicial
5.Pegaacaixadeverduras
6.Vaiparaaoutramargem
7.Deixaacaixadeverdurasepegaaovelha
8.Voltaamargeminicial
9.Deixaaovelhaepegaolobo
10.Vaiparaaoutramargem
11.Deixaolobo
12.Voltaamargeminicial
13.Pegaaovelha
14.Vaiparaaoutramargem
15.Deixaaovelha

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Por que criamos algoritmos?
ΔAlinguagemnaturalnãopodeser
interpretadaporcomputadores;
ΔComputadoressãoprojetadospara
executartarefasbemdefinidasapartir
deinstruções;
ΔParadesenvolversoftware,utilizamos
linguagensdeprogramação...
ΔAlinguagemalgorítmicaésimilara
umalinguagemdeprogramação;
ΔLogo,aprendendoacriaralgoritmos,
estamosaptosaprogramarem
qualquerlinguagemdeprogramação;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Por que programar?
ΔNofundo,programaréensinarumcomputadoraresolverproblemas!
ΔMesmoquevocênãosejaumprogramadornofuturo,programarajudaa
despertarasseguinteshabilidades:
•Ajudaaencontrarasoluçãoparaproblemas;
•Ensinaapersistir;
•Despertaparaomundo;
•Estimulaacriatividade;
•Despertaapaixãoemaprender;
•Ensinaatrabalharcoletivamente;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
⚫DescriçãoNarrativa;
⚫Fluxograma;
⚫Pseudocódigo,PortuguêsEstruturado
ouPortugol;
SUBJETIVIDADE
PRECISÃO

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔDescriçãoNarrativa
•Utiliza-sepreferencialmenteumverboporfrase;
•Formadaporfrasescurtasesimples;
•Éobjetiva;
•Evitapalavrascomsentidodúbio;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔDescriçãoNarrativa–Exemplo:
•Dobrodeumnúmero(dobro=númerox2)
oDigitarumnúmero;
oGravaremumavariável;
oMultiplicaronúmerodigitadopor2;
oGravaroresultadoemoutravariável;
oMostraroresultadodaoperação;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔFluxograma
•Descrevemofluxodeaçãodeumdeterminadotrabalhológico;
•Usasímbolosconvencionais,permitindopoucasvariações;
•Representadosporsímbolosgeométricos;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔFluxograma–ConjuntodeSímbolos:
INÍCIO OU FIM DE
ALGORITMO
CÁLCULO OU
ATRIBUIÇÃO DE VALOR
ENTRADA DE
DADOS
SAÍDA DE DADOS
DECISÃOFLUXO DE DADOS

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔExemplo:

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔExemplo:Façaumalgoritmoquecalculaeapresentaamultiplicaçãoentre
doisnúmeros.
INÍCIO
Calcule a Multiplicação
M = N1 * N2
Leia Notas
N1, N2
Apresente Resultado:
M FIM

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔExercício:Façaumalgoritmo(narrativa)quecalculaamédiadetrêsnotas
deumdeterminadoalunoeinformaseoalunoestáaprovadoou
reprovado.
•Oalunoestaráaprovadosesuamédiaformaiorouiguala6;
ΔSolução:
•LêasNotasN1,N2eN3;
•CalculaaMÉDIAentreN1,N2eN3;
•SeMÉDIAémaiorque6,
oOAlunoestáaprovado;
•Senão,
oOAlunoestáReprovado;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔExercício:Façaumalgoritmo(fluxograma)quecalculaamédiadetrêsnotas
deumdeterminadoalunoeinformaseoalunoestáaprovadoou
reprovado.
•Oalunoestaráaprovadosesuamédiaformaiorouiguala6;
INÍCIO
CALCULE A MÉDIA
MEDIA = (N1 + N2 + N3) / 3
LEIA NOTAS:
N1, N2, N3
APROVADO
FIM
MEDIA
>= 6
SIM NÃO
REPROVADO

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔPortuguêsEstruturado(Portugol)
•Linguagemmaisrestritaqueoportuguêsemlinguagemnatural;
•Simplificaçãoextremadoportuguês;
•Significadosbemdefinidosparatodosostermosutilizadosnasinstruções;
•Possuiumconjuntodepalavraseregrasespecíficas(sintaxedalinguagem);
•Normalmenteasimplementaçõessãofeitasempapel,escritasamão;

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔFormabásicadeumalgoritmoemportugol:
•ALGORITMO
oDECLARE/DEFINA
•FIM_ALGORITMO
VARIÁVEIS
INSTRUÇÕES
TIPOS DE DADOS

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔMacarrãoInstantâneo:

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de algoritmos
ΔExemplo:Façaumalgoritmoquecalculaeapresentaamultiplicaçãoentre
doisnúmeros.
ALGORITMO
DECLAREN1,N2,MNUMÉRICO
ESCREVA“Digitedoisnúmeros”
LEIAN1,N2
M<-N1*N2
ESCREVA“MULTIPLICAÇÃO=”,M
FIM_ALGORITMO

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Tipos de Algoritmos
ΔExemplo:Façaumalgoritmoquecalculaeapresentaamédiaentrequatro
números.

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O computador não nos entende ...
ΔOcomputadornãoentendelinguagemnatural,pseudocódigoou
fluxograma.
ΔProblemadecomunicação!
Fala alguma coisa
!
011011011

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
O computador não nos entende ...
PROBLEMA
SOLUÇÃO
ALGORITMO
Linguagens de Programação:
JAVA, PHP, C, C++, C#, RUBY, COBOL, DELPHI .....

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Computadores conversam ... ?
•Quallinguagemoscomputadoresentendem?
•Qualoproblemacomalinguagemdemáquina?
•Palavrassãomaisfáceisdelembrardoquesequenciasdezeroseuns.
•Qualinstruçãoémaisfácildeler:
AL=1;
mov$1,AL
10110000
01100001

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Linguagens de baixo nível
movl$5,%eax
movl$1,%edx
.L4:
imull%eax,%edx
decl%eax
testl%eax,$0
jg.L4
Coloque 5 em eax
Coloque 1 em edx
Multiplique eaxpor edxe coloque o
resultado em edx
Subtraia 1 de eax
Teste se eaxé 0

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Linguagens de Alto nível
ΔUtilizaumalinguagemcujasintaxeémaispróximadalinguagemnatural;
ΔPrincipaiscaracterísticas:
•Altalegibilidade;
•Independentedaarquiteturadocomputador(altaportabilidade);
•Fácilmanipulação(usodeabstrações);
•Maiorconfiabilidade;
•Maiorprodutividadedoprogramador;
•Usadapornão-especialistas.

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Linguagens de Alto nível -C
#include<stdio.h>
intmain()
{
intn1,n2,p3;//n1=numero1n2=numero2p3=produto
printf("SejamBemVindos!!\n");
printf("DigiteoprimeiroNumero\n");
scanf("%d",&n1);
printf("DigiteoSegundoNumero\n");
scanf("%d",&n2);
p3=n2*n1;
printf("OResultadoeh:%d\n",p3);
}

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Mas o computador não entende só zeros e uns ... ?
ΔLinguagemdealtonívelpermiteumamaiorprodutividadeaoprogramador
eumamaiorlegibilidade,confiabilidadeeportabilidadeaosprogramas
desenvolvidos.
ΔLinguagemdemáquinaéalinguagemqueocomputadorentendee
consegueexecutar.
ΔLinguagemdemontagemusamnemônicosparafacilitarumpoucoo
trabalhodoprogramador,masapresentamosmesmosfundamentosda
linguagemdemáquina.
TRADUÇÃO

I
n
t
r
o
d
u
ç
ã
o
a
A
l
g
o
r
i
t
m
o
s ALGORITMOS -02/2015 –ÊNIO FILHO
Resumindo
HARDWARE
SISTEMA OPERACIONAL
Compilador ou
Interpretador
Linguagem
de máquina
Linguagem
de alto nível

DÚVIDAS?
Contatos:
E-mail: [email protected]
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
•MANZANO,JoséAugustoN.G.;OLIVEIRA,JayrFigueiredode.Algoritmos:lógicapara
desenvolvimentodeprogramaçãodecomputadores.18ª.ed.SãoPaulo:Érica,2006.236p.ISBN
857194718;
•FORBELLONE,AndréLuizVillar;EBERSPACHER,HenriFrederico.Lógicadeprogramação:aconstrução
dealgoritmoseestruturasdedados.3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195p.ISBN
9788576050247;
Tags