50
stão stão LINGUAGENS DE PROGRAMAÇÃO Módulo 1: Algoritmia Curso Profissional de Informática de Ges Curso Profissional de Informática de Ges Conteúdos 1. Introdução à Lógica de Programação 1. Lógica 2. Sequência Lógica 3. Instruções 4. Algoritmos Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 2

2-Modulo1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: 2-Modulo1

Cu

rso

Pro

fiss

ion

al d

e In

form

áti

ca d

e G

estã

oC

urs

o P

rofi

ssio

na

l de

Info

rmá

tica

de

Ges

tão

LINGUAGENS DE PROGRAMAÇÃOMódulo 1: Algoritmia

Cu

rso

Pro

fiss

ion

al d

e In

form

áti

ca d

e G

estã

oC

urs

o P

rofi

ssio

na

l de

Info

rmá

tica

de

Ges

tão

Conteúdos

1. Introdução à Lógica de Programação1. Lógica

2. Sequência Lógica

3. Instruções

4. Algoritmos

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 2

Page 2: 2-Modulo1

1. Introdução à Lógica de Programação

� Organização de um computador:� Um computador processa dados e converte-os em

informação significativa.

�� PROGRAMAPROGRAMA: Lista de instruções detalhadas que indicam ao computador o que fazer.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 3

Entrada Processamento Saída

� Um computador é composto por duas partes bem diferenciáveis, hardware e software.

� O hardware é composto pelas partes físicas, tangíveis do computador.

� O software é composto pelos programas,

1. Introdução à Lógica de Programação

O software é composto pelos programas, também chamados aplicações, que contêm instruções que o computador “executa”.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 4

Page 3: 2-Modulo1

HARDWARE

� Um computador necessita dispor de um conjunto de funcionalidades e proporcionar a capacidade de:1. Aceitar a entrada.

2. Visualizar ou apresentar a saída.

3. Armazenar a informação em um formato 3. Armazenar a informação em um formato logicamente coerente.

4. Executar operações aritméticas ou lógicas sobre dados de entrada ou sobre dados de saída.

5. Monitorizar, controlar e dirigir as operações globais e de sequência dos sistema.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 5

Unidades fundamentais de um computador

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 6

http://www.dei.isep.ipp.pt/~nsilva/ensino/ti/ti1998-1999/computador/computador_generic.gif

Page 4: 2-Modulo1

Processador (CPU)

� Dirige e controla o processamento de informação realizado pelo computador.

Programa

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 7

Unidade Central de Processamento

(CPU)

Memória principal

SaídaDados

(entrada do programa)

Computador

Execução de um programa no computador

Memória Central

� Com o propósito de armazenar dados, um computador é uma grande colecção de circuitos electrónicos capazes de armazenar um bit.� Um bit é um circuito ou um dígito que pode ter

exactamente dois valores: zero ou um.

� A memória central de um processador é uma zona de armazenamento organizado em centenas ou milhares de unidades de armazenamento individual, ou células.� A memória central é um conjunto de células de

memória.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 8

Page 5: 2-Modulo1

Memória Central

� Conceitos associados a cada célula de memória:� Endereço: cada célula tem um único endereço que

indica a sua posição relativa na memória.

� Conteúdo: informação armazenada na posição de memória. O conteúdo desses endereços ou de memória. O conteúdo desses endereços ou posições de memória é denominado palavras.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 9

Unidades de medida de armazenamento

Byte Byte (B) equivale a 8 bits

KiloByte Bbyte (KB) equivale a 1024 bytes (210 )

MegaByte Mbyte (MB) equivale a 1024 Kbytes (220)

GigaByte Gbyte (GB) equivale a 1024 Mbytes (230)

TeraByte Tbyte (TB) equivale a 1024 Gbytes (240)

PetaByte Pbyte (PB) equivale a 1024 Tbytes (250)

ExaByte Ebyte (EB) equivale a 1024 Pbytes (260)ExaByte Ebyte (EB) equivale a 1024 Pbytes (2 )

ZetaByte Zbyte (ZB) equivale a 1024 Ebytes (270)

Yota Ybyte (YB) equivale a 1024 Zbytes (280)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 10

� Na memória principal são armazenados:� Os dados enviados para processamento dos dispositivos de

entrada.� Os programas que realizarão os processos.� Os resultados obtidos, preparados para envio a um

dispositivo de saída.

Page 6: 2-Modulo1

� A lógica é uma ciência de carácter matemático fortemente ligada à filosofia.

� A lógica é o ramo da filosofia que trata das regras do bem pensar, ou do pensar correcto, sendo, portanto, um instrumento do pensar.

1.1. Lógica

� A aprendizagem da lógica não constitui um fim em si, mas um meio de garantir que o nosso pensamento se faz correctamente para chegar a conhecimentos verdadeiros.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 11

