tecnicas+de+programacao+i+ +faci

Upload: soulhazel

Post on 18-Jul-2015

521 views

Category:

Documents


1 download

TRANSCRIPT

Tcnicas de Programao I

Prof. Joo Roberto Cruz1 Semestre / 2012

Tcnicas de Programao IContedo Programtico:Unidade 1: Introduo Algoritmos e Linguagens de Programao Unidade 2: Conceitos Introdutrios de Programao em Linguagem Java Unidade 3: Estrutura de Seleo Unidade 4: Estrutura de Repetio Unidade 5: Funes e Recursividade

1

Tcnicas de Programao IBIBLIOGRAFIASBSCA 1. Puga, Sandra; Rissetti, Gerson. LGICA DE PROGRAMAO E ESTRUTURAS DE DADOS: COM APLICAES EM JAVA. 2. So Paulo: Pearson Education, 2009. 2. Deitel, H. M. & Deitel, P. J. JAVA: COMO PROGRAMAR. 8. Ed. So Paulo: Pearson Prentice-Hall, 2010. 3. Goodrich, Michael T.; Tamassia, Robert. ESTRUTURAS DE DADOS E ALGORITMOS EM JAVA. 4.Ed. Porto Alegre: Bookman, 2007. 600p. COMPLEMENTAR 1. Souza, Marco Antonio Furlan; Gomes, Marcelo Marques; Soares, Marcio Vieira; Concilio, Ricardo. ALGORITMOS E LGICA DE PROGRAMAO. So Paulo: Thomson, 2005. 214p. 2. Lafore, Robert. ESTRUTURAS DE DADOS E ALGORITMOS EM JAVA. Rio de Janeiro: Cincia Moderna, 2004. 702p.

Tcnicas de Programao IUnidade 1: Introduo Algoritmos e Linguagens de Programao1.1 1.2 1.3 1.4 Introduo Organizao de Computadores Algoritmos, estrutura de dados e programas Funo dos Algoritmos na Computao Exemplos informais de algoritmos 1.4.1 Torre de Hanoi 1.4.2 Trs Jesutas e trs canibais 1.4.3 Exemplos do cotidiano 1.5 Notaes grficas e descritivas de algoritmos

2

Tcnicas de Programao IUnidade 1: Introduo Algoritmos e Linguagens de Programao1.6 Paradigmas de linguagens de programao 1.7 Processos de Traduo

Tcnicas de Programao I1.1 Introduo Organizao de Computadores "Os computadores so como automveis. Voc no precisa saber detalhes do seu funcionamento para utiliz-los, mas algum conhecimento ajuda. As pessoas inteligentes sabem selecionar o carro certo - ou componentes de hardware certo - para suas necessidades".(Meyer, 2000, p. 53)

3

Tcnicas de Programao IFuncionamento bsico dos sistemas de computao (a) (b) (c) (d) Os computadores executam quatro funes distintas sendo elas: Entrada; Processamento; Armazenamento/recuperao de dados; Sada.

Tcnicas de Programao IComponentes bsicos de um sistema de computaoPerifricos de entrada Unidade de Processamento CPU Perifricos de sada

Dispositivos de armazenamento memria

4

Tcnicas de Programao I- Os dados produzidos na sada correspondem a execuo de instrues (comandos) durante a etapa de processamento, realizada pela CPU (Unidade Central de Processamento processador). Cada processador tem um conjunto nico de instrues para processar os dados, porm geralmente utilizam a mesma forma de composio das instrues.

Tcnicas de Programao IOPERAO OPERANDOS

INSTRUO (COMANDO) A operao especifica a funo a ser desempenhada, por exemplo, somar, armazenar ou desviar, entre outras. Os operandos fornecem os dados a serem utilizados na operao ou ainda a forma de alcanar a posio destes dados na memria.

5

