Você está na página 1de 33

Introduo Programao 1 aula

Prof. Jos Honorato F.N.

honoratonunes@gmail.com

Resumo da aula
Introduo lgica de programao Histrico da programao Funcionamento do computador Algoritmos Representao de algoritmos Atividades

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Conceitos
A lgica a cincia do pensamento correto. Esta declarao no implica contudo em afirmar que ela seja a cincia da verdade. Mesmo que tudo o que se permita afirmar dentro da lgica seja supostamente verdadeiro em determinado contexto, as mesmas afirma es podem resultar falsas se aplicadas ao mundo real.
Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Conceitos
!s filsofos da lgica afirmam que, "para entender o que realmente acontece no mundo, precisamos entender o que no acontece", isto , as propriedades invariantes das entidades ou o#jetos que o comp em.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Histrico
! uso da lgica na representao dos processos de racioc$nio remonta aos estudos de %oole &'(')*'(+,- e de .e Morgan &'(/+* '(0'-, so#re o que veio a ser mais tarde c1amado "2lge#ra de %oole". .eve*se ao matem3tico alemo 45ttlo# 6rege &'(07- a primeira verso do que 1oje denominamos c3lculo de predicados, proposto por ele como uma ferramenta para formali8ar princ$pios lgicos. 9o final do sculo passado a matem3tica 1avia atingido um est3gio de desenvolvimento mais do que prop$cio : explorao do novo instrumento proposto por 6rege.
Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Histrico
;m passo muito importante foi dado em '7</, em estudos simult=neos, porm independentes, reali8ados pelo alemo >urt 45del e o francs ?acques @er#rand. Em '7<,, Alfred AarsBi produ8iu a primeira teoria sem=ntica rigorosamente formal do c3lculo de predicados, introdu8indo conceitos precisos para "satisfati#ilidade", "verdade" &em uma dada interpretao-, relacionadas. 9o in$cio da Deg. 4uerra Mundial, em '7<7, toda a fundamentao terica #3sica da lgica computacional estava pronta. "conseqCncia lgica" e outras no es

Histrico
6oi somente a partir da metade dos anos )/ que o desenvolvimento da ento nov$ssima tecnologia dos computadores conseguiu oferecer aos pesquisadores o potencial computacional necess3rio para a reali8ao de experincias mais significativas com o c3lculo de predicados. Em '7)(, uma forma simplificada do c3lculo de predicados denominada forma clausal comeou a despertar o interesse dos estudiosos. Aam#m por essa poca, .ag EraFit8 &'7+/- propGs um novo tipo de operao so#re os o#jetos do c3lculo de predicados, que mais tarde veio a ser con1ecida por unificao.

Histrico
A programao em lgica em sistemas computacionais, entretanto, somente se tornou realmente poss$vel a partir da pesquisa so#re no prova autom3tica do de teoremas, da particularmente desenvolvimento Erinc$pio

Hesoluo por ?. A. Ho#inson &'7+)-. A programao em lgica em sistemas computacionais, entretanto, somente se tornou realmente poss$vel a partir da pesquisa so#re no prova autom3tica do de teoremas, da particularmente desenvolvimento Erinc$pio

Hesoluo por ?. A. Ho#inson &'7+)-.

Histrico
A expresso "programao em lgica" &logic programming, originalmente em ingls- devido a Ho#ert >oFalsBi &'70,- e designa o uso da lgica como linguagem de programao de computadores. ! primeiro interpretador experimental foi desenvolvido por um grupo de pesquisadores liderados por Alain Iolmerauer na ;niversidade de Aix*Marseille &'70J- com o nome de Erolog.

Funcionamento do Computador
Componentes funcionais dos sistemas operacionais: ;m sistema operacional executa muitas fun es para que o computador funcione #em e eficientemente. Algumas das mais importantes soK L Mnterpretador de IomandosK tradu8 comandos para instru es que o processador entende. L 4erente dos ;su3riosK guarda as tarefas de um usu3rio separadas daquelas dos outros. L 4erente das AarefasK guarda as opera es de uma tarefa separadas daquelas dos outros. L 4erente dos HecursosK gerencia o uso de recursos de 1ardFare entre usu3rios e tarefas usando*os a qualquer ponto do tempo. L 4erente de ArquivosK cria, deleta, muda arquivos e gerencia acesso para arquivos. L Mnterface de ;su3rio K gerencia acesso do usu3rio para o interpretador de comandos e o gerente de arquivos.