� Lógica de programação� A lógica de programação é necessária a quem

deseje desenvolver sistemas e programas, permitindo definir a sequência lógica para o desenvolvimento.

� Lógica de programação é a técnica de encadear

1.1. Lógica

� Lógica de programação é a técnica de encadear pensamentos para atingir determinado objectivo, isto é, para resolver determinado problema.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 12

Page 7: 2-Modulo1

1.1. Lógica

� A lógica binária, ou bitwise operation é a base de todo o cálculo computacional.

� Na verdade, são estas operações mais básicas que constituem todo o poderio dos computadores.

� Qualquer operação, por mais complexa que pareça, é traduzida internamente pelo

� Qualquer operação, por mais complexa que pareça, é traduzida internamente pelo processador para estas operações.

� Operações:� NOT (negação)

� AND (e)

� OR (ou)

� XOR (ou exclusivo)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 13

� O operador unário NOT, ou negação binária

será um bit '1' se o operando for '0', e será '0' caso contrário.

1.1. Lógica - NOT

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 14

A ¬ A

0 1

1 0

Page 8: 2-Modulo1

� O operador binário AND, ou conjunção binária

devolve um bit 1 sempre que ambosoperandos sejam '1‘.

1.1. Lógica - AND

A B A ∧∧∧∧ B

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 15

A B A ∧∧∧∧ B

0 0 0

0 1 0

1 0 0

1 1 1

� O operador binário OR, ou disjunção binária

devolve um bit 1 sempre que pelo menos um dos operandos seja '1‘.

1.1. Lógica - OR

A B A ∨∨∨∨ B

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 16

A B A ∨∨∨∨ B

0 0 0

0 1 1

1 0 1

1 1 1

Page 9: 2-Modulo1

� O operador binário XOR, ou disjunção binária

exclusiva devolve um bit 1 sempre que apenas um dos operandos seja '1‘.

1.1. Lógica - XOR

A B ∨∨∨∨A ∨∨∨∨ B

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 17

A B ∨∨∨∨A ∨∨∨∨ B

0 0 0

0 1 1

1 0 1

1 1 0

1.2. Sequência Lógica

� Estes pensamentos podem ser descritos como uma sequência de instruções, que devem ser seguidas para cumprir uma determinada tarefa.

� Sequência lógica são os passos executados até atingir um objectivo ou solução de um até atingir um objectivo ou solução de um problema.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 18

Page 10: 2-Modulo1

SOFTWARE

� As operações que o hardware deve realizar são especificadas por uma lista de instruções, chamadas programas ou software.

� Tipos de software:� Software de sistema – Ex: sistema operativo,

editores de texto, compiladores/interpretadores, editores de texto, compiladores/interpretadores, programas utilitários.

� Software de aplicação

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 19

SOFTWARE

� “Um programa de computador é um conjunto de instruções internas utilizadas em um computador e que produz um resultado concreto.”

� O processo de escrever um programa denomina-se programação e o conjunto de denomina-se programação e o conjunto de instruções que podem ser utilizadas para construir um programa denomina-se linguagem de programação.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 20

Page 11: 2-Modulo1

Linguagens de programação

� As linguagens de programação servem para escrever programas que permitem a comunicação entre utilizador e máquina.

� Programas especiais denominados tradutores convertem as instruções escritas em linguagem de programação em em linguagem de programação em instruções escritas em linguagem máquina (o e 1, bits).

� Principais tipos de linguagens:� Linguagem de máquina

� Linguagem de baixo nível

� Linguagem de alto nível

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 21

1.3. Instruções

� Os diferentes passos de um algoritmo são expressos nos programas como instruções. Consequentemente, um programa é uma sequência de instruções, cada uma das quais especifica certas operações que o computador deve executar.computador deve executar.

� Tipos de instruções:� Entrada / Saída

� Aritméticas e Lógicas

� Selectivas

� Repetitivas

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 22

Page 12: 2-Modulo1

Linguagem de máquina

� São aquelas que são directamente inteligíveis pela máquina, já que as suas instruções são cadeias binárias.

� As instruções em linguagem de máquina dependem do hardware do computador e, portanto, mudam de computador para portanto, mudam de computador para computador.� Vantagem: velocidade de carregamento (não precisa de

tradução) e execução

� Desvantagens: dificuldade e lentidão na codificação; pouca fiabilidade, grande dificuldade de verificar e colocar em uso os programas; os programas são executáveis somente nos mesmo processador.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 23

Linguagens de baixo nível

� São mais fáceis de utilizar do que as linguagens máquina, mas também dependem da máquina em particular.

� As instruções neste tipo de linguagens são também conhecidas por mnemónicas.