Tcnicas de Programao I1.2 Algoritmos, estrutura de dados e programas - Algoritmo uma seqncia finita de instrues (comandos) bem definidas e no ambguas, cada uma das quais pode ser executada mecanicamente num perodo de tempo finito e com uma quantidade de esforo finita. Um algoritmo no representa, necessariamente, um programa de computador, e sim os passos necessrios para realizar uma tarefa.

Tcnicas de Programao I- Um Algoritmo tem um carter imperativo no qual a ocorrncia do nome de uma ao tambm chamada de comando. - Em outras palavras, um algoritmo uma norma executvel para atingir um certo efeito desejado (obter uma soluo para certo tipo de problema).

6

Tcnicas de Programao I- Exemplos de algoritmos (na vida prtica): Manuais de uso Instrues de montagem Receitas de cozinha Informaes de como chegar a um lugar

- Um algoritmo DEVE ser determinstico, ou seja, dadas as mesmas condies iniciais deve produzir, depois de executado, os mesmos resultados.

Tcnicas de Programao I

Em computao, os algoritmos representam a lgica dos programas e so codificados em instrues (comandos) pertencentes a uma determinada linguagem de programao

7

Tcnicas de Programao IExemplo de Algoritmo usado por um cozinheiro para descascar batatas para o jantar:1) Seqncia Simples de Comandos: Trazer a cesta de batatas da despensa; Trazer a panela do armrio; Descascar batatas; Devolver a cesta despensa. - E se algumas vezes ele colocar um avental aps buscar a panela e antes de descascar as batatas?

Tcnicas de Programao I2) Insero de Comandos: Trazer a cesta de batatas da despensa; Trazer a panela do armrio; Colocar o avental; Descascar batatas; Devolver a cesta despensa. - E se a colocao do avental s ocorrer quando o cozinheiro estiver de roupa branca?

8

Tcnicas de Programao I3) Conectivo Condicional: Trazer a cesta de batatas da despensa; Trazer a panela do armrio; SE roupa branca ENTO Colocar o avental; Descascar batatas; Devolver a cesta despensa. - A execuo da ao colocar avental depende, em cada vez que o algoritmo executado, do resultado (verdadeiro ou falso) da inspeo se a roupa branca. - E se em um dia o cozinheiro tiver que descascar 10 quantidades batatas?

Tcnicas de Programao I4) Conectivo Repetitivo: Trazer a cesta de batatas da despensa; Trazer a panela do armrio; SE roupa branca ENTO Colocar o avental; 10 Descascar batatas; Devolver a cesta despensa. - Podemos ver ainda que, desta forma, difcil sabermos determinar se o nmero de batatas escolhido (n de repeties de Descascar...) foi suficiente para o jantar. - Precisamos ento introduzir outro tipo de comando:

9

Tcnicas de Programao I5) Conectivo Repetitivo Condicional: Trazer a cesta de batatas da despensa; Trazer a panela do armrio; SE roupa branca ENTO Colocar o avental ENQUANTO nmero de batatas insuficiente FAA Descascar batatas; Devolver a cesta despensa. - Com isto vemos o poder do conceito de algoritmo. Um texto esttico, capaz de cobrir toda uma classe de acontecimentos, escrito no mesmo nvel de detalhes do relato de um observador.

Tcnicas de Programao I- Estruturas de dados (Data Structures) o nome dado a organizao de dados e algoritmos de forma coerente e racional de modo a otimizar o seu uso. - De acordo com o modo como um conjunto de dados so organizados e como as operaes que so efetuadas sobre estes dados, pode-se solucionar de forma simples problemas extremamente complexos.

10

Tcnicas de Programao I- Dados quando esto organizados de uma forma coerente representam uma estrutura de dados. - Uma estrutura de dados um modo particular de armazenamento e organizao de dados em um computador de modo que possam ser usados de modo eficiente.

Tcnicas de Programao I- Estruturas de dados clssicas: Tipo de dados; Vetores ou arrays; Listas; Filas; Pilhas; rvores; Grafos; Pesquisa de dados; Classificao de Dados.

