Formadora: Deonilde Costa Introduo Lgica de Programao Antes de se comear com uma Linguagem de Programao, temos de ser capazes de estruturar o nosso raciocnio para que quando nos colocam um problema, termos um controlo sobre a lgica que atribumos ao problema de forma a conseguir concluir a soluo sem erros. Formadora !eonilde "osta O que a lgica? Lgica de programao # a t#cnica de encadear pensamentos para atingir determinado ob$eti%o. Formadora !eonilde "osta Instrues Na linguagem comum, entende&se por instrues 'um con$unto de regras ou normas definidas para a realizao ou emprego de algo(. Em informtica, instruo # a informao que indica a um computador uma ao elementar a e)ecutar. Formadora !eonilde "osta Instrues Exemplo: se quisermos fazer uma omelete com batatas, precisamos colocar em pr*tica uma s#rie de instru+es descascar as batatas, bater os o%os, fritar as batatas, etc... Formadora !eonilde "osta Noes bsicas Problemas, Algoritmos e Programas ,pera+es elementares, tipos de dados e %ari*%eis "onstruo de algoritmos em linguagem informal simblica Formadora !eonilde "osta Problemas, lgoritmos e Programas An*lise do problema -especificao do problema, anlise de requisitos, pressupostos, etc../ "onceo do algoritmo/ 0raduo desse algoritmo na linguagem de programao. Formadora !eonilde "osta !efinio do problema Planificao da resoluo 1strat#gia de abordagem 2mplementao & codificao 0este e depurao !ocumentao 3anuteno Programa Problema Algoritmo Problemas, lgoritmos e Programas Fase de "onceo Fase de implementao Formadora !eonilde "osta Algoritmo Programa 4equ5ncia finita e ordenada de a+es que conduzem 6 soluo de um problema. "on$unto de instru+es destinadas a serem processadas num sistema inform*tico para realizar uma determinada tarefa. Problemas, lgoritmos e Programas Linguagem de programao A programao consiste na codificao precisa desse algoritmo, segundo uma linguagem de programao especfica. Exemplos: 7isual 8asic, ", 9a%a, P:t;on, "<, .=10, >03L, P>P? Formadora !eonilde "osta Problemas, lgoritmos e Programas Algoritmia A formulao de algoritmos # separada em duas fases distintas na resoluo do problema & A fase de formulao de algoritmos & A fase da sua implementao numa linguagem ou ferramenta de programao -7isual 8asic, ", 9a%a, P:t;on, ?. Formadora !eonilde "osta lgoritmo A pala%ra algoritmo, 6 primeira %ista, parece&nos estran;a. 1mbora apresente uma designao descon;ecida, fazemos uso constante de algoritmos no nosso quotidiano a maneira como uma pessoa toma ban;o # um algoritmo. ,utros algoritmos frequentemente encontrados so 2nstru+es para se utilizar um aparel;o eletrodom#stico/ @ma receita para preparar um dado prato/ Auia de preenc;imento da declarao do 2B4/ =as opera+es b*sicas -adio, multiplicao, di%iso e subtrao.. Formadora !eonilde "osta lgoritmo @m algoritmo # formalmente uma sequ5ncia finita de passos que le%am 6 e)ecuo de uma tarefa, # uma sequ5ncia de instru+es para atingir uma meta especfica. 1stas tarefas no podem ser redundantes nem sub$eti%as na sua definio, de%em ser claras e precisas. Formadora !eonilde "osta lgoritmo Para resol%er um problema atra%#s dum computador # necess*rio encontrar em primeiro lugar uma maneira de descre%5&lo de uma forma clara e precisa & A noo de algoritmo # central para toda a inform*tica. A criao de algoritmos para resol%er os problemas # uma das maiores dificuldades, mas tamb#m um dos desafios mais atrati%os, dos iniciados em programao de computadores. Formadora !eonilde "osta !arater"sticas #undamentais de um algoritmo 1ntradas um algoritmo de%e ter uma ou mais entradas, isto # quantidades que l;e so fornecidas antes do algoritmo iniciar. 4adas um algoritmo de%e ter uma ou mais sadas, isto # quantidades que tem uma relao especfica com as entradas. Preciso 0odos os passos do algoritmo de%em ter um significado preciso, no ambguo, especificando e)atamente o que de%e ser feito. Formadora !eonilde "osta !arater"sticas #undamentais de um algoritmo 1fic*cia: ,s passos de%em conduzir 6 resoluo do problema proposto. !e%em ainda ser e)ecut*%eis numa quantidade finita de tempo e com uma quantidade finita de esforo. 1fici5ncia: @m algoritmo de%e ser eficiente. 2sto significa que todas as opera+es de%em ser suficientemente b*sicas de modo que possam ser em princpio e)ecutadas com preciso num tempo finito por um ser ;umano usando papel e l*pis. Formadora !eonilde "osta lgoritmo , algoritmo de%e ser f*cil de se interpretar e f*cil de codificar. ,u se$a, ele de%e ser o intermedi*rio entre a linguagem falada e a linguagem de programao. Pode haver mais do que um algoritmo para resolver um problema Formadora !eonilde "osta $%em&lo ' @ma receita # uma descrio dum con$unto de passos ou a+es que fazem a combinao dum con$unto de ingredientes com %ista a obter um produto gastronmico particular. Formadora !eonilde "osta Farin;a de trigo ,%os ACcar Leite 3anteiga Fermento Beceita $%em&lo ' @m algoritmo opera sobre um con$unto de entradas -farin;a o%os, fermento, etc. no caso do bolo. de modo a gerar uma sada que se$a Ctil -ou agrad*%el. para o utilizador -o bolo pronto.. Formadora !eonilde "osta $%em&lo ' Algoritmo receita de !olo": D. 8ater duas claras em castelo/ E. Adicionar duas gemas/ F. Adicionar uma c;*%ena de aCcar/ G. Adicionar duas col;eres de manteiga/ H. Adicionar uma c;*%ena de leite de coco/ I. Adicionar farin;a e fermento/ J. "olocar numa forma e le%ar ao forno em lume brando. K. 7erificar tempo de cozedura L. Betirar do forno Formadora !eonilde "osta $%em&lo ( #omar dois n$meros 1scre%a o primeiro nCmero no retMngulo A 1scre%a o segundo nCmero no retMngulo 8 4ome o nCmero do retMngulo A com nCmero do retMngulo 8 "oloque o resultado no retMngulo " Formadora !eonilde "osta BetMngulo A BetMngulo 8 Besultado $%erc"cios %& Descre'a a se(u)ncia lgica: a& *ara Comer+ !& *ara fer'er gua+ c& *ara trocar uma l,mpada& d& -ue permita efetuar a mudana do pneu furado de uma 'iatura& Formadora !eonilde "osta a) Para !omer 2nicio Pegar no garfo "olocar comida no garfo Le%ar o garfo 6 boca Abrir a boca 3eter a comida dentro da boca Fec;ar a boca 3astigar a comida 1ngolir Fim Formadora !eonilde "osta b) Para #er*er gua 2nicio Pegar no recipiente "olocar *gua no recipiente Le%ar recipiente 6 placa Ligar a placa !ei)ar fer%er !esligar a placa Betirar o recipiente da placa Fim Formadora !eonilde "osta c) Para trocar uma l+m&ada Algoritmo #imples 2ncio "olocar escada Pegar na lMmpada no%a 4ubir a escada Betirar lMmpada fundida "olocao da lMmpada no%a 7erificar se luz acende Arrumar escada Fim Formadora !eonilde "osta Formadora !eonilde "osta Preparar uma lMmpada no%a "olocar a lMmpada no%a Betirar a lMmpada fundida Processo concludo Luz acendeN 4im =o c) Para trocar uma l+m&ada Definir as opera.es elementares / Algoritmo mais complexo dar passos subirOdescer degraus pegarOlargar ob$etos rodar ob$etos sentido diretoOindireto capacidade de deciso Formadora !eonilde "osta D. Preparar acessos 6 lMmpada fundida D.D Bepetir enquanto no c;egar 6 escada D.D.D !ar passos D.E Pegar ob$eto -escada. D.F Bepetir enquanto no c;egar debai)o lMmpada fundida D.F.D !ar passos E. Betirar lMmpada fundida E.D Bepetir enquanto no c;egar 6 lMmpada fundida E.D.D 4ubir degraus E.E Bepetir enquanto no soltar a lMmpada fundida E.E.D Bodar ob$eto -lMmpada fundida. no sentido indireto E.F Bepetir enquanto no c;egar ao c;o E.F.D descer degraus Formadora !eonilde "osta F.1scol;er lMmpada no%a F.D Bepetir enquanto no c;egar $unto ga%eta das lMmpadas no%as D.F.D !ar passos F.E Bepetir enquanto ;ou%er lMmpadas no%as ou pot5ncia lMmpada no%a diferente de pot5ncia lMmpada fundida. F.E.D Pegar ob$eto -L.=.. F.E.E 4e pot5ncia L.=. P Pot5ncia L.F. F.E.E.D 1nto largar a L.F. F.E.E.E 4eno largar a L.=. Formadora !eonilde "osta G. "olocao da lMmpada no%a G.D Bepetir enquanto no c;egar 6 escada G.D.D !ar passos G.E Bepetir enquanto no c;egar ao casquil;o G.E.D 4ubir degraus G.F Bepetir enquanto no firmar a lMmpada no%a G.F.D Bodar ob$eto-L.=.. no sentido direto G.G Bepetir enquanto no c;egar ao c;o G.G.D descer degraus H. Arrumar escada H.D Pegar ob$eto -escada. H.E Bepetir enquanto no c;egar ao stio da escada H.E.D !ar passos H.F Largar ob$eto -escada. I. F23 Formadora !eonilde "osta d) ,ue &ermita e#etuar a mudana do &neu #urado de uma *iatura) Araficamente Formadora !eonilde "osta 4ubstituio do pneu furado 2r buscar pneu bom Qmacaco Q c;a%e Betirar pneu furado e substitu&lo "olocar macaco na posio correta e ele%ar o carro Auardar macaco Q pneu furado Q c;a%e Definir as opera.es elementares: dar passos abrir ou fec;ar pegar ou largar rodar deslocar no sentido ... capacidade de deciso Formadora !eonilde "osta D. 8uscar macaco, c;a%e e pneu suplente D.D Bepetir at# c;egar ao carro D.D.D !ar passos D.E Abrir a mala D.F Pegar macaco, c;a%e e pneu bom D.G Bepetir at# c;egar ao pneu furado D.G.D !ar passos E. "olocar o macaco em posio correta e ele%ar o carro E.D Largar o pneu e a c;a%e E.E 1ncai)ar macaco E.E.D !eslocar o macaco no sentido do carro at# encai)ar E.F 1le%ar o carro E.F.D Bepetir at# carro ele%ado E.F.D.D Bodar mani%ela no sentido ;or*rio Formadora !eonilde "osta F.Betirar o pneu furado e substitu&lo F.D Pegar na c;a%e F.E Bepetir quatro %ezes F.E.D !eslocar a c;a%e at# encai)ar na porca F.E.E Bepetir at# porca cair F.E.E.D Bodar sentido anti&;or*rio F.F Largar c;a%e F.G Pegar no pneu furado F.H !esloc*&lo sentido contr*rio ao carro F.I Largar pneu furado F.J Pegar no pneu bom F.K !eslocar pneu no sentido do carro F.L 1ncai)ar pneu Formadora !eonilde "osta F.DR Pegar na c;a%e F.DD Bepetir quatro %ezes F.DD.D Pegar na porca F.DD.E 1ncai)ar porca F.DD.F Pegar c;a%e F.DD.G Bepetir at# ficar apertado F.DD.G.D Bodar no sentido ;or*rio F.DE Largar c;a%e Formadora !eonilde "osta G. Auardar o macaco, c;a%e e o pneu furado G.D 8ai)ar o carro G.D.D Bodar mani%ela no sentido contr*rio ao ;or*rio G.E !esencai)ar macaco G.F Pegar pneu furado Q macaco Q c;a%e G.G Bepetir at# 6 mala G.G.D !ar passos G.H Largar c;a%e Q macaco Q pneu furado G.I Fec;ar mala F23 Formadora !eonilde "osta