� Um programa escrito neste tipo de linguagem � Um programa escrito neste tipo de linguagem não pode ser executado directamente pelo computador, e requer uma fase de tradução para a linguagem de máquina.� Vantagens: maior facilidade de codificação.

� Inconvenientes: dependência total da máquina, o que impede a portabilidade.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 24

Page 13: 2-Modulo1

Linguagens de alto nível

� São projectadas para que as pessoas escrevam e entendam os programas de um modo mais fácil.� Vantagens: tempo de formação dos programadores é

mais curto, (relativamente aos outros tipos de linguagens); a escrita de programas tem como base regras sintácticas similares às da linguagem humana; as modificações e similares às da linguagem humana; as modificações e a colocação em uso dos programas são mais fáceis; Portabilidade.

� Inconvenientes: aumento do tempo para serem colocados em uso (necessitam de diferentes traduções); não são aproveitados os recursos internos da máquina; aumento da ocupação de memória; aumento do tempo de execução dos programas.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 25

Exemplo – soma de dois números

� Instrução em linguagem de máquina:� 0110 1001 1010 1011

� Instrução em linguagem de baixo nível:� ADD, M, N, P� ADD, M, N, P

� Instrução em linguagem de alto nível:� P = M + N;

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 26

Page 14: 2-Modulo1

Tradutores de linguagem

� Os tradutores de linguagem são programas que traduzem os programas-fonte escritos em linguagem de alto nível para código máquina.

� Podem ser:Interpretadores� Interpretadores

� Compiladores

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 27

Interpretadores

� Lêem e analisam, sequencialmente, cada uma das instruções do programa escrito em linguagem de alto nível. Se, nessa análise sequencial, detectar erros, comunica-os ao programador para correcção imediata. Logo que esta seja efectuada ou, caso a instrução que esta seja efectuada ou, caso a instrução não contenha erros, converte-a para código máquina e executa-a imediatamente.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 28

Page 15: 2-Modulo1

Compiladores

� Traduzem de uma só vez, a totalidade do programa escrito em linguagem de alto nível, armazenando na memória as instruções em linguagem máquina.

� O processo de tradução detecta e indica ao programador os erros existentes no programador os erros existentes no programa, os quais deverão ser corrigidos antes de uma nova compilação.

� Este ciclo ( tradução-erros-correcção) repetir-se-á tantas vezes quantas necessárias até ao programa estar “limpo”. Só então deverá ser executado pelo computador.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 29

Interpretadores Vs Compiladores

InterpretadorPrograma Fonte em Ling. de alto nível

Resultado

Dados

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 30

CompiladorPrograma Fonte em Ling. de alto nível

Programa Objecto em Linguagem máquina

Resultado

Dados

Page 16: 2-Modulo1

1.4.Algoritmos

� Algoritmo: Pode ser definido como um conjunto finito de regras bem determinadas para a resolução de um problema através de um número finito de operações.

� Programa (de computador): Pode ser definido como um conjunto de instruções destinadas a serem processadas num sistema informático.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 31

� A algoritmia permite-nos separar duas fases distintas na resolução de um problema:� Fase de formulação do algoritmo;

� Fase da sua implementação numa linguagem ou ferramenta de programação.

� Um mesmo algoritmo pode servir de base à codificação de um programa em diferentes

1.4.Algoritmos

codificação de um programa em diferentes linguagens e ambientes de programação.

� Características de um algoritmo:� Preciso (indicar a ordem de realização em cada passo)

� Definido (se seguido várias vezes, nas mesmas condições iniciais,

obtém-se sempre o mesmo resultado)

� Finito (tem fim: um número determinado de passos)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 32

Page 17: 2-Modulo1

� Exemplos de algoritmos:� Instruções para montar um bicicleta.

� Fazer uma receita culinária.

� Substituição de uma lâmpada fundida.

� Substituição da roda de um automóvel.

Resolução de um problema matemático.

1.4.Algoritmos

� Resolução de um problema matemático.

� etc.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 33

Bibliografia

� Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008

� Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto

� http://pt.wikibooks.org/wiki/Introdução_à_programação� http://pt.wikibooks.org/wiki/Introdução_à_programação

� http://www.slideshare.net/amansilha/int-logica-de-programao

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 34

Page 18: 2-Modulo1

Conteúdos

2. Desenvolvimento de Algoritmos1. Pseudocódigo

2. Regras e Fases de Construção de um Algoritmo

3. Fluxogramas

1. Introdução ao Fluxograma

2. Simbologia2. Simbologia

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 35

2. Desenvolvimento de Algoritmos

� Normalmente, um programa surge como uma solução possível para um problema, como um recurso produzido com a finalidade de dar resposta a uma determinada situação. A descrição dos passos a dar no sentido da resolução da situação/problema constitui a fase de formulação do algoritmo.de formulação do algoritmo.