11

Tcnicas de Programao I- Um programa de computador uma coleo de instrues que descrevem uma tarefa a ser realizada por um computador. O termo pode ser uma referncia ao cdigo fonte, escrito em alguma linguagem de programao, ou ao arquivo que contm a forma executvel deste cdigo fonte. - Um programa de computador a formalizao de um algoritmo em qualquer linguagem capaz de ser transformada em instrues que sero executadas por um computador gerando os resultados esperados

Tcnicas de Programao I- O termo "software" pode ser utilizado quando se quer designar um conjunto de programas ou, mais freqentemente, quando feita uma referncia parte no fsica do sistema computacional, em contraposio ao termo "hardware", que designa o conjunto de componentes eletrnicos que constituem um computador.

12

Tcnicas de Programao I- Os programas de computador utilizados diretamente por pessoas comuns, como os editores de texto, so chamados de software aplicativo, ou de aplicao. Os programas voltados para dar suporte funcional aos computadores, como os sistemas operacionais, so chamados de software de sistema.

Tcnicas de Programao I1.3 Funo dos Algoritmos na Computao - Os algoritmos so amplamente utilizados na rea da cincia da computao, desde de a definio das instrues realizadas pelo hardware processadores e demais dispositivos, passando pelas operaes executadas pelo sistema operacional, no gerenciamento dos computadores, at a documentao das operaes necessrias elaborao de solues voltadas para a construo de interface entre software e hardware, programas e demais aplicativos.

13

Tcnicas de Programao I1.4 Introduo Lgica O que Lgica? - Organizao do pensamento de forma coerente - Permite chegar a determinadas concluses - Permite escolher problemas conhecidos caminhos para resolver

Tcnicas de Programao I- O que Lgica? Exemplo1: 1. Todo mamfero um animal 2. Todo cavalo um mamfero 3. Portanto, todo cavalo um animal Exemplo2: 1. Brasil um pas do planeta Terra 2. Todos os Brasileiros so do Brasil 3. Logo, todos os Brasileiros so Terrqueos

14

Tcnicas de Programao I- O que Lgica? Exemplo3:

1. 2. 3. 4.

Hoje sbado Todo sbado que no tem feriado tem aula Hoje no feriado: Logo, hoje tem aula

Tcnicas de Programao I- Lgica no cotidiano Exemplo1: 1. 2. 3. 4. Alexandre s ronca quando bebe Alexandre s bebe quando sai Alexandre sai todos os dias Portanto, quando Alexandre ronca?

15

Tcnicas de Programao I- Lgica no cotidiano Exemplo1:

1. Alexandre s ronca quando bebe 2. Alexandre s bebe quando sai 3. Alexandre sai todos os dias 4. Portanto, quando Alexandre ronca? R: Todos os dias

Tcnicas de Programao I- Lgica no cotidiano Exerccio: Trs jesutas e trs canibais precisam atravessar um rio; para tal dispem de um barco com capacidade para duas pessoas. Por medida de segurana no se deve permitir que em nenhuma margem a quantidade de jesutas seja inferior de canibais. Qual a soluo para efetuar a travessia com segurana, considerando que o barco no pode navegar vazio?

16

Tcnicas de Programao I- Lgica no cotidianoResposta: 01. 02. 03. 04. 05. 06. 07. 08. 09. 10. 11. Atravessar um jesuta e um canibal para a margem B Voltar o jesuta para a margem A Atravessar dois canibais para a margem B Voltar um canibal para a margem A Atravessar dois jesutas para a margem B Voltar um jesuta e um canibal para a margem A Atravessar dois jesutas para a margem B Voltar um canibal para a margem A Atravessar dois canibais para a margem B Voltar um canibal para a margem A Atravessar dois canibais para a margem B

