23
Introdução à Lógica de Programação I – João Mutepa – Otniel Neto 1 2010 Objectivos 1. Levar os académicos a adquirir os conhecimentos que lhes permitam compreender lógica e rigorosamente os conteúdos de programação. 2. Pretende-se com este fascículo preencher a lacuna existente na formação dos académicos, relativamente à lógica de programação I, pelo facto desta matéria não constar no programa desta cadeira. Assim, o objectivo desta matéria é também familiarizar o académico com a utilização do computador, terminologia correntemente usada nos meios informáticos e, fundamentalmente, introduzir conceitos básicos de programação e algoritmia numa base que “achamos” correcta, adoptando os académicos a um posterior envolvimento nesta área de desenvolvimento. 3. Instruir os conceitos básicos de algoritmos de programação, familiarizando os académicos com os recursos computacionais na resolução de problemas reais. Com a utilização de pseudocódigos ou português estruturado, aplicar tanto prática como teoricamente, as estruturas básicas de programação de computadores. A aplicação da ementa servirá como manual introdutório para as demais disciplinas que tratarão de análise e desenvolvimento de sistemas computacionais. 4. E por fim, sugerir aos académicos a tomada de iniciativa própria, a criatividade e a pesquisa, itens indispensáveis para o desenvolvimento e capacitação profissional na área de sistemas de informação (ou mais precisamente Ciências da Computação).

Introdução à lógica de programação 1(pdf)

Embed Size (px)

DESCRIPTION

Esta apostila visa instruir os conceitos básicos de algoritmos de programação, familiarizando os académicos com os recursos computacionais na resolução de problemas reais. A aplicação da ementa servirá como manual introdutório para as demais disciplinas que levará os académicos a adquirir os conhecimentos que lhes permitam compreender lógica e rigorosamente os conteúdos de programação.

Citation preview

Page 1: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

1

2010

Objectivos

1. Levar os académicos a adquirir os conhecimentos que lhes permitam compreender lógica e rigorosamente os conteúdos de programação.

2. Pretende-se com este fascículo preencher a lacuna existente na formação dos académicos, relativamente à lógica de programação I, pelo facto desta matéria não constar no programa desta cadeira. Assim, o objectivo desta matéria é também familiarizar o académico com a utilização do computador, terminologia correntemente usada nos meios informáticos e, fundamentalmente, introduzir conceitos básicos de programação e algoritmia numa base que “achamos” correcta, adoptando os académicos a um posterior envolvimento nesta área de desenvolvimento.

3. Instruir os conceitos básicos de algoritmos de programação, familiarizando os académicos com os recursos computacionais na resolução de problemas reais. Com a utilização de pseudocódigos ou português estruturado, aplicar tanto prática como teoricamente, as estruturas básicas de programação de computadores. A aplicação da ementa servirá como manual introdutório para as demais disciplinas que tratarão de análise e desenvolvimento de sistemas computacionais.

4. E por fim, sugerir aos académicos a tomada de iniciativa própria, a criatividade e a pesquisa, itens indispensáveis para o desenvolvimento e capacitação profissional na área de sistemas de informação (ou mais precisamente Ciências da Computação).

Page 2: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

2

2010

Introdução

Para conceituar, o termo “lógica” em vários dicionários português é definido como:

- Análise do pensamento válido; - Encadeamento regular ou coerente das ideias e das coisas; - Estudo e determinação dos modos de pensamento discursivo que permitem evitar as contradições e os erros.

O objetivo principal da Lógica de Programação é demonstrar técnicas para resolução de problemas e consequentemente automatização de tarefas. O aprendizado da Lógica é essencial para formação de um bom programador, servindo como base para o aprendizado de todas as linguagens de programação, estruturadas ou não. De um modo geral esses conhecimentos serão de supra importância pois ajudarão no cotidiano, desenvolvendo um raciocínio rápido.

A logica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, pois ela permite definir a sequência lógica para o desenvolvimento. Em parte do nosso curso iremos aprender a desenvolver algoritmos em uma pseudolinguagem conhecida por “VisualG”. Para tal é necessário alguns conceitos básicos sobre lógica de programação e algoritmos.

Page 3: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

3

2010

Lógica de Programação

