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
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
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
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
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.
� 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
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
� 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
� 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
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
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
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
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
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
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
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
� 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
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
� 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
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
� 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
� É 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
� 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
� 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
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
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
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
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
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
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
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
� 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
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
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
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
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
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
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
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
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
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
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
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
� 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
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
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
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>
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.
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
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
Recommended