Tcnicas de Programao I- Lgica no cotidiano Exerccio: Um agricultor precisa atravessar o rio para transportar sua carga, que so dois fardos de capim e um carneiro. O problema que ele s pode transportar uma coisa de cada vez no seu pequeno barco. Pior ainda, se ele deixar o carneiro e o capim juntos, o carneiro vai comer o capim. Como fazer ento para que ele leve sua carga para a outra margem sem prejuzo algum?

17

Tcnicas de Programao I- Lgica no cotidiano Resposta: Primeiro vai levar o carneiro para a outra margem e deixar na margem de origem, os dois fardos de capim. Em seguida ele voltar e vai pegar um fardo de capim. Ele vai levar um fardo para a margem de destino, l onde est o carneiro no momento. Ele ento deixa l um fardo e traz o carneiro de volta. Ento, ele deixa o carneiro sozinho na margem de origem e leva o outro fardo de capim para a margem de destino. Finalmente ele volta e leva o carneiro.

Tcnicas de Programao I- Lgica no cotidiano Exerccio: Torre de Hani. Mover os trs discos de uma haste para outra, considerando as seguintes regras: pode-se mover apenas um disco de cada vez; nunca pode ser colocado um disco maior sobre um menor

18

Tcnicas de Programao I- Lgica no cotidiano Exerccio: Torre de Hani (Soluo)

Tcnicas de Programao IResumo de Algoritmo - Seqncia finita de passos, logicamente organizados, para resoluo de um problema conhecido - Visa a atingir um objetivo bem definido - Deve ser o mais simples, claro e preciso possvel

19

Tcnicas de Programao I- Algoritmo 1: Troca de Lmpada 1. pegar uma escada;

2. posicionar a escada embaixo da lmpada;3. buscar uma lmpada nova; 4. subir na escada; 5. retirar a lmpada velha; 6. colocar a lmpada nova.

Tcnicas de Programao I- Algoritmo 2: Troca de Lmpada com teste 1. pegar uma escada; 2. posicionar a escada embaixo da lmpada; 3. buscar uma lmpada nova; 4. acionar o interruptor; 5. se a lmpada no acender, ento 6. subir na escada; 7. retirar a lmpada queimada; 8. colocar a lmpada nova.

20

Tcnicas de Programao I- Algoritmo 3: Troca de Lmpada com teste no incio 1. acionar o interruptor; 2. se a lmpada no acender, ento 3. pegar uma escada; 4. posicionar a escada embaixo da lmpada; 5. buscar uma lmpada nova; 6. subir na escada; 7. retirar a lmpada queimada; 8. colocar a lmpada nova.

Tcnicas de Programao I- Algoritmo 4: Troca de Lmpada com teste e repetio indefinida01. acionar o interruptor; 02. se a lmpada no acender, ento 03. pegar uma escada; 04. posicionar a escada embaixo da lmpada; 05. buscar uma lmpada nova; 06. acionar o interruptor; 07. subir na escada; 08. retirar a lmpada queimada; 09. colocar a lmpada nova; 10. se a lmpada no acender, ento 11. retirar a lmpada queimada; 12. colocar outra lmpada nova; 13. se a lmpada no acender, ento 14. retirar a lmpada queimada; 15. colocar outra lmpada nova; 16. se a lmpada no acender, ento 17. retirar a lmpada queimada; 18. colocar outra lmpada nova; At quando?

21

Tcnicas de Programao I- Algoritmo 5: Troca de Lmpada com teste e condio de parada01. acionar o interruptor; 02. se a lmpada no acender, ento 03. pegar uma escada; 04. posicionar a escada embaixo da lmpada; 05. buscar uma lmpada nova; 06. subir na escada; 07. retirar a lmpada queimada; 08. colocar uma lmpada nova; 09. enquanto a lmpada no acender, faa 10. retirar a lmpada queimada; 11. colocar uma lmpada nova; 12. acionar o interruptor;

