Lógica de Programação

Lógica de Programação

(Parte 1 de 10)

Autor: Elias Andrade Pereira

1. INTRODUÇÃO1
2. CONCEITOS GERAIS2
PROGRAMAÇÃO ESTRUTURADA2
DESENVOLVIMENTO TOP-DOWN3
MODULARIZAÇÃO3
ESTRUTURAS DE CONTROLE3
CONFIABILIDADE3
MANUTENIBILIDADE4
PSEUDOLINGUAGEM - PORTUGOL4
3. RACIOCÍNIO MATEMÁTICO4
4. ALGORITMOS7
FLUXO DE CONTROLE EM ALGORITMOS1
CRIANDO ALGORITMOS12
IDENTIFICADORES14
VARIÁVEIS14
TIPOS BÁSICOS DE DADOS15
COMENTÁRIOS16
COMANDO DE ATRIBUIÇÃO16
OPERADORES ARITMÉTICOS17
OPERADORES RELACIONAIS17
OPERADORES LÓGICOS18
PRIORIDADE NA AVALIAÇÃO DE EXPRESSÕES18
COMANDOS DE ENTRADA E SAÍDA18
FUNÇÕES19
OPERAÇÕES COM STRINGS19
ESTRUTURA DE UM ALGORITMO20
ESTRUTURAS DE CONTROLE20
VETORES26
MATRIZES28
REGISTROS3
ARQUIVOS36
PROCEDIMENTOS E FUNÇÕES40
5. MAPEAMENTO DE ALGORITMOS PARA PASCAL43

Apostila de Lógica de Programação – Parte I

1INTRODUÇÃO
conhecimento que não mudou e não mudará nunca – a Lógica de Programação

Muitos anos se passaram desde os primórdios da história da computação, mas apesar de já termos vivido vários paradigmas de programação, existe uma base de

Faço uma associação direta da Lógica de Programação com o Raciocínio

uma fórmula, e não a sintaxe pré-definida da mesma. O saber da Lógica está no “praticar”

Matemático, onde o importante é a interpretação de um problema e a utilização correta de

Não existem “fórmulas” em Informática, o que existe é o aperfeiçoamento de nossa forma de pensar e raciocinar sobre um problema, podendo extrair do mesmo uma solução eficiente e eficaz, sob um determinado ângulo de visão. Assim, verificamos que é preciso aprender a pensar sobre os problemas, extraindo deles o máximo de informações.

A solução que criamos para um determinado problema necessita ser exteriorizada e expressa numa linguagem publicamente conhecida. Assim, utilizamos a lógica de programação para desenvolver nossas soluções e os algoritmos para apresentar essas soluções ao mundo.

Venho acompanhando nos últimos anos vários livros de Algoritmos e Estruturas de Dados. Todos ensinam como representamos estruturas de controle e atribuições, ou como declaramos variáveis, mas nenhum deles – que eu tenha lido até o momento –, orientou o aluno na forma de pensar. Precisamos mais do que “fórmulas”, precisamos aprender a pensar.

Os princípios da programação estruturada surgidos no final da década de 60 – introduzidos por Dijkstra – levaram a necessidade de se ter uma linguagem que implementasse essas idéias, já que as linguagens de época (FORTRAN, COBOL e BASIC) não permitiam aplicar claramente as técnicas ensinadas. Assim, o professor Niklaus Wirth e

Apostila de Lógica de Programação – Parte I seus colegas da Universidade Técnica de Zurique (Suíça) desenvolveram, no início dos anos 70, a linguagem PASCAL – uma derivação da linguagem ALGOL 60, porém de implementação mais simples e com uma estrutura de dados mais poderosa. O nome Pascal foi uma homenagem a Blaise Pascal, famoso matemático, que criou a calculadora baseada em discos de madeira, que foi a predecessora da calculadora de mesa e serviu de inspiração para diversos computadores.

Assim, nossa apostila oferecerá, inicialmente, conceitos gerais sobre

Programação. Posteriormente, vocês terão exercícios de Raciocínio Matemático que lhes exercitarão o poder de PENSAR! Em seguida, apresentaremos como desenvolver algoritmos de soluções para Sistemas. E por último, vamos conhecer a Linguagem Pascal, a fim de vermos nossos algoritmos funcionando – ao vivo e à cores !

2CONCEITOS GERAIS

A Programação Estruturada pode ser entendida como uma forma de programar que visa facilitar a escrita, entendimento, validação e manutenção de programas. Para Dijkstra, “a arte de programar consiste na arte de organizar e dominar a complexidade”.

A Programação Estruturada procurar reduzir o nível de complexidade através de três níveis:

a) desenvolvimento do programa em diferentes fases por refinamento sucessivo (desenvolvimento top-down); b) decomposição do programa total em módulos funcionais, organizados de preferência num sistema hierárquico; c) uso de um número limitado de estruturas básicas de fluxo de controle dentro de cada módulo.

Apostila de Lógica de Programação – Parte I

Na Programação Estruturada, ao desenvolvermos um algoritmo, temos como objeto um produto final – o programa. Todavia, para termos esta transição, passamos por várias fases, no sentido “cima para baixo”, onde cada fase é documentada e principalmente obtida por “refinamento” da fase anterior, até chegarmos a um nível de detalhamento que permita implementar o algoritmo diretamente na linguagem de programação.

A solução final de um problema é obtida através de soluções de subproblemas, o que permite dividir o programa em módulos com subfunções claramente delimitadas, que podem, inclusive, ser implementados separadamente, por diversos programadores de uma equipe.

