Aula02 Alg

download Aula02 Alg

of 42

Transcript of Aula02 Alg

  • 7/26/2019 Aula02 Alg

    1/42

    Universidade Federal do Amap

    Curso de Engenharia Eltrica

    Algoritmos e Programao

    Unidade 2 Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    2/42

    Algoritmo e Programao Portugus Estruturado

    Definio

    Conforme ser verificou na resoluo dosalgoritmos propostos como exerccio, a escritados comandos lina ! lina " uma forma de se

    representar um algoritmo# Essa lista de instru$es estruturada consiste no%ue camamos de Portugus Estruturado, eser& a ferramenta adotada para a construo doalgoritmo#

    ' portugus estruturado tam("m " denominadode )portugol*, pseudolinguagem ou ainda depseudoc+digo

  • 7/26/2019 Aula02 Alg

    3/42

    Algoritmo e Programao Portugus Estruturado

    Caractersticas do Portugus

    Estruturado

    Utili-a um con.unto muito mais limitado de comandosdo %ue a lngua portuguesa normal, por"m ao secom(inar esse con.unto de comandos pode/se construirdesde algoritmos simples at" outros (em complexos#

    Essa t"cnica possi(ilita %ue cada comando tena umainterpretao 0nica para a m&%uina a partir de um rigoradotado para a construo de algoritmos, impedindoassim, a existncia de am(iguidades, econse%uentemente erros de programao#

    A partir do rigor de construo adotado no portugusestruturado, o algoritmo torna/se uma lista ordenada decomandos com(inados, cu.o se%uenciamento deexecuo consiste na soluo do pro(lema

  • 7/26/2019 Aula02 Alg

    4/42

    Algoritmo e Programao Portugus Estruturado

    Sintaxe e Semntica do Portugus

    Estruturado

    A Sintaxeconsiste no con.unto de regras aserem seguidas para a escrita dos algoritmos,semelante as regras %ue seguimos em nossalngua para escrevermos, por exemplo uma fraseonde, em geral, deve conter su.eito 1 ver(o1predicado#

    A semnticarefere/se ao %ue " efetuado pelocomputador %uando ele encontra um comando#

    Portanto, a sintaxe est relacionada a ormade um comando, en!uanto !ue a semnticaest relacionada ao seu conte"do

  • 7/26/2019 Aula02 Alg

    5/42

    Algoritmo e Programao Portugus Estruturado

    Tipos de Dados

    's computadores arma-enam dados na mem+ria so(forma de n0meros 3 e 45, por forma a facilitar atransformao desses dados em sinais el"tricos#

    Contudo, no " o o(.etivo desse curso sa(ermos comoesses dados so arma-enados na mem+ria docomputador, mas sim %ue tipo de dado deve serarma-enado#

    Um dado, so(retudo, consiste em alguma informao noestado primitivo, %ue ao ser processado pode gerar outrotipo de informao 0til Por exemplo, o n0mero 6,7 podeser um dado a ser utili-ado dentro de um algoritmo pararepresentar a nota de um aluno, (em como ser utili-adopara calcular a m"dia final desse mesmo aluno 8o-ino odado 6,7 no tem significado algum

  • 7/26/2019 Aula02 Alg

    6/42

    Algoritmo e Programao Portugus Estruturado

    Tipos de Dados

    Por causa da nature-a do %ue pode serarma-enado na mem+ria do computador,existem diferentes tipos de dados 's

    cinco tipos (&sicos de dados %ueadotaremos para a construo dealgoritmos consistem em9 :nteiro# ;eal#

  • 7/26/2019 Aula02 Alg

    7/42

    Algoritmo e Programao Portugus Estruturado

    Tipos de Dados

    =ado do tipo :nteiro ;epresenta %ual%uer valor contido no con.unto dos

    n0meros inteiros como 4, 2, >?, /7, , etc @utili-ado para representar informao onde no

    existe parte fracion&ria# =ado do tipo ;eal

    ;epresenta todo valor contido no con.unto dosn0meros reais %ue cont"m parte fracion&ria5, como422># >?7# 66666# /3>?7>62, etc Conormese veriica a parte racionria separada daparte inteira pelo ponto decimal# $sto umamaneira de nos acostumarmos %s linguagensde programa&'o !ue utili(am o ponto decimalao invs de v)rgula

  • 7/26/2019 Aula02 Alg

    8/42

    Algoritmo e Programao Portugus Estruturado

    Tipos de Dados

    =ado do tipo

  • 7/26/2019 Aula02 Alg

    9/42

    Algoritmo e Programao Portugus Estruturado

    Tipos de Dados

    =ado do tipo Cadeia de Caractere Este dado representa um con.unto de

    caracteres a ser arma-enado namem+ria do computador =a mesmaforma %ue o simples caractere, acadeia de caracteres deve serenvolvida por aspas simples *+

    para ser reconhecida no algoritmo#Ex- +Universidade Federal doAmap/4 +123567/#

  • 7/26/2019 Aula02 Alg

    10/42

    Algoritmo e Programao Portugus Estruturado

    Operadores Aritmticos

    's operadores aritm"ticos sosm(olos conectivos utili-ados paraefetuar um determinado c&lculonum"rico Eles consistem em9

  • 7/26/2019 Aula02 Alg

    11/42

    Algoritmo e Programao Portugus Estruturado

    Operadores Aritmticos ! Exemplos

    >1 " igual a 43 H> " igual a 24 >2H " igual a 22? >I " igual 3?2J7 %uociente real5 >/ " igual a /? F> " igual a 2 o %uociente da uma diviso

    inteira5

    ?F> no " possvel, pois o operador F s+ tra(ala com n0meros inteiros

    K> " igual a 4 resto da diviso inteira5 I3 no " p+ssivel >H sintaticamente errado K> sintaticamente errado

    l d

  • 7/26/2019 Aula02 Alg

    12/42

    Algoritmo e Programao Portugus Estruturado

    Operadores "elacionais

    8o operadores %ue possi(ilitam relacionardois elementos, cu.o resultado dacomparao ser& verdadeiro ou falso Esses

    operadores so9

    Al it P P t E t t d

  • 7/26/2019 Aula02 Alg

    13/42

    Algoritmo e Programao Portugus Estruturado

    Operadores "elacionais ! Exemplos

    > L ? " igual a falso43 LM6 " igual a verdadeiro

    /4 L /2 " igual a verdadeiro>GMJ6 " igual a verdadeiroN42 sintaticamente errado

    Al it P P t E t t d

  • 7/26/2019 Aula02 Alg

    14/42

    Algoritmo e Programao Portugus Estruturado

    Operadores #$gicos

    Estes operadores possi(ilitam estender ouso dos operadores relacionais compondositua$es l+gicas mais sofisticadas Eles

    consistem em9

    Operador RelaoE (&&) Conjuno de Operao

    Ou (||) Disjuno de OperaoNo (~, !) Negao de Operador

    Algo itmo e P og amao Po t g s Est t ado

  • 7/26/2019 Aula02 Alg

    15/42

    Algoritmo e Programao Portugus Estruturado

    Operadores #$gicos ! Ta%elas

    Para o melor entendimento de como funciona cadaoperador l+gico, vamos acompanar as ta(elas aseguir relativas a cada tipo de operador

    Oa(ela/verdade do operador E

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    16/42

    Algoritmo e Programao Portugus Estruturado

    Operadores #$gicos ! Ta%elas

    Oa(ela/verdade do operador Bo

    Oa(ela/verdade do operador 'u

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    17/42

    Algoritmo e Programao Portugus Estruturado

    Operadores #$gicos ! Exemplos

    Conforme as ta(elas anteriores, podemosento, nos exemplos a seguir, afirmar%ue9 J L > e 43 L ? " igual a verdadeiro J L > e 43 N ? " igual a falso Bo ? M ? " igual a falso

    Em geral, os operadores l+gicos so(astante utili-ados pelos comandos dedeciso se NcondioL/ ento faa5 e derepetioen%uanto NcondioL / faa5conforme ser& visto mas adiante

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    18/42

    Algoritmo e Programao Portugus Estruturado

    &un'es

    As fun$es consistem num pe%uenoprograma %ue tendo valores de entradageram uma resposta no local do c&lculo

    onde foram solicitadas Em outras palavras,elas retornam um resultado# A sintaxe de uma funo consiste em9

    Nnome da funoL Nparmetro4L,Nparmetro2L,5

    Em programa&'o costumamos explicar a constru&'o deuma determinada sintaxe utili(ando os sinais 8 e 9#Contudo, esses sinais n'o devem ser escrito noalgoritmo, pois s'o apenas sim:;licos para indicar aoprogramador como deve ser constru)da umadeterminada sintaxe de programa&'o#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    19/42

    Algoritmo e Programao Portugus Estruturado

    &un'es

    Exemplo de uma fun$es %ue podem serutili-adas na construo dos algoritmos9

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    20/42

    Algoritmo e Programao Portugus Estruturado

    &un'es

    @ importante comentar %ue em grande parte daslinguagem de programao existem fun$esinternas .& definidas pela pr+pria ferramentacomputacional#

    Bo entanto, " pr&tica comum se criar fun$es esu(fun$es dentro de um algoritmo para reali-arum c&lculo ou tarefa especficos Porm, deve1>Q >6

    (5 >1?5H6

    's parnteses agora ganam a prioridade5H6Q>

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    24/42

    g g g

    Prioridade na (ontagem de

    Express'es

    Exemplos9c5J/%uad?517

    4Q

    A funo tem prioridade so(re outros operadores5J/4Q17/JR& um empate entre dois operadores aditivos e 1 Beste caso

    calcula/se o mais a es%uerda5/J 1 7

    />

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    25/42

    g g g

    Prioridade na (ontagem de

    Express'es

    Oente fa-er9 a5 43L6 e 71?L4?

    (5 143F2/JH>H?

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    26/42

    g g g

    )ari*+eis

    As vari&veis representam um dos elementos maisimportante na construo de algoritmos S'o elasas responsveis pelo arma(enamento dosdados na mem;ria do computador4

    Para ensinar o computador como manipular umdado, o programador precisa nomear um lugar namem+ria onde esse dado ser& guardado#

    Uma vari&vel portanto consiste num local com umnome especfico dentro da mem+ria docomputador, criado em um algoritmo, paraarma-enar um determinado dado

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    27/42

    )ari*+eis

    ;epresentao a(strata das vari&veis na mem+ria deum computador

    :dadeScliente OaxaSimposto

    ;esultado BomeScolega

    46 3?7>

    Q7 Torge

    EV;:A

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    28/42

    )ari*+eis

    A notao de vari&vel tem aver com ofato de %ue o dado pode se modificar isto", variar5 durante a execuo do

    algoritmo pela m&%uina#

    As vari&veis esto presentes na mem+riado computador durante a execuo do

    algoritmo Ap+s o t"rmino da execuo, "como se os dados fossem apagados e osendereos vari&veis5 destrudas

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    29/42

    ,omes das )ari*+eis

    Ooda a vari&vel precisa ter um nome definido peloprogramador, e %ue deve ser 0nico dentro do algoritmopara no resultar em am(iguidades %uando o algoritmofor executado#

    Como regra geral, todo o nome de varivel devecome&ar por uma letra, e depois deve incluir apenasletras, dgitos ou ainda o sinal de su(linado )S*5 'odeve conter acentos, espa&o, :em como serdeinida igualmente como o nome de algumaun&'o impl)cita de uma dada linguagem deprograma&'o4

    Em programao estes nomes vari&veis5 criados peloprogramador so camados de identificadores

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    30/42

    Exemplos de nomes de +ari*+eis

    Exemplos inv&lidos9

    W4nota comea comnumero5

    Wm"diaSarit possui acento5

    W%uant inicial possui

    espao5WXalorSemS;Y possui ocaracter Y %ue uma dadalinguagem de programaopode utili-ar internamente5

    Exemplos v&lidos9

    WvalorSpago

    WcalSmedia

    Wi

    Wcont

    Widade

    Wsoma

    WmesSdoSano

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    31/42

    Tipos de dado das +ari*+eis

    Boda a varivel deve ter um tipo de dado relacionado aela# Ao se criar uma varivel, preciso se deinir !ualtipo de dado ela vai arma(enar4

    Por exemplo9

    Zueremos conta(ili-ar a %uantidade de latas de refrigerante deum arma-"m em um algoritmo Para isso definimos a vari&vel%uantSlata %ue deve guardar dados do tipo inteiro#

    ' mesmo poderamos proceder para arma-enar os preos de(lusas de uma lo.a, criando uma vari&vel precoS(lusas %ue devearma-enar dados do tipo real

    Conorme podemos veriicar as variveis precisam serdeclaradas no algoritmo para !ue a m!uina entendaos tipos de dados !ue elas devem arma(enar#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    32/42

    Declarao de )ari*+eis

    Ooda vari&vel usada em um algoritmoprecisa ser declarada :sto deve ser feito noincio da construo do algoritmo A sintaxe

    para declarao de vari&veis "Nvari&vel4L, Nvari&vel2L,9NtipoL#

    Exemplos9

    %uantSlata, %uantS(lusas9inteiro#precoS(lusa, mediaSarit9real#nomeSfuncionario9cadeia4

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    33/42

    O%ser+ao importante

    Uma varivel s; pode arma(enar umdado de cada ve(

    @ual!uer valor arma(enado em umavarivel sempre vai apagar algumoutro guardado anteriormente dentro

    dela, no mesmo algoritmo

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    34/42

    Sintaxe geral de um algoritmo A forma de um algoritmo em portugus estruturado

    sempre segue a estrutura (&sica descrita a seguir9BiposII=eclarao de tipos personali-ados Ntiponovo4LMNtipo4L# Ntiponovo2LMNtipo2L#DariveisII =eclarao de vari&veis do algoritmo Nvari&vel4LMNtipo4L# Nvari&vel2LMNtipo2L#IICorpo do algoritmo$n)cio Ncomando4L#

    Ncomando2L#Fim#II+dulosodulo Nnomem+dulo4L# [[ \ ]]#

    \

    =eclarao de tipos

    =eclarao de vari&veis

    coment&rio

    Parte principal do algoritmo

    :ndentao

    +dulos dos algoritmo

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    35/42

    Comando de Atri%uio

    A atri(uio consiste no comando solicitado !m&%uina %ue permite arma-enar o resultado de umaexpresso dentro de uma vari&vel A sintaxe noportugus estruturado "9

    Nnomevari&velL M NexpressoL#

    importante veriicar !ue no portugusestruturado *conorme se veriicou naestrutura geral apresentada anteriormentesempre colocamos o sinal de ponto

  • 7/26/2019 Aula02 Alg

    36/42

    Comando de Atri%uio

    Exemplo9 cota M 7# cont M 4#

    precoSgasolina M 2,QQQ valor M precoSunitarioH%uat#

    :s- suposto !ue as variveis doexemplo acima > oram previamentedeclaradas, pois uma varivel do tipointeiro n'o pode rece:er um dado dotipo real#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    37/42

    Comando de Entrada de Dados

    Zuando ensinamos o computador a executar algo,na maioria das ve-es, a m&%uina precisa de dadosde entrada a serem processados#

    Bo portugus estruturado o comando %ue indica ao

    computador %uando ele deve solicitar dados dousu&rio, consiste no comando ler; Essa solicitao " camada de entrada ou leitura de

    dados atrav"s de um dispositivo de entrada oteclado, por exemplo5#

    A sintaxe do comando de entrada de dados consiste

    em9

    lerNvar4L, Nvar2L,#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    38/42

    Comando de Entrada de Dados

    Exemplo9 ler valor4# ler numS(anco, codSagencia# ler nomeSfuncionario# ler a,(,c#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    39/42

    Comando de Sada de Dados

    Assim como o computador precisa de dados deentrada para executar um determinadoprocessamento, no faria sentido ele no exi(iresses resultados#

    Portanto o computador necessita de um comandoem %ue ele entenda %ue deve escrever ou imprimir5resultados e mensagens para um dispositivos desada supondo, o monitor de vdeo5#

    A sintaxe do comando de sada de dados consisteem9

    escreverNvar4L, Nvar2L,#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    40/42

    Comando de Sada de Dados

    Exemplo9escreversoma# II imprime o conte0do da vari&vel soma

    escrever^_im de C&lculo` II Exi(e uma mensagem

    escrever^' saldo atual "`, saldo# II Exi(e mensagem e um II conte0do

    escrevera1(# II Exi(e resposta da expresso

    :s- ote !ue no comando escrever umamensagem pode ser escrita com os acentos eoutros s)m:olos#

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    41/42

    Estudo de um exemplo

    Bo exemplo a seguir " apresentado um algoritmo a(ordando osdemais comandos apresentados anteriormente, em %ue reali-a asoma de dois n0meros9

    // Algoritmo para a soma de dois nmeros

    // Autor: Rogrio Almeida - Macap: 05/03/2010

    Variveis

    num1, num2, soma:real

    Incio

    lernum1

    lernum2 soma ! num1"num2

    escrever #A soma dos dois nmeros :$, soma

    Fim

    Algoritmo e Programao Portugus Estruturado

  • 7/26/2019 Aula02 Alg

    42/42

    Estudo de um exemplo

    :serva&=es importantes As duas primeiras linas iniciadas por duas (arras

    II5 consistem em coment&rios#

    _oram criadas trs vari&veis para este pro(lema,num4, num2 e soma, respectivamente Am(as sodeclaradas como vari&veis %ue rece(ero dados dotipo real#

    Bo corpo do algoritmo utili-amos o ponto/e/vrgulaao final de cada comando#

    Alguns comandos foram indentados em relao amargem es%uerda para indicar %ue fa-em parte deum comando mais geral