Tcnicas de Programao I- Algoritmo 6: Troca de Lmpada com teste para 10 soquetes01. acionar o interruptor do 1 soquete; 02. se a lmpada no acender, ento 03. pegar uma escada; 04. posicionar a escada embaixo da lmpada; 05. buscar uma lmpada nova; 06. subir na escada; 07. retirar a lmpada queimada; 08. colocar uma lmpada nova; 09. enquanto a lmpada no acender, faa 10. retirar a lmpada queimada; 11. colocar uma lmpada nova; 12. acionar o interruptor do 1 soquete; 13. acionar o interruptor do 2 soquete; 14. se a lmpada no acender, ento 15. pegar uma escada; 16. posicionar a escada embaixo da lmpada; 17. (...) Repetir para todos os soquetes...

22

Tcnicas de Programao I- Algoritmo 7: Troca de Lmpada com teste para 10 soquetes e repetio01. ir at o painel de interruptores; 02. Enquanto soquete menor ou igual a dez, faa 03. acionar o interruptor do prximo soquete; 04. se a lmpada no acender, ento 05. pegar uma escada; 06. posicionar a escada embaixo da lmpada; 07. buscar uma lmpada nova; 08. subir na escada; 09. retirar a lmpada queimada; 10. colocar uma lmpada nova; 11. enquanto a lmpada no acender, faa 12. retirar a lmpada queimada; 13. colocar uma lmpada nova; 14. acionar o interruptor;

Tcnicas de Programao I1.6 Tipos de Algoritmos 1.6.1 Pseudocdigo ou Portugus Estruturado 1.6.2 Descrio Narrativa 1.6.3 Fluxograma 1.6.4 Diagrama diagrama N-S de Chapin Nassi-Shneiderman ou

23