É a técnica de encadear pensamentos para atingir determinado objectivo. Estes pensamentos, podem ser descritos como uma sequência de instuções, que devem ser seguidas para se cumprir uma determinada tarefa.

Sequência Lógica

São passos executados até atingir um objectivo ou solução de um problema.

Instruções

Na linguagem comum, entende-se por instruções um “conjunto de regras ou normas definidas para a realização ou emprego de algo”. Em informática, porém, instrução é a informação que indica a um computador uma acção elementar a executar.

Convém ressaltar que uma ordem isolada não permite realizar o processo completo, por isto é necessário um conjunto de instruções colocadas em ordem sequencial lógica.

Por exemplo, se quisermos fazer uma “omolete de batatas” precisamos colocar em prática uma série de instruções: Descascar as batatas…, bater os ovos…, fritar os ovos…, etc. É evidente que essas instruções têm que ser executadas em uma ordem adequada – não se pode descascar as batatas depois fritá-las.

Dessa maneira, uma instrução tomada em separado não tem muito sentido; para obtermos o resultado, precisamos colocar em prática em prática o conjunto de todas as instruções, na ordem correcta.

Programa (ou Software)

Software, programas de computadores; instruções que fazem com que o hardware as máquinas funcionem.

Programa, sinónimo de software, conjunto de instruções que a CPU de um computador executa para obter um determinado resultado. O termo pode referir-se ao código fonte original ou à versão executável (em linguagem de máquina) de um componente de software. Quando no formato de código fonte, o programa é geralmente um arquivo de texto contendo as instruções de linguagens de programação de alto nível.

Page 4: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

4

2010

Os programas de computadores são nada mais do que algoritmos escritos numa linguagem de computador no qual são interpretados e executados por uma máquina no caso de um computador. Notemos que em cada esta interpretação rigorosa, um programa é por natureza, muito específico e rígido em relação aos algoritmos da vida real.

Programação

Para seu Computador funcionar de fato, ou seja, servir à você, precisará de “rodar” programas que sejam de seu interesse. Quando dizemos “rodar” estamos utilizando um termo da informática que significa Executar, fazer funcionar um programa ou software.

Os softwares permitem o desenvolvimento de programas. Possuem um poder de criação ilimitado, desde jogos, editores de texto, sistemas empresariais até sistemas operacionais.

Para armazenar um algoritmo na memória de um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado, isto é, que seja transcrito para uma linguagem que o computador possa entender, directa ou indirectamente.

Ademais, uma nota importante, a tarefa principal ao escrever um programa de computador para resolver um problema consiste em desenvolver um algoritmo (um procedimento) para produzir a solução do problema.

Linguagens de Programação

Os processadores têm a capacidade de processar exclusivamente sinais electrónicos binários. Dar uma instrução a um processador significa, na realidade, enviar sequências de números um e zero (1 e 0) espaçados no tempo de uma forma determinada. Essa sequência de sinais é denominada código de máquina. Uma linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objectivo de orientar a realização de uma tarefa pelo computador.

Existe dois tipos de linguagens de programação: Linguagem de alto nível e linguagens de baixo nível.

As linguagens de baixo nível (Assembly ou linguagem de máquina) permitem criar programas compactos, rápidos e específicos para cada processador, fazendo um uso eficiente do hardware. Quando se leva o programa a outra máquina, ele deve ser reescrito seguindo o conjunto de instruções disponíveis para aquele novo processador. Geralmente se diz que os

Page 5: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

5

2010

computadores são máquinas que realizam tarefas de cálculos ou processamento de textos. Entretanto, existe um alto grau de abstracção entre o que se pede ao computador e o que a máquina realmente compreende. Existe também uma relação complexa entre as linguagens de alto nível e o código de máquina.

As linguagens de alto nível (ou linguagens de aplicação) são normalmente fáceis de aprender porque estão formadas por elementos de linguagens naturais, como o inglês. Elas fazem com que os comandos binários que devem ser enviados ao processador sejam mais amigáveis e intuitivos, geralmente através do uso de palavras conhecidas, recursos visuais que auxiliam no processo de programação e ferramentas de depuração do código (debugger).