� Em informática, a formulação de um algoritmo não é mais do que a descrição, de forma ordenada, com clareza e rigor, das operações que se pretende realizar em computador para resolver um problema ou atingir determinados objectivos.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 36

Page 19: 2-Modulo1

� O processo algorítmico de construção de um programa segue, obrigatoriamente, as seguintes fases distintas:1. Fase da especificação dos dados e resultados –

enunciar clara e detalhadamente o problema a resolver.

2. Fase da formalização ou definição da estratégia –

2. Desenvolvimento de Algoritmos

2. Fase da formalização ou definição da estratégia –fazer intervir os mecanismos a seguir para atingir os resultados pretendidos, partindo dos dados disponíveis.

3. Algoritmo – estruturar este formalismo com a ajuda de estruturas algorítmicas, esquemas de programa.

4. Programa – tradução do algoritmo assim obtido para a linguagem de programação escolhida.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 37

2. Desenvolvimento de Algoritmos

� A algoritmia permite-nos separar duas fases distintas na resolução de um problema:� Fase de formulação do algoritmo;

� Fase da sua implementação numa linguagem ou ferramenta de programação.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 38

Page 20: 2-Modulo1

2. Desenvolvimento de Algoritmos

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 39

� Exemplo:� Substituir uma lâmpada fundida.

1. Preparar uma lâmpada nova;

2. Retirar a lâmpada fundida;

3. Colocar a lâmpada nova;

4. Ligar o interruptor.

2. Desenvolvimento de Algoritmos

4. Ligar o interruptor.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 40

Page 21: 2-Modulo1

� Sequências de operações como a anterior podem ser consideradas algoritmos formulados em linguagem informal.

� Dizemos linguagem informal porque utilizamos a nossa linguagem natural e não uma linguagem convencional, com maior

2. Desenvolvimento de Algoritmos

uma linguagem convencional, com maior rigor.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 41

� Os algoritmos pensados para programas de computador exigem uma formulação com maior rigor e para isso existem linguagens formais.

� Para além das linguagens formais de programação, são usadas outras linguagens e

2. Desenvolvimento de Algoritmos

programação, são usadas outras linguagens e formas de representação:� Pseudocódigo;

� Fluxogramas;

� Outros tipos de diagramas.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 42

Page 22: 2-Modulo1

� É uma forma de representar algoritmos, utilizando a linguagem escrita e também termos convencionais para representar as acções a desencadear pelo programa.

� Os termos utilizados são normalmente uma mistura da linguagem corrente com notações

2.1. Pseudocódigo

mistura da linguagem corrente com notações e palavras inerentes às linguagens de programação.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 43

� Exemplo

início

leia(A);

leia(B);

C ← A + B;

2.1. Pseudocódigo

C ← A + B;

escreva(C);

saída

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 44

Page 23: 2-Modulo1

� Vantagens:� Como é baseado na linguagem corrente, é fácil de

elaborar;

� Pode atingir vários níveis de complexidade, conforme o detalhe com que se escrever;

� Permite acompanhar o tratamento dos dados

2.1. Pseudocódigo

� Permite acompanhar o tratamento dos dados facilitando o teste do programa;

� Permite implementar as estruturas elementares da programação estruturada;

� Serve de base à própria documentação.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 45

� Desvantagens:� Não possui regras padrão, pois depende do estilo

de escrita de cada programador;

� Não permite uma rápida visualização de pormenores, pois usa a linguagem escrita, o que obriga à sua leitura integral;

2.1. Pseudocódigo

obriga à sua leitura integral;

� Para problemas mais complicados, a linguagem pode tornar-se muito complexa e de difícil compreensão.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 46

Page 24: 2-Modulo1

� Entrada de dados

LeiaLeiaLeiaLeia(variável)

� Saída de dados

EscrevaEscrevaEscrevaEscreva(‘TEXTO’)

2.1. Pseudocódigo – Convenções

EscrevaEscrevaEscrevaEscreva(‘TEXTO’)

EscrevaEscrevaEscrevaEscreva(variável)

EscrevaEscrevaEscrevaEscreva(‘Texto e ‘,variável)

EscrevaEscrevaEscrevaEscreva(‘Texto e ‘,variável,’ e mais texto’)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 47

2.1. Pseudocódigo – Convenções

� Operadores←←←←Atribuição

X ← 5 X ← X + 1

Aritméticos+ Adição- Subtracção* Multiplicação/ Divisão/ Divisão

Lógicos≠≠≠≠Diferença= Igualdade< Menor que> Maior que<= Menor ou igual que>= Maior ou igual que

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 48

Page 25: 2-Modulo1

2.1. Pseudocódigo – Convenções

� DecisõesSeSeSeSe condição

EntEntEntEntãoooo Acção

SeSeSeSe condição

EntEntEntEntãoooo AcçãoEntEntEntEntãoooo Acção

