aula 1 algoritmo e pseudo-código

37
Seiji Isotani, Rafaela V. Rocha [email protected] [email protected] PAE: Armando M. Toda, Geiser Chalco [email protected] [email protected] Aula 1 Algoritmo e Pseudo-código Departamento de Sistemas de Computação Universidade de São Paulo SSC 600 – Introdução a Ciência de Computação I

Upload: others

Post on 11-Jul-2022

13 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aula 1 Algoritmo e Pseudo-código

SeijiIsotani,[email protected]

[email protected]

PAE:ArmandoM.Toda,Geiser [email protected]@gmail.com

Aula1AlgoritmoePseudo-código

Departamento deSistemas deComputaçãoUniversidade deSãoPauloSSC600– Introdução aCiência deComputação I

Page 2: Aula 1 Algoritmo e Pseudo-código

Informações sobre ocurso

• Sitedocursohttps://edisciplinas.usp.br/course/view.php?id=39957

• Atividadesonline:http://moodle.caed-lab.com

• Cronogramadasaulas– Serádisponibilizadonoedisciplinas

Page 3: Aula 1 Algoritmo e Pseudo-código

ObjetivosdoCurso

Apresentarosconceitosbásicosparaodesenvolvimentodeprogramas,

utilizandouma linguagemdeprogramaçãocomoapoio

DesenvolveroPensamentoComputacional

Page 4: Aula 1 Algoritmo e Pseudo-código

Oqueé?

• Programa: codificaçãodeumalgoritmo emumalinguagemdeprogramação(Ascencio,1999)

Page 5: Aula 1 Algoritmo e Pseudo-código

Oqueé?

• Pensamentocomputacional:pensamentonosproblemasdeformaanalítica edesenvolvimentodesoluçõesemformadealgoritmos(Easterbrook,2014)

Page 6: Aula 1 Algoritmo e Pseudo-código

PensamentoComputacional

Técnicasespecíficasdepensamentocomputacionalincluem:• Decomposiçãodoproblema• Reconhecimentodepadrões• Generalizaçãodepadrõesparadefinirabstraçõesoumodelos

• Projetodealgoritmos• Análisededadosevisualização

Page 7: Aula 1 Algoritmo e Pseudo-código

Problemas

• Somartrêsnúmeros

Passo1:Recebertrêsnúmeros

Passo2:Somarostrêsnúmeros

Passo3:Mostraroresultadoobtido

Page 8: Aula 1 Algoritmo e Pseudo-código

Problemas

• Trocarumalâmpada

Page 9: Aula 1 Algoritmo e Pseudo-código

Problemas

• Sacardinheironobanco24horas

Page 10: Aula 1 Algoritmo e Pseudo-código

• Pararesolveros problemasapresentados você precisa pelo menos:– Indicar quais são asentradas esperadas– Indicar quais são assaídas produzidas– Umconjunto depassos não ambíguospara transformar asentradas nas saídas.

Issoéumalgoritmo

Page 11: Aula 1 Algoritmo e Pseudo-código

Algoritmo

Umalgoritmo éumconjuntodeatividades que podem serexecutadas passo apassopara resolver problemas

Outrasdefinições:- http://en.wikipedia.org/wiki/Algorithm- RobertSedgewick – Algorithms inC,3rdEd,Addison Wesley

Page 12: Aula 1 Algoritmo e Pseudo-código

Algoritmo

• Característicasbásicas– ter fim– não dar margem à dupla interpretação

– capacidade de receber dado(s) de entrada domundo exterior

– poder gerar informações de saída para o mundoexterno ao do ambiente do algoritmo

– ser efetivo (todas as etapas especificadas noalgoritmo devem ser alcançáveis em um tempofinito)

Page 13: Aula 1 Algoritmo e Pseudo-código

Masperaí....

• Umalgoritmoéumprograma?– Não.Umprogramaéumadaspossíveisrepresentaçõesdeumalgoritmo.

• Umalgoritmoéumprocesso?– Não,processoéaatividadedeexecutarumprogramae,consequentemente,tambéméaatividadedeexecutarumalgoritmo.

Page 14: Aula 1 Algoritmo e Pseudo-código

Algoritmosestãoemtodaaparte

Page 15: Aula 1 Algoritmo e Pseudo-código

Nãoadiantafugir

Page 16: Aula 1 Algoritmo e Pseudo-código

• Imaginequevocêqueiracomprarnumsiteonline– Umalgoritmovaianalisarsuasatividadeserecomendarcoisasparacomprar

– Umalgoritmoiráverificarseucartãodecrédito– Umalgoritmoiráidentificaramaneiramaiseficientedeentregaroprodutonasuacasa

• Nãovaicompraronline?– Existeumalgoritmoparamaximizarasvendascolocandoosprodutosnaprateleirademaneiradiferenciada

• Emcomputaçãotudoviraalgoritmos

Page 17: Aula 1 Algoritmo e Pseudo-código

Senãoépossívelfugir,entãojunte-seaeleJ.

Sejaumcriadordealgoritmodeprimeiralinha!

Como?

Page 18: Aula 1 Algoritmo e Pseudo-código

Comocriaralgoritmos?

• Parasetornarum bomcozinheiro,vocênão devememorizar livros elivrosde receitas.

• Vocêestuda receitas existentes.• Você pratica fazê-los.• Você experimenta com suasprópriasvariações.

• Atéquepossainventar suasprópriasreceitas.

Page 19: Aula 1 Algoritmo e Pseudo-código

Comocriaralgoritmos?

• Parasetornarumbomprofissionaldacomputação,vocênãodevememorizarlivroselivrosdealgoritmos.