A tradução de um código fonte em linguagem de montagem (Assembly) para um código de máquina não executável (módulo de objecto) se realiza por meio de um montador (assembler). A tradução das instruções de linguagens de alto nível (o código-fonte de linguagens como Pascal, C, COBOL ou FORTRAN) para um módulo de objecto não é complicada e se realiza normalmente por um programa especial chamado compilador. Os módulos de objectos gerados a partir de compiladores ou montadores são transformados em um programa efectivamente executável através de um utilitário chamado linker (ligador), que é responsável pelo carregamento do código na memória principal (RAM) e pelo tratamento das referências de endereçamento.

Algumas linguagens de alto nível, como o Basic e o dBase, não geram módulo de objecto. Elas são interpretadas no momento da execução do programa, traduzindo cada instrução individualmente antes de executá-la.

Assim, qualquer linguagem de programação deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa).

Exemplos: Pascal, C, COBOL, C++, FORTRAN, ASP, PHP, Phyton, C#, SQL, JSP, XML, XSL, XML, HTML, Visual C++, Java Script, Delphi, J pascal, Visual Basic, Java, e entre outras.

Algoritmo

Em ciências da computação houve um processo de desenvolvimento simultâneo e interactivo de máquinas (hardware) e dos elementos que gerenciam a execução automática (software) de uma dada tarefa. E essa descrição da execução de uma tarefa, como considerada acima, é chamada algoritmo.

Page 6: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

6

2010

É a descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de acções. Existem, porém, várias definições para algoritmos, contudo cabe a cada académico averiguar qual a que mais se adequa ao seu entendimento lógico das coisas.

• Um algoritmo é uma sequência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema.

• Um algoritmo é também um conjunto finito de instruções que podem ser executadas mecanicamente em um tempo finito de modo a resolver um problema.

• Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa.

Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjectivas, sua definição deve ser clara e objectiva.

Como exemplo de algoritmos podemos citar os algoritmos das operações básicas (adição, multiplicação, divisão e subtracção) de números reais decimais. Outros exemplos seriam os manuais de aparelhos electrónicos, como uma impressora, que explicam passo-a-passo como por exemplo instalar ou ligar.

Exemplo de algoritmo:

Ler dois valores; Efectuar a soma destes valores; Apresentar o resultado.

• Escreva o primeiro número no rectângulo A;

• Escreva o segundo número no rectângulo B;

• Some o número do rectângulo A com número do rectângulo B e coloque o resultado no rectângulo C.

Rectângulo A Rectângulo B Rectâng. C (resultado)

+ = Pseudocódigo

Os algoritmos são descritos em uma linguagem chamada pseudocódigo. Este nome é uma alusão à posterior implementação em uma linguagem de programação, ou seja, quando formos programar em uma linguagem, por exemplo Java, estaremos gerando código em Java. Por isso os algoritmos são

Page 7: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

7

2010

independentes das linguagens de programação. Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.

Antes de utilizarmos uma linguagem de computador, é necessário organizar as acções a serem tomadas pela máquina de forma organizada e lógica, sem nos atermos as regras rígidas da Sintaxe de uma linguagem. Para isto utilizaremos uma forma de escrever tais acções, conhecida como algoritmo, ou pseudocódigo como vimos acima.

O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação.

Etapas de um algoritmo (IMPORTANTE)

Quando temos um problema e queremos utilizar o computador para resolve-lo, (ou seja, ao criarmos um algoritmo) temos que passar pelas seguintes fases:

a) Interpretar o problema;

b) Realizar um estudo de situação actual e verificar quais formas de resolver o problema;

c) Utilizar uma linguagem de programação para escrever o programa que a princípio deverá resolver o problema;

d) Analisar junto aos usuários se o problema foi resolvido. Se não, retornar para a fase de estudo e descobrir onde está a falha.

Comandos de Entrada e Saída

O computador não é uma máquina isolada pois ela precisa se comunicar com o mundo exterior como vídeo, impressoras, teclado, discos, fitas, etc. Para realizar esta comunicação existem comandos que permitem que as informações sejam inseridas e exibidas. Um comando de entrada serve para que o programa solicite dados no momento em que o mesmo está sendo executado. Esses dados fornecidos serão armazenados em variáveis na memória.

Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais:

ENTRADA: São os dados de entrada do algoritmo.

Saída Entrada Processamento

Page 8: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

8

2010

PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final.

SAÍDA: São os dados já processados.

Os comandos que iremos estudar são:

