Curso Profissional de Informática de Gestão
Módulo 1: Algoritmia
LINGUAGENS DE PROGRAMAÇÃO
Conteúdos 1. Introdução à Lógica de Programação Lógica 2. Sequência Lógica 3. Instruções 4. Algoritmos 1.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
2
1. Introdução à Lógica de Programação
Organização de um computador: Um computador processa dados e converte-os em
informação significativa.
Entrada
Processamento
Saída
PROGRAMA PROGRAMA: 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
1. Introdução à Lógica de Programação
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, 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
HARDWARE Um computador necessita dispor de um
conjunto de funcionalidades e proporcionar a capacidade de: 1. 2. 3. 4. 5.
Aceitar a entrada. Visualizar ou apresentar a saída. Armazenar a informação em um formato logicamente coerente. Executar operações aritméticas ou lógicas sobre dados de entrada ou sobre dados de saída. 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
http://www.dei.isep.ipp.pt/~nsilva/ensino/ti/ti1998-1999/computador/computador_generic.gif Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
6
Processador (CPU) Dirige e controla o processamento de
informação realizado pelo computador.
Programa
Computador Dados (entrada do programa)
Unidade Central de Processamento (CPU)
Memória principal
Saída
Execução de um programa no computador Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
7
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
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 posições de memória é denominado palavras.
9
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
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)
ZetaByte
Zbyte (ZB)
equivale a
1024 Ebytes (270)
Yota
Ybyte (YB)
equivale a
1024 Zbytes (280)
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. Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
10
1.1. Lógica 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. 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
1.1. Lógica 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 pensamentos para atingir determinado objectivo, isto é, para resolver determinado problema.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
12
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 processador para estas operações. Operações:
NOT AND OR XOR
(negação) (e) (ou) (ou exclusivo) Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
13
1.1. Lógica - NOT 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.
A 0 1
¬A 1 0
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
14
1.1. Lógica - AND O operador binário AND, ou conjunção binária
devolve um bit 1 sempre que ambos operandos sejam '1‘.
A 0 0 1 1
B 0 1 0 1
A∧B 0 0 0 1
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
15
1.1. Lógica - OR O operador binário OR, ou disjunção binária
devolve um bit 1 sempre que pelo menos um dos operandos seja '1‘.
A 0 0 1 1
B 0 1 0 1
A∨B 0 1 1 1
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
16
1.1. Lógica - XOR O operador binário XOR, ou disjunção binária
exclusiva devolve um bit 1 sempre que apenas um dos operandos seja '1‘.
A 0 0 1 1
B 0 1 0 1
∨A∨ B 0 1 1 0
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
17
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 problema.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
18
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, 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 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
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 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. 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
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 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 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
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 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
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
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 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 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
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 programa, os quais deverão ser corrigidos antes de uma nova compilação. Este ciclo ( tradução-erros-correcção) repetirse-á tantas vezes quantas necessárias até ao programa estar “limpo”. Só então deverá ser executado pelo computador. 29
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
Interpretadores Vs Compiladores
Programa Fonte em Ling. de alto nível
Resultado
Interpretador
Dados
Programa Fonte em Ling. de alto nível
Compilador
Programa Objecto em Linguagem máquina
Resultado
Dados
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
30
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
1.4.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.
Um mesmo algoritmo pode servir de base à 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
1.4.Algoritmos 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. 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://www.slideshare.net/amansilha/int-logica-deprogramao
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
34
Conteúdos 2. Desenvolvimento de Algoritmos Pseudocódigo 2. Regras e Fases de Construção de um Algoritmo 3. Fluxogramas 1.
1. Introdução ao Fluxograma 2. 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. 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
2. Desenvolvimento de Algoritmos O processo algorítmico de construção de um programa segue, obrigatoriamente, as seguintes fases distintas: 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 – 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. 1.
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
2. Desenvolvimento de Algoritmos
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
39
2. Desenvolvimento de Algoritmos 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.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
40
2. Desenvolvimento de Algoritmos 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 rigor.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
41
2. Desenvolvimento de Algoritmos 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 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
2.1. Pseudocódigo É 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 e palavras inerentes às linguagens de programação.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
43
2.1. Pseudocódigo Exemplo início leia(A); leia(B); C ← A + B; escreva(C); saída
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
44
2.1. Pseudocódigo 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 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
2.1. Pseudocódigo 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; 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
2.1. Pseudocódigo – Convenções Entrada de dados
Leia(variável) Leia Saída de dados
Escreva(‘TEXTO’) Escreva Escreva(variável) Escreva Escreva(‘Texto e ‘,variável) Escreva Escreva(‘Texto e ‘,variável,’ e mais texto’) Escreva
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
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
2.1. Pseudocódigo – Convenções Decisões Se condição Então Ent o Acção Se condição Então Ent o Acção Senão Sen o Acção Exemplo: Se x > 10 Então x ← x * 2 Escreva(x) Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
49
2.1. Pseudocódigo – Convenções Ciclos Repita para variável = valor1, valor2, …, último valor Repita enquanto condição1 e/ou condição2
Terminar algoritmo Saída Sa da
Comentários Número. [Comentário] [Coment rio]
Vectores e Matrizes Nome_Vector[ ndice] Nome_Vector[Índice] Nome_Matriz[ Nome_Matriz[Linha,Coluna] Linha,Coluna]
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
50
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.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
51
2.3. Fluxogramas – Simbologia
Função Processamento Entrada / Saída Decisão Início/Fim Fluxo a seguir
Símbolo
Cruzamento de linhas
Conector de fluxos Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
52
2.3. Fluxogramas - Exemplo Algoritmo para intercambiar os valores de duas variáveis numéricas. INICIO
Leia(A, B)
AUX ← A A←B B ← AUX
Escreva (A,B)
SAIDA Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
53
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://www.slideshare.net/amansilha/int-logica-deprogramao
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
54
Conteúdos 3. Constantes, Variáveis e Tipo de Dados Tipos de Dados 2. Constantes 3. Variáveis 1.
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
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. 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
3.1. Tipos de dados Tipos de dados simples: Numéricos Inteiros (integer) , Reais (real) Lógicos Booleanos (boolean) 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 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
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. 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
Dados alfanuméricos ou caracteres 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.
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
char
8
Escala Numérica em bits 0 a 255
int float double void
16 32 64 0
-32768 a 32767 3.4E-38 a 3.4E+38 1.7E-308 a 1.7E+308 sem valor
(n.º de bits)
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
64
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. 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
Memória RAM
Constante Taxa = 0,19
0,19 Taxa
Variável Valor ← 10
10 Valor
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
67
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 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
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.
LINGUAGENS
SINAL DE ATRIBUIÇÃO
Basic e C
=
Pascal
:=
Algoritmia
←
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
69
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://www.linhadecodigo.com/Artigo.aspx?id=1112 http://www.global.estgp.pt/engenharia/Alunos/eSebenta s/Tutoriais/c.htm#6
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
70
Conteúdos 4. Operadores e Funções Pré – Definidas Operadores Aritméticos 2. Operadores Relacionais 3. Operadores Lógicos 4. Funções Pré-Definidas 1.
71
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
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
+
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
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
72
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 divisão inteira.
15 3
6 2
quociente
resto Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
73
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 um resultado lógico.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
74
Operadores relacionais
OPERADOR = < > <= >= <>
SIGNIFICADO Igualdade Menor 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 NOT AND OR XOR
SIGNIFICADO Negação Conjunção Disjunção Disjunção exclusiva
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
76
Ordem de prioridade dos operadores MAIOR
P R I O R I D A D E
MENOR
Operadores Unários
• + (sinal positivo) • - (sinal negativo)
Operadores multiplicativos
• * (multiplicação) • / (divisão)
Operadores aditivos
• + (adição) • - (subtracção)
Operadores relacionais
• = (igualdade) • < (menor que) • > (maior que)
etc.
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
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.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
78
4.4. Funções pré-definidas 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
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://www.linhadecodigo.com/Artigo.aspx?id=1112 http://www.global.estgp.pt/engenharia/Alunos/eSebenta s/Tutoriais/c.htm#6
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
80
Conteúdos 5. Estruturas de Decisão e de Repetição Estrutura de Decisão 2. Estrutura de Repetição 1.
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. 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
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 entrada de outra e assim sucessivamente até ao final do processo. A estrutura sequencial tem uma entrada e uma saída.
Acção 1
Acção 2
Acção n
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
83
5.0. Estrutura sequencial Exemplo: Cálculo da soma e do produto de dois números. inicio Leia(A) Leia(B)
inicio ler(A) ler(B) S ← A + B P ← A * B escreva(S, P)
S←A + B P←A*B
saida Escreva(S,P)
saida Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
84
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 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
5.1. Estrutura de decisão 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. As estruturas selectivas podem ser: Simples; Duplas; Múltiplas.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
86
Estrutura de decisão simples 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 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
<condição> então <acção1> fim_se se
acções
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
88
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. 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
<condição> então <acção S1> senão <acção S2> fim_se se
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
90
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. 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
caso_de e fazer e1: acçãoS1 e2: acçãoS2 (…) en: acçãoSn fim_caso Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
92
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: 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
Repetir <bloco de instruções> Até que <condição>
Enquanto <condição> Fazer <bloco de instruções> fim_Fazer
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
94
5.2. Estruturas de repetição Repetir … Até que…
Enquanto … Fazer…
A palavra que indica
A palavra que indica
o inicio do ciclo é “Repetir”; Segue-se um conjunto de instruções que deverá ser executado até que a condição assuma o valor de Verdadeiro.
o inicio do ciclo é a palavra “Enquanto”; Segue-se a condição 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.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
95
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 executadas pelo menos uma vez.
Enquanto … Fazer… Pode acontecer que a
condição, que é avaliada no início do ciclo, não se verifique e, nesse caso, as acções indicadas não serão executadas nem uma vez.
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
96
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. inicio cont <- 0 num <- 4 repita enquanto cont <= 10 escreva(num,'*',cont,'=',num*cont,'\n') cont <- cont + 1 saida
Este ciclo tem 11 iterações Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
97
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 decrementos (cont←cont-1).
Curso Profissional de Informática de Gestão - 2008/2011 - Módulo 1
98
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