Funcionamento do Computador

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Funcionamento do Computador

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Algoritmos
#m algoritmo pode ser definido como um con$unto de regras %instru&es'( )em definidas( para soluo de um determinado pro)lema. *egundo o dicion+rio ,ic!aelis( o conceito de algoritmo a -utili.ao de regras para definir ou e/ecutar uma tarefa espec0fica ou para resolver um pro)lema espec0fico.Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Algoritmos
A palavra algoritmo no um termo computacional( ou se$a( no se refere apenas +rea de inform+tica. 1 uma definio ampla 2ue agora 2ue voc3 $+ sa)e o 2ue significa( talve. a utili.e no seu cotidiano normalmente. a inform+tica( o algoritmo o -pro$eto do programa-( ou se$a( antes de se fa.er um programa %soft4are' na 5inguagem de Programao dese$ada %Pascal( 6( 7elp!i( etc.' deve8se fa.er o algoritmo do programa.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Algoritmos
#m programa( um algoritmo escrito numa forma compreens0vel pelo computador %atravs de uma 5inguagem de Programao'( onde todas as a&es a serem e/ecutadas devem ser especificadas nos m0nimos detal!es e de acordo com as regras de sinta/e da linguagem escol!ida.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Algoritmos
#m algoritmo no a soluo de um pro)lema( pois( se assim fosse( cada pro)lema teria um 9nico algoritmo. #m algoritmo um :camin!o: para a soluo de um pro)lema e( em geral( e/istem muitos camin!os 2ue levam a uma soluo satisfatria( ou se$a( para resolver o mesmo pro)lema pode8se o)ter v+rios algoritmos diferentes.
Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Algoritmos
Para resolver um pro)lema no computador necess+rio 2ue se$a primeiramente encontrada uma maneira de descrever este pro)lema de uma forma clara e precisa. 1 preciso 2ue encontremos uma se2u3ncia de passos 2ue permitam 2ue o pro)lema possa ser resolvido de maneira autom+tica e repetitiva. ;sta se2u3ncia de passos c!amada de algoritmo.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Algoritmos
A noo de algoritmo central para toda a computao. A criao de algoritmos para resolver os pro)lemas uma das maiores dificuldades dos iniciantes em programao em computadores #ma das formas mais efica.es de aprender algoritmos atravs de muitos e/erc0cios.

Algoritmos
< aprendi.ado da 5gica essencial para a formao de um )om programador( servindo como )ase para o aprendi.ado de todas as 5inguagens de Programao( estruturadas ou no. 7e um modo geral esses con!ecimentos sero de supra import=ncia( pois a$udaro no cotidiano( desenvolvendo um racioc0nio r+pido.
Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Formas de Representao de Algoritmos


<s algoritmos podem ser representados de v+rias formas( como por e/emplo>

Atravs de uma l0ngua %portugu3s( ingl3s( etc.'> forma utili.ada nos manuais de instru&es( nas receitas culin+rias( )ulas de medicamentos( etc.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Formas de Representao de Algoritmos


Atravs de uma linguagem de programao %Pascal( 6( 7elp!i( etc.'> esta forma utili.ada por alguns programadores e/perientes( 2ue -pulam- a etapa do pro$eto do programa %algoritmo' e passam direto para a programao em si. Atravs de representa&es gr+ficas> so )astante recomend+veis( $+ 2ue um -desen!o%diagrama( flu/ograma( etc.' muitas ve.es su)stitui( com vantagem( v+rias palavras.

Formas de Representao de Algoritmos


6ada uma dessas formas de representar um algoritmo( tem suas vantagens e desvantagens( ca)e a pessoa escol!er a forma 2ue mel!or l!e convir. As principais formas de representao de algoritmos so> 7escrio arrativa 7iagrama de assi8*!neiderman %7iagrama de 6!apin' Flu/ograma %7iagrama de Flu/o' Portugu3s ;struturado %Pseudocdigo( Portugol ou Pseudolinguagem'

Descrio Narrativa
1 a descrio dos passos a serem e/ecutados pelo algoritmo( feita diretamente em linguagem natural. <s passos so listados um aps o outro( na se2u3ncia em 2ue devem ser e/ecutados( cada uma em uma nova lin!a de te/to.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Descrio Narrativa
;/emplo de algoritmo para trocar l=mpada ?. Pegar a escada. @. Posicionar a escada so) a l=mpada. A. Pegar a l=mpada nova. B. *u)ir na escada. C. Remover a l=mpada antiga. D. 6olocar a l=mpada nova. E. 7escer da escada. F. 6olocar a l=mpada antiga no li/o. G. Huardar a escada.

Atividade
6rie

um algoritmo( utili.ando a descrio narrativa( 2ue descreva os passos necess+rios para trocar o pneu de um carro.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Diagrama de Nassi-Shneiderman (Diagrama de Chapin


<s 7iagramas assi8*!neiderman( tam)m con!ecidos como 7iagramas de 6!apin( surgiram nos anos EI como uma maneira de a$udar nos esforos da a)ordagem de programao estruturada. A ideia )+sica deste diagrama representar as a&es de um algoritmo dentro de um 9nico ret=ngulo( su)dividindo8 o em ret=ngulos menores( 2ue representam os diferentes )locos de se2u3ncia de a&es do algoritmo.

Diagrama de Nassi-Shneiderman (Diagrama de Chapin

Algoritmo para trocar l=mpada utili.ando o 7iagrama de 6!apin


Inicio

Pegar a escada. Posicionar a escada sob a lmpada. Pegar a lmpada nova. Subir na escada. Remover a lmpada antiga. Colocar a lmpada nova. Descer da escada. Colocar a lmpada antiga no lixo. Guardar a escada. Fim

Atividade

6rie um algoritmo( utili.ando o diagrama de 6!apin( 2ue descreva os passos necess+rios para trocar o pneu de um carro. 6rie um algoritmo( utili.ando o diagrama de 6!apin( 2ue descreva os passos necess+rios para preparar caf.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

Flu!ograma (Diagrama de Flu!o


<s Flu/ogramas ou 7iagramas de Flu/o( so uma representao gr+fica 2ue utili.am formas geomtricas padroni.adas ligadas por setas de flu/o( para indicar as diversas a&es %instru&es' e decis&es 2ue devem ser seguidas para resolver o pro)lema em 2uesto. ;les permitem visuali.ar os camin!os %flu/os' e as etapas de processamento de dados poss0veis e( dentro destas( os passos para a resoluo do pro)lema.

Flu!ograma (Diagrama de Flu!o

Atividade
6rie um algoritmo( utili.ando o flu/ograma( 2ue descreva os passos necess+rios para trocar uma l=mpada. 6rie um algoritmo( utili.ando o flu/ograma( 2ue descreva os passos necess+rios para trocar o pneu de um carro. 6rie um algoritmo( utili.ando o diagrama de 6!apin( 2ue descreva os passos necess+rios para preparar caf( utili.ando uma cafeteira.

"i#liogra$ia "%sica

,A JA <(Kilson L. Lamaturni8*o Paulo8*P. !gica estruturada para programa"#o de computadores ( ;d. 1rica ?GGE e @II?. ,<RA;*( 6elso Ro)erto. $struturas de Dados e %lgoritmos. ;d. 1rica( *o Paulo 5<P;*( Anita. Introdu"#o & programa"#o. Rio de Janeiro> 6ampus(@II@.

Prof. Jos Honorato F. unes !onoratonunes"gmail.com

"i#liogra$ia Complementar

N; ;7#JJI( Hum)erto ,. e ,;OJ( Joo A. !gica e inguagem de Programa"#o ' Introdu"#o ao Desenvolvimento de So(t)are %?P edio'. ;ditora do 5ivro Ocnico( @I?I F<RN;55< ;( A. 5. Q. e ;)erspac!er( H. F. !gica de Programa"#o * a Constru"#o de %lgoritmos e $struturas de Dados %AP edio'. Pearson( @IIC 6<R,; ( O!omas H. et. al. %lgoritmos+ ,eoria e Pr-tica. ;ditora 6ampus( @II@. JIQIA I( @IIB. ivio. Pro.eto de %lgoritmos. ;ditora ova Fronteira(

*;N;*OA( Ro)ert K. Conceitos de inguagens de Programa"#o. NooRman( @II?.