Ø LEIA: é um comando de entrada. Utiliza-se o leia para ler (ou receber) um valor do teclado. Sintaxe: Leia ( variável ) ou Leia ( variável-1,variavel-2,variável-3,…,variável-n )

Ø ESCREVA: é um comando de saída. Utiliza-se o escreva para imprimir (ou mostrar) um valor no ecrã. Sintaxe: Escreva (“Aqui vem o que você quiser escrever”) ou Escreva (“Comentário”, variável)

Estrutura de um algoritmo

Algoritmo < nome_do_algoritmo >

Constantes

Variáveis

Inicio

< Corpo do algoritmo >

Fim

Variáveis e Constantes

Variáveis são endereços de memória destinados a armazenar informações temporariamente. Não entendeu??? São unidades básicas de armazenamento das informações a nível de linguagens de programação. E agora? Mais ou menus? Ora vejamos!

Para armazenar os dados na memória, imagine que a memória de um computador é um grande arquivo com várias gavetas, onde cada gaveta pode armazenar apenas um único dado (seja numérico, caractere ou lógico).

Se é um grande arquivo com várias gavetas é necessário identificar com um nome a gaveta que se pretende utilizar. Assim o valor armazenado pode ser utilizado a qualquer momento. Variável: tudo aquilo que é sujeito a variações, que é incerto ou instável. O acesso à informação na memória é bastante ilegível e

Page 9: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

9

2010

difícil de se trabalhar. Para contornar esta situação criou-se o conceito de variável como entidade distinta a guardar uma informação. Elas armazenam informações fornecidas por um meio externo (dispositivos de entrada). Em geral a unidade de entrada é o teclado. Ok! Agora Sim!!!

Todo Algoritmo ou programa deve possuir variável!

Toda variável é identificada por um nome ou identificador. Assim, por exemplo, num algoritmo para calcular a área de um triângulo rectângulo pelo teorema de Pitágoras (a2 = b2 + c2), os identificadores A, B e C podem representar as posições de memória que armazenam o valor da hipotenusa e dos catetos. É importante que nunca usemos uma palavra reservada, isto é, que faça parte da linguagem algorítmica, como um identificador, pois poderá causar ambiguidade no entendimento do algoritmo.

Exemplo:

Basicamente uma variável possui três atributos: Um nome, Um tipo de dado associado a mesma e a informação por ela guardada.

Nome: tem a função de identificar e diferenciar das demais. Deve necessariamente começar com uma letra. Não deve conter nenhum símbolo especial excepto ( _ ). Só pode conter 127 caracteres e não pode ter espaços em branco

Tipo de dado: (Numérico, Caractere ou Lógico) valor que ela pode armazenar.

Informação: o que está contido na variável.

Sintaxe: Var < nome_da_variavel > : < tipo_da_variavel >

Var < lista_de_variaveis > : < tipo_das_variaveis >

A palavra VAR (abreviatura de variável) deve estar sempre presente e só será usada uma única vez na declaração de um conjunto de uma ou mais variáveis.

A B C= A+B

9 4 5

Page 10: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

10

2010

Constantes são endereços de memória destinados a armazenar informações fixas, inalteráveis durante a execução do programa.

Exemplo:

PI = 3,1415926535897932384626433832795

Nome_da_empresa = “OM2006”

Operação de Atribuição

Quando definimos uma variável é natural atribuirmos a ela uma informação. Uma das formas de colocar um valor dentro de uma variável, consequentemente colocado este dado na memoria do computador, é através da atribuição directa do valor desejado que a variável armazena.

A operação de atribuição permite que se forneça um valor a uma certa variável. Se for atribuído uma expressão à variável, será armazenado o resultado daquela expressão. Se for atribuído uma outra variável, será armazenado o conteúdo daquela variável. Para isso utilizaremos o símbolo (ß), que significa recebe, ou seja, a variável receberá uma informação que será armazenada no interior desta variável.

sintaxe:

variável ß expressão (ou valor)

Exemplos:

A ß 2 NOME ß 'João' A ß B + C

B ß A SENHA ß 'X3Y9' NOTA ß NOTA - 1

NOTA ß 10 C ß 1 / 3 X ß 2.5

Tipos de Variáveis No momento em que trabalhamos com algoritmos e variáveis, devemos