São representadas pela seqüência simples, o comando condicional e o comando repetitivo, e fornecem ao programador um aumento da legibilidade e compreensão de cada módulo de programa. Assim, temos como uma das principais normas da Programação Estruturada : não usar comandos de desvio (GOTO).

Medimos a confiabilidade de um sistema através de sua resposta ao uso constante, no tocante a: - não apresentar erros; e,

- corresponder às especificações.

Atualmente, a sociedade está totalmente dependente dos sistemas de computação. Assim, aumenta exponencialmente a importância do nosso trabalho.

Nos fins dos anos 60, constatou-se que as sistemáticas usadas pelos programadores eram os grandes responsáveis pela baixa confiabilidade dos programas. Como solução destes problemas, surgiu a Programação Estruturada (PE).

Apostila de Lógica de Programação – Parte I

As revisões sofridas por um programa (releases) tanto para correção de erros quanto para mudanças de especificação, são consideradas como manutenção de software.

Os programas devem passar por testes exaustivos de confiabilidade antes de serem colocados em produção. Falhas nesta fase levam a altos níveis de manutenção, que conseqüentemente, levam a altos custos.

Sabemos que ao desenvolver programas necessitamos de nossa criatividade, para que tenhamos soluções eficazes e eficientes. Todavia, não podemos representar nossas soluções em algoritmos totalmente escritos em português. Em programação, todas as vezes que executarmos um algoritmo a partir de um estado inicial x, devemos sempre obter o mesmo estado final y. Desta forma, é fácil perceber que a linguagem natural, não formalizada, geraria ambigüidades.

Assim, temos o PORTUGOL, que é uma pseudolinguagem de programação (simbiose do Português com o ALGOL e PASCAL), que permite pensarmos no problema e não na máquina que vai executar o algoritmo. Além disso, não perdemos a flexibilidade e continuamos a ter a proximidade com a linguagem humana, facilitando, portanto, a interpretação.

3RACIOCÍNIO MATEMÁTICO

As crianças aprendem facilmente como adicionar e subtrair valores. Suas dificuldades começam no momento em que elas se deparam com problemas e necessitam identificar quais operações trarão soluções para os mesmos.

Vejamos alguns exercícios de Raciocínio Matemático, que ajudarão a “exercitar” nosso cérebro. No final desta apostila, vocês encontrarão o gabarito, mas não olhem antes de tentar resolvê-los. Todos serão corrigidos em sala de aula.

Apostila de Lógica de Programação – Parte I

1. Há três suspeitos de um crime: o cozinheiro, a governanta e o mordomo. Sabe-se que o crime foi efetivamente cometido por um ou por mais de um deles, já que podem ter agido individualmente ou não. Sabe-se, ainda que:

A) se o cozinheiro é inocente, então a governanta é culpada; B) ou o mordomo é culpado ou a governanta é culpada, mas não os dois; C) o mordomo não é inocente.

Logo:

(a) a governanta e o mordomo são os culpados (b) o cozinheiro e o mordomo são os culpados (c) somente a governanta é culpada (d) somente o cozinheiro é inocente (e) somente o mordomo é culpado.

2. Qual o número que completa a seqüência: 1, 3, 6, 10,

3. Um frasco contém um casal de melgas. As melgas reproduzem-se e o seu número dobra todos os dias. Em 50 dias o frasco está cheio. Em que dia o frasco esteve meio cheio ?

Exercícios

Apostila de Lógica de Programação – Parte I

4. Qual o número que completa a seqüência: 1, 1, 2, 3, 5,

5. Num concurso de saltos, Maria foi, simultaneamente, a 13ª melhor e 13ª pior. Quantas pessoas estavam em competição ?

6. Bruno é mais alto que Joaquim. Renato é mais baixo que o Bruno. Então, Joaquim é o mais alto dos três.

( ) Verdadeiro ( ) Falso

7. O preço de um produto foi reduzido em 20% numa liquidação. Qual deverá ser a percentagem de aumento do preço do mesmo produto para que ele volte a ter o preço original ?

Use a descrição abaixo para resolver os exercícios 8 e 9. Chapeuzinho Vermelho ao entrar na floresta, perdeu a noção dos dias da semana. A Raposa e o Lobo Mau eram duas estranhas criaturas que freqüentavam a floresta. A Raposa mentia às segundas, terças e quartas-feiras, e falava a verdade nos outros dias da

Apostila de Lógica de Programação – Parte I semana. O Lobo Mau mentia às quintas, sextas e sábados, mas falava a verdade nos outros dias da semana.

8. Um dia Chapeuzinho Vermelho encontrou a Raposa e o Lobo Mau descansando à sombra de uma árvore. Eles disseram:

Raposa: “Ontem foi um dos meus dias de mentir” Lobo Mau: “Ontem foi um dos meus dias de mentir”

A partir dessas afirmações, Chapeuzinho Vermelho descobriu qual era o dia da semana. Qual era?

9. Em qual dia da semana é possível a Raposa fazer as seguintes afirmações?

Eu menti ontem. Eu mentirei amanhã.

10. (ESAF) José quer ir ao cinema assistir ao filme “Fogo Contra Fogo”, mas não tem certeza se o mesmo está sendo exibido. Seus amigos, Maria, Luis e Julio têm opiniões discordantes sobre se o filme está ou não em cartaz. Se Maria estiver certa, então Julio está enganado. Se Julio estiver enganado, então Luís está enganado. Se Luis estiver enganado, então o filme não está sendo exibido. Ora, ou o filme “Fogo conta Fogo” está sendo exibido, ou José não irá ao cinema. Verificou-se que Maria está certa. Logo,.

(Parte 1 de 10)

Comentários