SenSenSenSenãoooo Acção

� Exemplo:Se x > 10

Então x ← x * 2Escreva(x)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 49

2.1. Pseudocódigo – Convenções

� CiclosRepita para Repita para Repita para Repita para variável = valor1, valor2, …, último valor

Repita enquanto Repita enquanto Repita enquanto Repita enquanto condição1 e/ou condição2

� Terminar algoritmoSaSaSaSaídadadada

Comentários� ComentáriosNúmero. [Coment[Coment[Coment[Comentário]rio]rio]rio]

� Vectores e MatrizesNome_VectorNome_VectorNome_VectorNome_Vector[[[[Índice]ndice]ndice]ndice]

Nome_MatrizNome_MatrizNome_MatrizNome_Matriz[[[[Linha,ColunaLinha,ColunaLinha,ColunaLinha,Coluna]]]]

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 50

Page 26: 2-Modulo1

2.3. Fluxogramas

� São diagramas que representam os fluxos das acções contidos num programa, utilizando, para tal, símbolos.

� Estes representam diversos tipos de acções e o seu inter-relacionamento na sequência de um programa.um programa.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 51

2.3. Fluxogramas – Simbologia

Função Símbolo

Processamento

Entrada / Saída

Decisão

Início/Fim

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 52

Início/Fim

Fluxo a seguir

Cruzamento de linhas

Conector de fluxos

Page 27: 2-Modulo1

2.3. Fluxogramas - Exemplo

� Algoritmo para intercambiar os valores de duas variáveis numéricas.

INICIO

Leia(A, B)

AUX ←←←←A

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 53

SAIDA

Escreva(A,B)

AUX ←←←←AA ←←←← B

B ←←←←AUX

Bibliografia

� Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008

� Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto

� http://pt.wikibooks.org/wiki/Introdução_à_programação� http://pt.wikibooks.org/wiki/Introdução_à_programação

� http://www.slideshare.net/amansilha/int-logica-de-programao

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 54

Page 28: 2-Modulo1

Conteúdos

3. Constantes, Variáveis e Tipo de Dados1. Tipos de Dados

2. Constantes

3. Variáveis

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 55

3.1. Tipos de dados

� O objectivo primeiro de todo o computador é o manuseio da informação ou dados.

� Um dado é uma expressão geral que descreve os objectos com os quais um computador opera.

� A maioria dos computadores pode trabalhar com vários tipos de dados → Os algoritmos e

os programas correspondentes operam sobre

esses tipos de dados.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 56

Page 29: 2-Modulo1

3.1. Tipos de dados

� A acção das instruções executáveis dos computadores reflectem-se em mudanças nos valores dos dados.

� Os dados de entrada são transformados pelo programa, depois das etapas intermédias, em dados de saída.dados de saída.

� No processo de resolução de problemas, o projecto da estrutura de dados é tão importante quanto o projecto do algoritmo e do programa que nele se baseia.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 57

3.1. Tipos de dados

� Existem dois tipos de dados:� Primitivos ou Simples;

� Estruturados ou Compostos.

De momento vamos concentrar-nos nos tipos simples.

� Na máquina, um dado é um conjunto ou sequência de bits (dígitos 0 e 1). As linguagens de alto nível permitem basear-se em abstracções e ignorar os detalhes da representação interna.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 58

Page 30: 2-Modulo1

3.1. Tipos de dados

� Tipos de dados simples:� Numéricos

� Inteiros (integer) , Reais (real)

� Lógicos

� Booleanos (boolean)

� Alfanuméricos� Alfanuméricos

� Caractere (char)

� Cadeias de caracteres (string)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 59

Dados numéricos

� Podem ser representados de duas maneiras diferentes:� Tipo numérico inteiro

� Subconjunto finito dos números inteiros;� Não têm componentes fraccionários os decimais;� Podem ser negativos os positivos;� Também denominados números de virgula fixa;� Os números inteiros máximos e mínimos costumam ser -� Os números inteiros máximos e mínimos costumam ser -

32768 a +32767;� Fora deste intervalo os números são representados como

reais.� Tipo numérico real

� É um subconjunto dos números reais;� Os números reais têm um ponto decimal (vírgula) e

podem ser negativos os positivos;� Também denominados números de virgula flutuante.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 60

Page 31: 2-Modulo1

Dados lógicos ou booleanos

� Este tipo de dados caracteriza-se por admitir de cada vez apenas um entre dois resultados possíveis: verdadeiro (true) ou falso (false).

� É utilizado para representar as alternativas (sim/não) em determinadas condições.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 61

Dados alfanuméricos ou caracteres

� O tipo alfanumérico é o conjunto finito e ordenado de caracteres que o computador reconhece.

� Um dado do tipo caractere contém um só caractere.caractere.� Os caracteres que os diferentes computadores