Tcnicas de Programao I1.6.1 - Pseudocdigo ou Portugus Estruturado- Vantagem: Transcrio para programa computador) praticamente imediata. - Desvantagem: Necessrio aprender regras (linguagem de

Tcnicas de Programao I1.6.1 - Pseudocdigo ou Portugus Estruturado- Exemplo: Ler dois nmeros e calcular a mdia algoritmo Media var x,y,media: real inicio Leia(x) Leia(y) media (x+y)/2 escreva(media) fimalgoritmo

24

Tcnicas de Programao I1.6.2 Descrio Narrativa- Utiliza linguagem natural - Vantagem: No necessrio aprender nenhum conceito novo - Desvantagem: Permite transcrio para programa vrias interpretaes, dificultando

Tcnicas de Programao I1.6.2 Descrio Narrativo (Exemplo)- Ler dois nmeros e calcular a mdia 1. 2. 2. 3. Ler o primeiro nmero Ler o segundo nmero Calcular a mdia entre os dois nmeros Mostrar o resultado da mdia

25

Tcnicas de Programao I1.6.3 Fluxograma- Utiliza elementos grficos - Vantagem: Entendimento de grficos mais fcil que de textos - Desvantagem: Necessrio aprender simbologia e no apresenta detalhes para transcrever para programa

Tcnicas de Programao I1.6.3 Fluxograma (Sbolos)Representa o incio ou fim do fluxograma Processamento Entrada de dados Sada de dados Deciso Preparao (usado em repeties) Conector (interliga partes do fluxograma ou desvia o fluxo) Conector de pgina Seta de orientao do fluxo

26

Tcnicas de Programao I1.6.3 Fluxograma (Exemplo)- Ler dois nmeros e calcular a mdia

incio

Ler x,y

M = (x + y) / 2

M

fim

Tcnicas de Programao I1.6.4 Diagrama diagrama N-S de Chapin ou Nassi-Shneiderman ou

- Apresenta a soluo do problema por meio de um diagrama de quadros com uma viso hierrquica e estruturada - Vantagem: Viso hierrquica - Desvantagem: Difcil representar a recursividade

27

Tcnicas de Programao I1.6.4 Diagrama de Chapin diagrama N-S (Exemplo) ou Nassi-Shneiderman ou

Tcnicas de Programao I O que Programao? = ABSTRAO!

A realidade complexa e rica em detalhes!

28

Tcnicas de Programao I Abstrao

Realidade O que voc abstrai dessa realidade?

Tcnicas de Programao I Abstrao

O que abstrao?

29

Tcnicas de Programao I AbstraoAbstrao = Operao mental que observa a realidade e captura apenas os aspectos relevantes para um contexto

Tcnicas de Programao I

30

Tcnicas de Programao I

Tcnicas de Programao I

31

Tcnicas de Programao I

MASLOW

Tcnicas de Programao I

A tarefa de programar sistemas computacionais envolve o exerccio constante da abstrao da realidade e sua codificao em uma linguagem de programao

Abstrao

Realidade

Abstrao + Programao Sistema de Locadora de Veculo

32

Tcnicas de Programao I Sistema Computacional

O que um Sistema Computacional?

Tcnicas de Programao I

Sistema ComputacionalSoftware Hardware

Peopleware

33

Tcnicas de Programao I Programao de Sistema Computacional

A programao de um sistema computacional pode ser resumida em 3 passos bsicosEntrada Dispositivo de Entrada Processamento Sada Dispositivo de Sada

UCP Memria

Tcnicas de Programao I Programao de Sistema ComputacionalExemplo 1 Exibir a mdia de dois nmerosEntrada Dispositivo de Entrada Processamento Sada Dispositivo de Sada

UCP Memria

6,8

(6 + 8) / 2

7

34

Tcnicas de Programao I Programao de Sistema ComputacionalExemplo 2 Exibir se o aluno est aprovado ou reprovadoEntrada Dispositivo de Entrada Processamento Sada Dispositivo de Sada

UCP Memria

Ana, 5, 3

Se (5+3)/2>=7 aprovado Seno reprovado

Ana, reprovado

Tcnicas de Programao I

AlgoritmoLinguagem de computao

Programa

35

Tcnicas de Programao I Princpios da soluo de problemasProblema

1

Fase de resoluo do problema

Soluo na forma de algoritmo

Soluo como um programa de computador

2 codificao) do algoritmo emalguma linguagem de programao