obrigatoriamente indicar o tipo de informação que esta variável ira conter, isto é, se uma dada posição de memória armazenará um número ou uma letra. Para isso temos alguns tipos de variáveis:

Inteiro (int) Admite somente números inteiros. Geralmente e utilizado para representar uma contagem(Quantidade).

Real (float) Admite números reais (com ou sem casas decimais). Geralmente e utilizado para representar uma medição.

Page 11: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

11

2010

Caractere (char)

Admite caracteres alfanuméricos. Os números quando declarados como caracteres tornam se representativos e perdem a atribuição de valor.

Lógico (bool) Admite somente valores lógicos(verdadeiro/falso).

Operadores

Na programação existe três tipos de operadores:

Aritméticos

Relacionais e

Lógicos

Os operadores aritméticos são aplicados ao tipo de dado inteiro ( int e real ), os operadores relacionais e lógicos são aplicados ao tipo de dado booleana ( bool ).

Operadores Aritméticos

Operador Operação Operandos Resultado

+ Adição A+B Soma de A e B

- Subtracção A-B Subtracção de A e B

* Multiplicação A*B Multiplicação de A por B

/ Divisão Real A/B Divisão de A por B

% (MOD) Resto da Divisão A MOD B Modulo de A por B

DIV Divisão Inteira A DIV B Divisão de A por B

** Exponenciação A**B A de expoente B

Operadores Relacionais

Operador Operação Operandos Resultado

= igual A=B Verdadeiro se A for igual a B.

> maior A>B Verdadeiro se A for maior que B.

Page 12: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

12

2010

Operadores Lógicos

Operador Operação Operandos Resultado

Not (Nao) Negação Não A Verdadeiro se A for falso e falso se o contrario

And (e) Conjunção A e B Verdadeiro se ambos forem verdadeiros.

Or (ou) Disjunção A ou B Verdadeiro se pelo menos um for verdadeiro

Funções Pré-definidas

ABS(x) - VALOR ABSOLUTO

SQRT(x) - RAIZ QUADRADA

SQR(x) - ELEVA AO QUADRADO

ROUND(x) - VALOR ARREDONDADO

LOG(x) - LOGARITMO

SIN(x) [ou SEN(x) ]- SENO

COS(x) - COSSENO

TAN(x) TANGENTE

< menor A<B Verdadeiro se A for menor que B.

>= maior ou igual

A>=B Verdadeiro se A for maior ou igual que B.

<= menor ou igual

A<=B Verdadeiro se A for menor ou igual que B.

<> diferente A<>B Verdadeiro se A for diferente de B.

Page 13: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

13

2010

Estruturas de Controlo

Em “Operações Lógicas”, na maioria das vezes necessitamos controlar e tomar decisões no andamento do algoritmo. Essas decisões interferem directamente no andamento do programa. Analisaremos dois tipos de estruturas. A estrutura de Decisão e a estrutura de Repetição.

Decisão

E.C.

Repetição

Estruturas de Decisão

A todo momento tomamos decisões em uma situação. Em algoritmo chamamos esta situação de condição. Associando a uma condição existirá uma alternativa possível de acções.

Exemplo: “Se tiver que namorar vou escolher um(a) garoto(a) bonito(a) e inteligente”.

Nesta condição a pergunta é “tenho de namorar?” R: Sim ou Não. Lembre-se, então em algoritmo toda condição tem de ser lógica (verdadeira ou falsa). Se a condição for verdadeira irá executar o procedimento. Senão, não executa nada.

Portanto, as estruturas de decisão são utilizadas para tomar uma decisão baseada no resultado da avaliação de uma condição de controlo e seleccionar uma ou mais acções possíveis (comandos a serem executados pelo computador).

(SE… ENTÃO… SENÃO) à simples

Sintaxe: Se (condição) então

[Comandos]

Fimse

- Se… então… senão - Caso… faça

- Repetir até - Enquanto faça - Para/desde… faça

Page 14: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

14

2010

(SE… ENTÃO… SENÃO) à composta

Sintaxe: Se (condição) então

[Comando1] se for verdadeira

Senão

[Comando2] se for falsa

Fimse

(Caso faça ou Escolha caso)

É utilizada quando se deseja executar dentre vários comandos (ou uma entre várias sequências de comandos) dependendo do resultado de uma expressão.