reconhecem não são padrão, no entanto, a maioria reconhece os seguintes:� Caracteres alfabéticos: (A, B, …, Z) (a, b, …, z)

� Caracteres numéricos: (1, 2, 3, 4, 5, 6, 7, 8, 9, 0)

� Caracteres especiais: (+, -, *, /, ^, ., ;, <, >, $, …)

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 62

Page 32: 2-Modulo1

� Uma cadeia (string) de caracteres é uma sucessão de caracteres que se encontram delimitados (normalmente por aspas).

� O comprimento de uma cadeia de caracteres é o número de caracteres compreendidos entre os separadores ou limitadores.

Dados alfanuméricos ou caracteres

os separadores ou limitadores.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 63

Tabela de Tamanhos e Escala de

alguns Tipos Básicos

Tipo Extensão(n.º de bits)

Escala Numérica em bits

char 8 0 a 255

int 16 -32768 a 32767int 16 -32768 a 32767

float 32 3.4E-38 a 3.4E+38

double 64 1.7E-308 a 1.7E+308

void 0 sem valor

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 64

Page 33: 2-Modulo1

Constantes e Variáveis

� Em algoritmos e em programas de computador os dados podem surgir sob a forma de constantes ou variáveis.

� Entende-se por constante um dado que permanece inalterável do principio ao fim do algoritmo.algoritmo.

� As constantes podem surgir:� DE FORMA DIRECTA: valores numéricos,

alfanuméricos ou outros expressos literalmente pelo que são;

� SOB A FORMA DE IDENTIFICADORES: nomes que representam determinados valores ou dados.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 65

Variáveis

� Um identificador é um nome que é associado a uma constante ou a outro tipo de elemento, em programação.

� As variáveis surgem sempre designadas através de identificadores.

� Em termos de memória RAM, o nome com que uma variável é identificada fica associado a um determinado endereço ou posição de memória.

� Para além disso cada variável surge associada a um determinado tipo de dados.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 66

Page 34: 2-Modulo1

Memória RAM

0,19Constante Taxa = 0,19

Taxa

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 67

10Variável Valor ←←←← 10

Valor

Variáveis e instruções de atribuição

� Funcionamento geral:� Para cada variável é guardado um certo espaço ou

quantidade de bits e/ou bytes, de acordo com o tipo de dados a que pertence;

� Como os dados de cada variável são tratados como sendo de determinado tipo, as operações como sendo de determinado tipo, as operações que podem ser efectuadas com esses dados estão limitadas às operações prevista para esse tipo de dados.

� Chamam-se instruções de atribuição às operações internas de um programa ou algoritmo que atribuem valores às variáveis.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 68

Page 35: 2-Modulo1

Variáveis e instruções de atribuição

� Quando é atribuído um valor a uma variável esse valor é guardado em RAM no endereço que foi associado a essa variável e aí permanece até que lhe seja atribuído outro valor.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 69

LINGUAGENS SINAL DE ATRIBUIÇÃO

Basic e C =

Pascal :=

Algoritmia ←

Bibliografia

� Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008

� Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto

� http://pt.wikibooks.org/wiki/Introdução_à_programação� http://pt.wikibooks.org/wiki/Introdução_à_programação

� http://www.linhadecodigo.com/Artigo.aspx?id=1112

� http://www.global.estgp.pt/engenharia/Alunos/eSebentas/Tutoriais/c.htm#6

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 70

Page 36: 2-Modulo1

Conteúdos

4. Operadores e Funções Pré – Definidas1. Operadores Aritméticos

2. Operadores Relacionais

3. Operadores Lógicos

4. Funções Pré-Definidas

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 71

4.1. Operadores Aritméticos

� As expressões aritméticas são análogas às fórmulas matemáticas.

OPERADOR SIGNIFICADO TIPOS DE OPERANDOS

TIPOS DE RESULTADOS

↑↑↑↑, ^, ** Exponencial Inteiro ou Real Inteiro ou Real

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 72

↑↑↑↑, ^, ** Exponencial Inteiro ou Real Inteiro ou Real

+ Soma Inteiro ou Real Inteiro ou Real

- Subtracção Inteiro ou Real Inteiro ou Real

* Multiplicação Inteiro ou Real Inteiro ou Real

/ Divisão Real Real

div Divisão inteira Inteiro Inteiro

mod, % Resto da divisão inteira

Inteiro Inteiro

Page 37: 2-Modulo1

4.1. Operadores Aritméticos

� DIV e MOD� O símbolo / é utilizado para a divisão real e o

operador div representa a divisão inteira. No caso da Linguagem C, não existe nenhum operador especifico para a divisão inteira.

� O operador mod ou % representa o resto da � O operador mod ou % representa o resto da divisão inteira.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 73

15 63 2

resto

quociente

Operadores relacionais e lógicos