Fase de implementao (ou

Tcnicas de Programao I Princpios da soluo do problemas

Compreenso do problema Criao de uma seqncia de operaes (ou aes) que, quando executadas, produzem a soluo para o problema Descrio desse conjunto de aesALGORITMO

Levantamento

Resoluo de Problema

Codificao (uso de uma linguagem de programao)

Programao

36

Tcnicas de Programao I Revendo Caractersticas de Algoritmo Todo algoritmo deve apresentar algumas caractersticas bsicas:

ter fim; no dar margem dupla interpretao (no ambguo); capacidade de receber dado(s) de entrada do mundo exterior; poder gerar informaes de sada para o mundo externo ao do ambiente do algoritmo; ser efetivo (todas as etapas especificadas no algoritmo devem ser alcanveis em um tempo finito).

Tcnicas de Programao I Algoritmo x Qualidade Todo algoritmo deve ser feito de maneira lgica e racional, visando principalmente a sua eficincia e clareza. Ao construir algoritmos devemos: 1. Saber que estes sero lidos por outras pessoas, permitindo sua fcil correo. 2. Escrever comentrios na sua elaborao, onde os mesmos devem acrescentar alguma coisa, no apenas frasear. 3. Sempre atualizar os comentrios, em caso de manuteno. Pior do que um programa sem comentrios, um programa com comentrios errados. 4. Use comentrios, tambm, no cabealho do algoritmo, incluindo, principalmente: descrio do que faz o algoritmo autor data de criao

37

Tcnicas de Programao I Algoritmo x Qualidade5. Os comandos nos dizem o que est sendo feito, os comentrios dizem o porqu. 6. Utilizar espaos e/ou linhas em branco para melhorar a legibilidade. 7. Uso de parnteses aumenta a legibilidade e previne erros. 8. Escolha nomes representativos para variveis, todavia evite nomes muito longos ou muito curtos. Ex: Prefira SalBruto ou SalarioBruto ao invs de SB ou VAR1 Prefira TotAlunosAprovDireta ao invs de TotalAlunosAprovacaoDireta

Tcnicas de Programao I Algoritmo x Qualidade10.Um comando por linha suficiente. 11.Utilize identao, pois mostra a estrutura lgica do algoritmo. Use identao nos comandos de acordo com o nvel que estejam, ou seja, alinhe comandos de mesmo nvel e desloque comandos de nvel inferior. Ex.: incio comando 1; se condicao1 ento comando2; comando3; seno comando4; comando5; fim-se comando6; fim

38

Tcnicas de Programao IMtodo para construo de algoritmos Ler atentamente o enunciado. justamente o enunciado do exerccio que fornece o encaminhamento necessrio resoluo do problema, que se torna, portanto, dependente de sua completa compreenso. Retirar do enunciado a relao das entradas de dados. Retirar do enunciado a relao das sadas de dados. Determinar o que deve ser feito para transformar as entradas determinadas nas sadas especficas. Nesta fase que determinamos a construo de algoritmos propriamente dito, pois, a partir de alguns requisitos especificados, devemos determinar qual a seqncia de aes capaz de transformar um conjunto definido de dados nas informaes de resultado. Para isso, podemos: Utilizar o Mtodo Cartesiano; Aplicar o Planejamento Reverso; Montar uma Tabela de Deciso.

Tcnicas de Programao IMtodo Cartesiano Deve-se utilizar o Mtodo Cartesiano quando a complexidade (variedade) no estiver totalmente absorvida, conhecida. Nosso principal objetivo enquanto programadores vencer a complexidade, o que mantm clebre a frase de Descartes Dividir

para Conquistar.

Este mtodo consiste justamente em atacar o problema abrangente dividindo-o em partes menores, a fim de torn-lo mais simples ou especfico e, se necessrio, dividir novamente as partes no compreendidas. Podemos esquematizar o seguinte procedimento (algoritmo) para o mtodo: Dividir o problema em suas partes principais. Analisar a diviso obtida para garantir coerncia. Se alguma parte no for bem compreendida, aplicar a ela o mtodo. Analisar o objeto para garantir entendimento e coerncia.

39

Tcnicas de Programao I Planejamento Reverso

Processo utilizado que, a partir das sadas (informaes de resultado). Procura desagregar, desmontando a informao, a fim de atingir os dados de entrada Quando ento teramos (do fim para o incio) todas as aes.

Tcnicas de Programao I Tabelas de Deciso

Utilizar quando uma ou mais aes dependentes de um conjunto de condies assumirem determinadas combinaes de valores. Objetiva basicamente relacionar as aes que dependem de alguma condio com as prprias condies, a fim de esclarecer e visualizar facilmente quais valores o conjunto de condies deve assumir para que se efetue sua respectiva ao. Construir o algoritmo. Executar o algoritmo. Implica executar todas as aes descritas seguindo o fluxo de execuo estabelecido, verificando se os resultados obtidos correspondem ao esperado quando da montagem do algoritmo, detectando ento algum possvel erro no desenvolvimento deste. Essa atividade conhecida por teste de mesa.

40

Tcnicas de Programao I Exemploalgoritmo "primeiro" // Sntese // Objetivo: analisar idade de uma pessoa // Entrada: idade // Sada: mensagem de velho ou jovem // Declaraes bloco de var declaraes idade : inteiro inicio escreva("Informe sua idade: ") leia (idade) se (idade < 25) entao escreva ("VOCE JOVEM!") senao escreva ("VOCE VELHO!") fimse fimalgoritmo

Sntese do problema

bloco de instrues

Tcnicas de Programao I Um ambiente para escrever algoritmosDescreveremos uma mquina hipottica para a qual escreveremos nossos algoritmos. O nosso computador hipottico apresentar a seguinte organizao:

41

Tcnicas de Programao I Um ambiente para escrever algoritmos- Cada

uma das partes constituintes da figura acima tem os seguintes significados:- o meio pelo qual os dados que sero trabalhados pelo algoritmo vo ser introduzidos em nosso computador hipottico; -Parte responsvel pelas operaes matemticas e avaliaes lgicas;

1. Dispositivo de entrada (o teclado):

2. Unidade Lgica e Aritmtica (ULA): 3. Unidade de Controle: 4. Memria:

- Exerce controle sobre as demais partes do nosso computador. uma verdadeira gerente que distribui tarefas s outras unidades; - Guarda o algoritmo a ser executado e os dados a serem utilizados pelo mesmo. Todo dado fornecido ao computador e o resultado de suas operaes ficam guardados na memria; - o meio que se dispe para apresentao dos resultados obtidos.

5. Dispositivo de Sada (vdeo e impressora):

Tcnicas de Programao IFuncionamento do nosso computadorTodos os computadores, independentemente dos seus tamanhos, so conceitualmente semelhantes ao esquema da figura anterior. Resumidamente, podemos afirmar que existem 4 operaes bsicas que qualquer computador pode executar: a) operaes de entrada e sada: ler dados do teclado e escrever dados na tela so exemplos destas operaes. Elas servem para introduzir dados na memria do nosso computador e exibir dados que j estejam l armazenados; b) operaes aritmticas: so utilizadas na realizao de operaes matemticas (adio, subtrao, multiplicao e diviso); c) operaes lgicas e relacionais: tm aplicabilidade em comparaes, testes de condies lgicas (2>6 ? X=Y ?); d) movimentao de dados entre os vrios componentes: as operaes aritmticas so executadas na Unidade Lgica e Aritmtica, necessitando da transferncia dos dados para essa unidade e da volta do resultado final para ser guardado na memria.