Sintaxe: Escolha variável

Caso <expressão> faça

<lista_de_comandos1>

Caso não seja

<lista_de_comandos2>

FimEscolha

Estruturas de Repetição

São muitas vezes chamadas de Laços ou Loops. São comuns as situações em que se deseja repetir um determinado trecho de um programa um certo número de vezes. A classificação das estruturas de repetição é feito de acordo com o conhecimento prévio do número de vezes que o conjunto de comandos será executado. Elas permitem que uma sequencia de instruções sejam executadas repetidamente enquanto uma determinada condição seja satisfeita. As condições devem ser lógicas.

Na estrutura de repetição usa-se geralmente dois tipos de variáveis para resolução de diversos tipos de problemas:

Ø Variáveis Contadoras: é uma variável que recebe inicialmente um valor igual a zero (0) antes do inicio da estrutura de repetição e é incrementada no interior da no interior da estrutura de um valor constante.

Page 15: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

15

2010

…Cont ß 0 < estrutura de repetição > Cont ß Cont + 1 < fim_da_estrutura_de_repetição >

Ø Varáveis Acumuladoras: vai fazendo o mesmo que a contadora, só que acumula uma execução dentro da estrutura de repetição.

Soma ß 0 < estrutura de repetição > Soma ß Soma + 1 < fim_da_estrutura_de_repetição >

Existem três (3) estruturas de repetição:

1. Enquanto… faça à com teste no inicio 2. Repita… até à com teste no fim 3. Para… faça à automático

(ENQUANTO… FAÇA)

É usada em dois casos, quando sabemos o número de vezes que queremos repetir e quando não sabemos. Esta estrutura de controlo permite que um conjunto de instruções sejam executados repetidamente, enquanto uma condição seja verdadeira.

Sintaxe: Enquanto (condição) faça

Corpo do ciclo

Fimenquanto

(REPITA… ATÉ)

É utilizada quando não se sabe n número de vezes que um trecho do algoritmo deve ser repetido, embora também possa ser usada quando se sabe o número de vezes a ser repetido. Esta estrutura de controlo permite que um conjunto de instruções sejam executados repetidamente até que uma condição de controlo seja falsa.

Sintaxe: Repita

Corpo do cliclo

Page 16: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

16

2010

Ate (condição)

A diferença entre a estrutura de repetição enquanto e a repita é que na repita os comandos serão repetidos pelo menos uma vez já que a condição se encontra no fim.

(PARA… FAÇA)

É usada quando num algoritmo ou num programa nós sabemos o número de vezes que certa instrução deve repetir. Esta estrutura de controlo permite que um conjunto de instruções sejam executados repetidamente num número específico de vezes.

Sintaxe: para VCßVI ate VF passo I/D faça

ou seja:

para variável controlo ß valor inicial ate valor final passo incremento/decremento faça

OBS: Quando o número (passo) anda 1 à 1 então o passo é ignorado (ocultado). Quando não é então o passo é apresentado.

Vectores

Estrutura formada por um conjunto unidimensional de dados de mesmo tipo (homogéneo) e possuindo número fixo de elementos (Estático). Na declaração dos vectores devemos informar o seu nome, seu tipo (inteiro, real, caractere, ...), e seu tamanho (número de elementos). Cada elemento do vector é identificado por um índice (unidimensional), o qual indica a sua posição no vector.

Declaração :

Nome_Do_Vector : vector[nº de elementos] de Tipo do Vector

Referência :

Nome_Do_Vector[índice]

Matrizes

Estrutura semelhante ao vector, sendo que, pode possuir n dimensões. Uma matriz nos possibilita o armazenamento de vários valores em uma única variável. Isso porque ele possui níveis dentro dela. Desta forma para fazer referência aos elementos de uma matriz, precisaremos de tantos índices quanto for suas dimensões.

Declaração :

Page 17: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

17

2010

Nome_Da_Matriz : matriz[dimensões] de Tipo da Matriz

Referência :

Nome_Da_Matriz[índices]

Modularização

A modularização consiste num método para facilitar a construção de grandes programas, através de sua divisão em pequenas etapas, que são : módulos, rotinas, subrotinas ou subprogramas. Permitindo o reaproveitamento de código, já que podemos utilizar um módulo quantas vezes for necessário, eliminando assim a necessidade de escrever o mesmo código em situações repetitivas.