� As expressões podem ser de dois tipos:� Numéricas

� Booleanas

� Uma expressão booleana é uma expressão onde se empregam operadores de comparação e/ou lógicos e se espera obter comparação e/ou lógicos e se espera obter um resultado lógico.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 74

Page 38: 2-Modulo1

Operadores relacionais

OPERADOR SIGNIFICADO

== Igualdade

<< Menor do que

>> Maior do que>> Maior do que

<=<= Menor ou igual a

>=>= Maior ou igual a

<><> Diferente de

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 75

Operadores lógicos

OPERADOR SIGNIFICADO

NOTNOT Negação

ANDAND Conjunção

OROR DisjunçãoOROR Disjunção

XORXOR Disjunção exclusiva

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 76

Page 39: 2-Modulo1

Ordem de prioridade dos operadores

• + (sinal positivo)• - (sinal negativo)

Operadores Unários

• * (multiplicação)• / (divisão)

Operadores multiplicativos

• + (adição)• - (subtracção)

Operadores aditivos

• = (igualdade)Operadores

PP

RR

II

OO

MAIOR

• = (igualdade)• < (menor que)• > (maior que)

Operadores relacionais

Operador lógico NOT

Operador Lógico AND

Operador Lógico OR

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 77

OO

RR

II

DD

AA

DD

EE

MENOR

etc.

4.4. Funções pré-definidas

� As operações necessárias nos programas exigem em várias ocasiões, além das operações aritméticas básicas, um número determinado de operadores especiais denominados funções internas ou pré-

definidas, incorporadas ou padrão.definidas, incorporadas ou padrão.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 78

Page 40: 2-Modulo1

Função Descrição Tipo de argumento

Resultado

abs (x) Valor absoluto de x Inteiro ou Real Igual ao argumento

arctan (x) Arco tangente de x Inteiro ou Real Real

cos (x) Coseno de x Inteiro ou Real Real

exp (x) Exponencial de x Inteiro ou Real Real

4.4. Funções pré-definidas

exp (x) Exponencial de x Inteiro ou Real Real

ln (x) Logaritmo neperiano de x Inteiro ou Real Real

log10 (x) Logaritmo decimal de x Inteiro ou Real Real

sin (x) Seno de x Inteiro ou Real Real

sqr (x) Quadrado de x Inteiro ou Real Igual ao argumento

sqrt (x) Raiz quadrada de x Inteiro ou Real Real

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 79

Bibliografia

� Aguilar, Luis Joyanes; FUNDAMENTOS DE PROGRAMAÇÃO – Algoritmos, estruturas de dados e objetos; Mc Graw Hill; Tradução da 3ª edição; São Paulo; 2008

� Azul, Artur Augusto; BASES DE PROGRAMAÇÃO 10; Porto Editora; Porto

� http://pt.wikibooks.org/wiki/Introdução_à_programação� http://pt.wikibooks.org/wiki/Introdução_à_programação

� http://www.linhadecodigo.com/Artigo.aspx?id=1112

� http://www.global.estgp.pt/engenharia/Alunos/eSebentas/Tutoriais/c.htm#6

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 80

Page 41: 2-Modulo1

Conteúdos

5. Estruturas de Decisão e de Repetição1. Estrutura de Decisão

2. Estrutura de Repetição

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 81

5. Estruturas de Decisão e de Repetição

� Qualquer algoritmo, não importa a sua complexidade pode ser construído combinando três estruturas de controlo de fluxo padronizadas (sequencial, selecção ou

decisão, repetição ou iterativa) e uma quarta denominada invocação ou salto.denominada invocação ou salto.

� A expressão controlo de fluxo refere-se à ordem em que são executadas as sentenças do programa.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 82

Page 42: 2-Modulo1

5.0. Estrutura sequencial

� Um estrutura sequência é aquela em que uma acção (instrução) segue a outra na sequência.

� As tarefas sucedem-se de tal maneira que a saída de uma é a

Acção 1

Acção 2maneira que a saída de uma é a entrada de outra e assim sucessivamente até ao final do processo.

� A estrutura sequencial tem uma entrada e uma saída.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 83

Acção 2

Acção n

5.0. Estrutura sequencial

� Exemplo:� Cálculo da soma e do produto de dois números.

inicio

Leia(A)

inicio

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 84

saida

Leia(B)

Escreva(S,P)

S ←A + BP ←A * B

inicio

ler(A)

ler(B)

S ← A + B

P ← A * B

escreva(S, P)

saida

Page 43: 2-Modulo1

5.1. Estrutura de decisão

� A especificação formal de algoritmos assume uma maior importância quando o algoritmo requer uma descrição mais complexa do que uma simples lista de instruções.

� Nomeadamente, quando existem um várias alternativas, resultantes da avaliação de alternativas, resultantes da avaliação de determinada condição.