42

Tcnicas de Programao IResolvendo um problema

Suponha que queiramos resolver o seguinte problema: a partir de dois nmeros que sero informados, calcular a adio dos mesmos. Se voc fosse encarregado de efetuar essa tarefa, seria bem provvel que utilizasse os passos a seguir:

a) saber quais so os nmeros; b) calcular a soma dos nmeros; c) responder questo com o valor do resultado.

Tcnicas de Programao IResolvendo um problema

Vejamos como seria resolvido esse mesmo problema em termos das operaes bsicas citadas anteriormente:

a) operao de entrada de dados dos nmeros ; b1) movimento do valor dos nmeros entre a memria e a ULA; b2) operao aritmtica de somar os 2 nmeros; b3) movimentao do resultado da ULA para guardar na memria; c) operao de sada do resultado, que est guardado na memria, para o dispositivo de sada desejado.

Deve-se salientar que os passos b1 b3, normalmente, ficam embutidos na operao matemtica, no sendo explicitados.

43

Tcnicas de Programao IResolvendo um problema

Em resumo, pode-se dizer que escrever algoritmos ou, em ltima anlise, programar consiste em dividir qualquer problema em muitos pequenos passos, usando uma ou mais das quatro operaes bsicas citadas. Esses passos que compem o algoritmo so denominados de comandos. Os comandos de uma linguagem de programao podem estar mais prximos da mquina (linguagens de baixo nvel) ou serem mais facilmente entendidos pelo homem (linguagens de alto nvel). A seqncia de operaes bsicas, dada anteriormente, para resolver o problema de adicionar dois nmeros, est em uma linguagem de baixo nvel para o nosso computador hipottico. Em uma linguagem de alto nvel teramos um resultado assim:leia (x,y) soma