OBS: As variáveis passadas aos procedimentos são associadas aos parâmetros do procedimento de acordo com a ordem das variáveis e da lista de parâmetros.

Page 18: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

18

2010

Exercícios Propostos

1) Dê o conceito de Lógica, Programação, algoritmo e variável. 2) Defina por suas palavras os termos: Programa, Linguagem de

Programação e Compilador. 3) Qual é a diferença entre linguagem de baixo nível e linguagem de

alto nível? 4) Exemplifique o uso da operação de Atribuição. 5) Qual a finalidade de uma operação de entrada ? Dê exemplos. 6) Explique a utilidade da estrutura de decisão e a estrutura de

repetição. 7) Qual é a diferença entre o enquanto…faça e o repita… até? 8) Em que situações é mais indicado o uso da estrutura para… faça? 9) Em que situações não podemos utilizar a estrutura para… faça? 10) Qual a finalidade de uma operação de saída? Dê exemplos. 11) Escreva os comandos necessários para:

a) Exibir o teu nome no ecrã; b) ler o nome de uma pessoa; c) ler as 3 notas de um aluno; d) ler o peso e altura de uma pessoa.

12) Crie um algoritmo que faça alguma coisa. 13) Escreva um algoritmo que leia dois números e mostre a soma, a

subtracção, a divisão e o produto. 14) Faça um algoritmo que leia um numero e calcule o seu sucessor e o

seu antecessor. 15) Ler um número real e imprimir a terça parte deste número. 16) Elabora um algoritmo que leia dois números e exiba o maior e o

menor entre eles. 17) Faça um algoritmo que receba um valor inteiro e determine se ele é

par ou ímpar. 18) Faça um programa que leia dois números e mostre-os em ordem

crescente. 19) Elaborar um algoritmo que dado a idade de duas pessoas que

nasceram em 2005, saber quantos anos terão em 2025, para a segunda idade aumentar 10% da idade do primeiro.

20) Elabore um algoritmo que mostre a tabuada de um número qualquer digitado pelo usuário.

Page 19: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

19

2010

Conclusão

Existe a preocupação de fazer uma ligação à algoritmia e programação em sintonia com a cadeira de Introdução à informática. Esperamos com esta orientação contribuir para uma apresentação mais atractiva da matéria, sem, contudo, diminuir o rigor lógico do raciocínio e da disposição.

Page 20: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

20

2010

Terminologia

Código – termo genérico para nomear as instruções de um programa.

Codificação – conjunto de técnicas que tentam tornar inacessível a informação a pessoas não autorizadas.

Programação – é o acto de dar instruções ao computador de modo que ele realize operações desejadas.

Programar – é a arte de dar instruções ao computador de modo que ele reage a estas mesmas instruções.

Interpretador – é um programa desenvolvido para executar programas de linguagens de alto nível.

Compilador – é o elemento que serve de tradutor da linguagem corrente para linguagem máquina.

Sintaxe – é a forma como os comandos devem ser escritos, a fim de que possam ser entendidos pelo tradutor do programa.

Programa fonte – é o programa original escrito numa linguagem de programação.

Código fonte – instruções de programa legíveis pelo programador e escritas em linguagem assembler ou de alto nível.

Programa objecto – é o resultado da compilação de um programa fonte (no caso de utilizar um computador).

Código objecto – código gerado por um compilador traduzido a partir do código fonte de um programa.

Funções – uma função é semelhante a um procedimento, sendo que esta deve retornar, obrigatoriamente, um valor em seu nome, desta forma, é necessário declarar, no cabeçalho da função, qual o seu tipo.

Procedimentos – um procedimento é um bloco de código precedido de um cabeçalho que contém o Nome do procedimento e seus parâmetros. Com isto, podemos fazer referência ao bloco de código de qualquer ponto do algoritmo através do seu nome e passando os seus parâmetros.

Page 21: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

21

2010

Dicas

Tenha Calma. Se você não conseguir de primeira não é motivo para já ir desistindo e passando a bola para o pessoal do fórum ou lista de discussão. Se você não perseverar, o lado negro da força dominará você e a mediocridade eterna será a sua recompensa profissional. Programação exige, entre outras coisas, muita perseverança.