� As estruturas de decisão servem assim para tomar decisões lógicas.� Podem também ser chamadas estruturas

selectivas ou alternativas.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 85

� Nas estruturas de decisão, é avaliada uma condição e, em função do seu resultado, é feita uma opção ou a outra.

� As condições são especificadas usando expressões lógicas.

5.1. Estrutura de decisão

� As estruturas selectivas podem ser:� Simples;

� Duplas;

� Múltiplas.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 86

Page 44: 2-Modulo1

� A estrutura alternativa simples se – então

executa uma determinada acção quando é cumprida uma determinada condição.

� A selecção se – então avalia a condição e� se a condição é verdadeira, então executa a acção

S1 (ou acções, caso S1 seja uma acção composta e

Estrutura de decisão simples

S1 (ou acções, caso S1 seja uma acção composta e conste de várias acções).

� se a condição é falsa, então não faz nada.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 87

Estrutura de decisão simples

condição

verdadeira

falsa

se <condição> então

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 88

acções

se <condição> então

<acção1>

fim_se

Page 45: 2-Modulo1

Estrutura de decisão dupla

� A estrutura anterior é muito limitada e normalmente será necessária uma estrutura que permita escolher entre duas opções ou alternativas possíveis, em função do cumprimento ou não de uma determinada condição.condição.

� Se a condição c é verdadeira, executa-se a acção S1 e, se falsa, executa-se a acção S2.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 89

Estrutura de decisão dupla

se <condição> então

<acção S1>

senão

<acção S2>

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 90

<acção S2>

fim_se

Page 46: 2-Modulo1

Estrutura de decisão múltipla

� Com frequência é necessário que existam mais de duas alternativas. Este problema pode ser resolvido com estruturas simples ou duplas encadeadas ou em cascata.

� No entanto, se o número de alternativas for grande, este método pode trazer problemas de escrita do algoritmo e, naturalmente, de legibilidade.escrita do algoritmo e, naturalmente, de legibilidade.

� A estrutura de decisão múltipla avalia uma expressão que poderá receber n valores diferentes. Quando um desses valores é seleccionado na condição, ela realizará uma das n acções.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 91

Estrutura de decisão múltipla

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 92

caso_de e fazer

e1: acçãoS1

e2: acçãoS2

(…)

en: acçãoSn

fim_caso

Page 47: 2-Modulo1

5.2. Estruturas de repetição

� As estruturas que repetem uma sequência de instruções um determinado número de vezes são denominadas ciclos.

� Variantes principais:Variantes principais:� Estrutura de repetição com a condição de controlo

no início do ciclo;

� Estrutura de repetição com condição de controlo no final do ciclo.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 93

5.2. Estruturas de repetição

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 94

Enquanto <condição>

Fazer

<bloco de instruções>

fim_Fazer

Repetir

<bloco de instruções>

Até que <condição>

Page 48: 2-Modulo1

5.2. Estruturas de repetição

� Repetir … Até que…� A palavra que indica

o inicio do ciclo é “Repetir”;

� Segue-se um conjunto de

� Enquanto … Fazer…� A palavra que indica

o inicio do ciclo é a palavra “Enquanto”;

� Segue-se a condição que controla a conjunto de

instruções que deverá ser executado até que a condição assuma o valor de Verdadeiro.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 95

que controla a execução das acções dentro do ciclo;

� Só depois da condição de controlo é que surgem as acções a executar.

5.2. Estruturas de repetição

� Repetir … Até que…� Neste ciclo, em que a

condição é avaliada no final, temos a certeza de que as instruções são

� Enquanto … Fazer…� Pode acontecer que a

condição, que é avaliada no início do ciclo, não se verifiquee, nesse caso, as instruções são

executadas pelo

menos uma vez.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 96

e, nesse caso, as acções indicadas não serão executadas nem uma vez.

Page 49: 2-Modulo1

Iteração

� Iteração significa repetição

� Em algoritmia e em programação, o termo iteração é usado para designar cada uma das vezes que um ciclo as acções de um ciclo são executadas.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 97

inicio

cont <- 0

num <- 4

repita enquanto cont <= 10

escreva(num,'*',cont,'=',num*cont,'\n')

cont <- cont + 1

saida

Este ciclo tem 11 iteraçõesEste ciclo tem 11 iterações

Contador

� Um contador – no contexto das estruturas de repetição – é uma variavel que conta o número de iterações ou repetições de um ciclo.� Os contadores são normalmente incrementos

(cont←cont+1), mas também podem ser (cont←cont+1), mas também podem ser decrementos (cont←cont-1).

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 98

Page 50: 2-Modulo1

Acumulador

� É uma variável que vai acumulando o somatório dos vários valores que são introduzidos num ciclo, até que este termine.

Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1 99