• Vocêestuda algoritmosfamosos.• Vocêpratica implementá-loseexecutá-los.• Depoispassaareconhecerpadrõesmaisgerais,eaexperimentar implementaçõescomsuasprópriasvariações.

• Atéque,finalmente,vocêiráinventar seusprópriosalgoritmos.

Page 20: Aula 1 Algoritmo e Pseudo-código

OK.Agoraeuseioqueéumalgoritmo!

Mascomo“escrever”ourepresentarumalgoritmo?

• DescriçãoNarrativa• Fluxograma• Pseudocódigo

Page 21: Aula 1 Algoritmo e Pseudo-código

DescriçãoNarrativa

Page 22: Aula 1 Algoritmo e Pseudo-código

Ecomorepresentarumalgoritmo?

• Descriçãonarrativa:– consisteemanalisaroenunciadodoproblemaeescrever,utilizandolinguagemnatural,ospassosaseremseguidosparasuaresolução(receitadebolo).

– Pontopositivo:Nãoénecessárioaprendernovosconceitos,poisalínguanaturaljáébemconhecida.

– Pontonegativo:Alínguanaturalabreespaçoparaváriasinterpretações,dificultandoatranscriçãodessealgoritmoparaprograma

Page 23: Aula 1 Algoritmo e Pseudo-código

Exemplo– DescriçãoNarrativa

• Descriçãonarrativa:– PASSO1– Receberosdoisnúmerosqueserãomultiplicados

– PASSO2– Multiplicarosnúmeros– PASSO3– Mostraroresultadoobtidodamultiplicação

Crieumalgoritmoparaexibiroresultadodamultiplicaçãodedoisnúmeros

Page 24: Aula 1 Algoritmo e Pseudo-código

• Descriçãonarrativa:– PASSO1– Receberumnúmero– PASSO2– Multiplicaronúmero*2– PASSO3– Mostraroresultadoobtidodamultiplicação

Exemplo- DescriçãoNarrativaCrieumalgoritmoparaexibirodobro

(n*2)deumnúmero

Page 25: Aula 1 Algoritmo e Pseudo-código

Fluxograma

Page 26: Aula 1 Algoritmo e Pseudo-código

Ecomorepresentarumalgoritmo?

• Fluxograma:– consisteemanalisaroenunciadodoproblemaeescrever,utilizandosímbolosgráficos,ospassosaseremseguidosparasuaresolução

– Pontopositivo:Oentendimentodeelementosgráficosémaissimplesqueoentendimentodetextos.

– Pontonegativo:Osfluxogramasdevemserentendidoseoalgoritmoresultantenãoédetalhado.Issodificultasuatranscriçãoparaumprograma

Page 27: Aula 1 Algoritmo e Pseudo-código

Fonte:http://wiki.icmc.usp.br/index.php/Scc-101(2011101)

Page 28: Aula 1 Algoritmo e Pseudo-código

Exemplo- FluxogramaCrieumalgoritmoparaexibiroresultado

damultiplicaçãodedoisnúmeros

Entradadedados

Cálculo Saídadedados

Page 29: Aula 1 Algoritmo e Pseudo-código

Exemplo- FluxogramaCrieumalgoritmoparaexibirodobrode

umnúmero

Page 30: Aula 1 Algoritmo e Pseudo-código

Pseudocódigo

Page 31: Aula 1 Algoritmo e Pseudo-código

Ecomorepresentarumalgoritmo?

• Pseudocódigo:– consisteemanalisaroenunciadodoproblemaeescrever,pormeioderegraspredefinidas,ospassosaseremseguidosparasuaresolução

– Pontopositivo:Representaçãoclarasemasespecificaçõesdelinguagemdeprogramação.Apassagemdoalgoritmoparaqualquerlinguagemdeprogramaçãoémaissimples.

– Pontonegativo:Asregrasdopseudocódigodevemseraprendidas

Page 32: Aula 1 Algoritmo e Pseudo-código

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

Exemplo- PseudocódigoCrieumalgoritmoparaexibiroresultado

damultiplicaçãodedoisnúmeros

Page 33: Aula 1 Algoritmo e Pseudo-código

Exemplo- Pseudocódigo

Existemváriasformasdeescreveropseudocódigo.Exemplos:

Multplicacao (n1,n2)m←n1*n2RETORNEm

FIM

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

Page 34: Aula 1 Algoritmo e Pseudo-código

algoritmo “Multiplicação”var

n1,n2,m:inteiroinicio

escreva(“Digitedoisnúmeros:”)leia(n1)leia(n2)mß n1*n2escreva(“Multiplicação=”,m)

fimalgoritmo

Exemplo- Pseudocódigo

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

Page 35: Aula 1 Algoritmo e Pseudo-código

ExemplocódigoC

CódigoC#include<stdio.h>voidmain() {int n1,n2,m;scanf("%d%d",&n1,&n2);m =n1*n2;printf("\n%d",m);

}

ALGORITMODECLAREn1,n2,mLEIAn1,n2m← n1*n2ESCREVAm

FIM

Page 36: Aula 1 Algoritmo e Pseudo-código

ALGORITMODECLAREn,mLEIAnm←n*2ESCREVAm

FIM

Exemplo- FluxogramaCrieumalgoritmoparaexibirodobrode

umnúmero

Page 37: Aula 1 Algoritmo e Pseudo-código

Exercício

• Façaumprogramaquerecebaoraio ecalculeoperímetro dacircunferêncianas trêsformasderepresentaçãodealgoritmos(descriçãonarrativa,fluxogramaepseudocódigo)

perimetroß 2*pi *raio