O Passo Maior que a Perna. Se você não se garante em alguma coisa é porque ainda falta para você chegar lá. Tente começar pelo começo. De que adianta você fazer um programa usando código que te foi passado e você não entender de como ele funciona? O bom programador é aquele que tem uma boa base, que conhece e domina o básico da linguagem e cultiva uma boa lógica, o resto vem com o tempo e a necessidade.

Seja Humilde. A humildade é um factor crucial em qualquer profissão. Cultive-a, ela pode te ensinar muito, tanto no trabalho como na vida. Ninguém aqui precisa ser monge para cultivar a humildade, cultive-a pelo prazer de ser verdadeiro nas suas acções e honesto na sua profissão.

Seja Independente. Não fique esperando a ajuda de todos para realizar o que você quer. A tarefa tem que ser a sua principal motivação. Além do mais cada vez que alguém te entrega uma solução mastigada você deixa de aprender com o processo.

Bom Senso é Tudo! Sem bom senso você está perdido, pode considerar isso a pura verdade. Diante de uma situação complexa e aparentemente sem saída, pare, relaxe e use o seu bom senso, escute os seus neurónios. Lembre-se que mesmo depois de ter seguido este conselho e o problema continuar lá não quer dizer que ele é insolúvel.

Nada é Impossível. Embora algumas coisas são quase. Pense que tem gente fazendo aqueles jogos 3D e portanto se aquilo é possível sua tarefa também deve ser. O importante é perseverar e manter uma atitude positiva diante da tarefa, não encare a tarefa como inimiga e sim como uma amiga que não fala a sua língua.

Nunca Pare de Aprender. Se um dia você se cansar de aprender novas tecnologias em desenvolvimento, siga meu conselho: Mude de profissão. É exactamente o que eu vou fazer.

Tenha Curiosidade. Procure, pesquise e corra atrás. Isso ensina mais que muitos cursos por aí. A máquina é o computador e não você, portanto não se torne um autómato que apenas faz o necessário e apenas sabe o suficiente.

Page 22: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

22

2010

Não Tenha Pressa. O aprendizado é uma estrada longa e cheia de obstáculos, que começa no primeiro passo e termina quando você a abandona. Aprenda a separar pressa, de que adianta entregar no prazo se está mal feito. O velho ditado vale: "A pressa é inimiga da perfeição".

Fale Connosco. Para casos de dúvidas, críticas ou sugestões estamos eventualmente dispostos a colaborar, basta contactar-nos na F.C. ou enviar para os nossos correios electrónicos citados abaixo:

ü [email protected] àMutepa ü [email protected] àOtniel

Ajude-nos a melhorar!!!

[ “O HOMEM NÃO PRECISA DA SORTE PARA TER INTELIGENCIA

MAS DA INTELIGÊNCIA PARA TER SORTE” ]

[“NÃO POSSO PROVAR IMPIRICAMENTE QUE OS ALGORITMOS ESTÃO CERTOS

COMO NÃO PODEM ME PROVAR IMPIRICAMENTE QUE ESTOU ERRADO.” ]

Page 23: Introdução à lógica de programação 1(pdf)

Introdução à Lógica de Programação I – João Mutepa – Otniel Neto

23

2010

Bibliografia

Ø FORBELLONE, A. L. V. ; EBERSPACHER, H. F. Lógica de

programação. 2.ed. São Paulo: Makron Books, 2000.

Ø MANZANO, J.A.N.G. ; YAMATUMI, W. Y. Estudo dirigido de

algoritmos. São Paulo:Érica, 1997.

Ø Livro Informática - O Computador trabalha p/você – CURSOR

INFORMÁTICA.

Ø Apostila – Algoritmos –JEDEAN CARLOS BENDLIN, 2008.

Ø Apostila – Lógica de Programação (CAP-Criação de Algoritmos e

Aprogramas) – RENATO DA COSTA, 2007.

Ø Curso Básico de Lógica de Programação – PAULO SÉRGIO DE

MORAES.

Ø Apostila – Como escrever programas melhores – Traduzido por

Walter Staeblein. Autor Desconhecido

Ø Enciclopédia Microsoft® Encarta®. © 1993-2007 Microsoft

Corporation.