1
Programação e Sistemas de Informação
Prof. Hilário Russo
Curso Profissional de Técnico de Gestão e Programação de Sistemas Informáticos
10º ano (2013/2014)
2
Módulo 1
Introdução à Programação e Algoritmia
3
Esclarecer conceitos básicos necessários à atividade de programar, que consiste na elaboração de programas de computador.
Promoção do raciocínio lógico e preparação para a resolução de problemas de programação mais ou menos complexos.
Objetivo
Introdução à Programação e Algoritmia
4
Noções básicas de programaçãoO que é um Programa?
É um conjunto de instruções organizadas de uma forma lógica e previamente estabelecida destinadas a serem processadas num sistema informático para realizar determinada tarefa.
Introdução à Programação e Algoritmia
5
Atenção:
Antes de se começar a escrever um programa numa determinada linguagem de programação, há algumas ações a ter em conta;
Após a escrita desse programa, a atividade do programador não termina, pois são necessárias outras tarefas.
Introdução à Programação e Algoritmia
6
1ª - Definição do problema; 2ª - Planificação da resolução; 3ª - Codificação; 4ª - Teste e depuração; 5ª - Documentação; 6ª - Manutenção.
Introdução à Programação e Algoritmia
Fases/etapas de criação de um programa
7
1ª - Definição do problema
Tem de se definir/identificar muito bem o problema que se pretende resolver.
Não se pode passar à fase seguinte, sem ter um enunciado preciso de todos os aspetos da situação ou problema a resolver.
Introdução à Programação e Algoritmia
8
2ª - Planificação da resolução
Depois de se ter a noção exata da situação ou problema, devemos recorrer a uma estratégia para o abordar.
Diferentes estratégias de abordagem ao problema podem conduzir à solução.
É nesta fase que surgem os ALGORITMOS.
Introdução à Programação e Algoritmia
9
3ª Codificação
Depois de definir o algoritmo adequado ao problema passa-se à codificação; Nesta fase as ações dos algoritmos passam a
instruções da linguagem de programação que se vai utilizar.
Pode dizer-se que um programa consiste num algoritmo ou num conjunto de algoritmos interligados num todo.
Introdução à Programação e Algoritmia
10
4ª Teste e Depuração
Após a obtenção do código do programa, há que testá-lo com diversos tipos de dados e em diferentes situações, de modo a poderem detetar-se eventuais erros, falhas ou omissões.
Introdução à Programação e Algoritmia
11
5ª - Documentação
Deve-se elaborar dois tipos de documentação; Uma para os programadores e outra para os utilizadores.
Para os programadores a documentação é a explicação do código do programa e serve para possibilitar eventuais alterações ou melhoramentos do mesmo.
Para os utilizadores a documentação visa facilitar o modo de operar com o programa.
Introdução à Programação e Algoritmia
12
6ª - Manutenção
Esta fase diz respeito a alterações que sejam necessárias ou a aperfeiçoamentos que se revelem úteis.
Esta fase ocupa uma grande parte do trabalho dos programadores.
Introdução à Programação e Algoritmia
13
Algoritmos
Conjunto finito de regras/instruções bem determinadas para a resolução de um problema, através de um número finito de operações.
Isto é:
Um algoritmo é uma sequência finita e logicamente ordenada de ações para se chegar à solução de um problema.
Introdução à Programação e Algoritmia
14
Um mesmo algoritmo pode servir de base à codificação de um programa em diversas linguagens de programação ou com diferentes técnicas de implementação.
Algoritmos
Introdução à Programação e Algoritmia
15
Características de um Algoritmo Um algoritmo deve ser rigoroso. A definição das
ações tem de ser clara e precisa, sem ambiguidades, isto quer dizer que um algoritmo não pode estar sujeito a diferentes interpretações.
Um algoritmo deve ser eficaz. Deve resolver o problema, independentemente da situação, de uma forma isenta de erros e de qualquer falha.
Introdução à Programação e Algoritmia
16
Características de um Algoritmo Um algoritmo deve ser eficiente. Deve ter capacidade
de resolver o problema com o mínimo de recursos.
Um algoritmo deve terminar. O algoritmo deve levar a uma situação em que o objetivo tenha sido atingido e não existam mais instruções para ser executadas.
Introdução à Programação e Algoritmia
17
Exemplos de algoritmos
A substituição de uma lâmpada fundida por uma em bom estado;
A substituição de um pneu de um automóvel; A utilização de um eletrodoméstico para uma finalidade
especifica; Uma receita culinária; A resolução de um problema de matemática.
Introdução à Programação e Algoritmia
18
Exemplo do algoritmo para substituição de uma lâmpada fundida
O algoritmo enuncia a sequência das operações:1 – Preparar uma lâmpada nova2 – Retirar a lâmpada fundida3 – Colocar a lâmpada nova
Temos uma sequência ordenada de forma linear em três passos.
Introdução à Programação e Algoritmia
19
Mas, entretanto podemos acrescentar outras ações:
4 – Ligar o interruptor para verificar se a nova lâmpada acende ou não.5 – Se a lâmpada acender, podemos dar o processo por concluído, mas se não acender teremos de repetir os passos de 1 a 4.
Com estas ações a sequência já não se mantém numa simples ordem linear.
Pois a uma determinada altura surge uma condição associada à palavra “SE”
Introdução à Programação e Algoritmia
20
Essa condição tem 2 ramificações distintas:
- se a condição se verificar (se a lâmpada acende), processo concluído. - se a condição não se verificar (se a lâmpada não acender), teremos de repetir os passos anteriores.
Estas SITUAÇÕES CONDICIONAIS são um elemento comum nos algoritmos e nos programas.
Introdução à Programação e Algoritmia
21
Mas ainda podemos acrescentar outras ações e assim o algoritmo fica mais completo
Podemos ainda adicionar as ações ir buscar um escadote para mudar a lâmpada, assim fica:
1 – Preparar a lâmpada nova;2 – Colocar o escadote debaixo do candeeiro;3 – Retirar a lâmpada fundida;4 – Colocar a lâmpada nova;
Introdução à Programação e Algoritmia
22
5 – Descer o escadote;
6 – Ligar o interruptor para verificar se a nova lâmpada acende ou não;
7 – Se a lâmpada acender, podemos dar o processo por concluído;
8 – Arruma-se o escadote;
9 - Se a lâmpada não acender teremos de repetir os passos de 1 a 6.
Assim teremos o algoritmo mais completo.
Introdução à Programação e Algoritmia
23
Regras para a construção de um algoritmo Usar somente um verbo por frase; Imaginar que se está a desenvolver um algoritmo para
pessoas que não trabalham com informática; Usar frases curtas e simples; Ser objetivo; Procurar usar palavras que não tenham sentido
duvidoso.
Introdução à Programação e Algoritmia
24
Exercício
Elabore um algoritmo para substituição de um pneu de um automóvel
Introdução à Programação e Algoritmia
25
Resolução:
1 – Abrir o carro2 – Retirar o pneu suplente3 – Colocar o macaco na posição adequada4 – Levantar o carro5 – Retirar os parafusos do pneu6 – Retirar o pneu furado7 – Colocar o novo pneu8 - Retirar o macaco do carro9 – Arrumar o macaco
Introdução à Programação e Algoritmia
26
Metodologia Top-down
Esta metodologia parte do topo para a base, isto é, o problema é abordado como um todo que se vai decompondo em blocos.
Esta metodologia procura identificar os pontos essenciais da questão e parte dos ponto mais gerais para os mais particulares, até ao nível do pormenor desejado.
Introdução à Programação e Algoritmia
27
Exemplo:
Elaborar um programa para gerir os livros de uma biblioteca.
Antes de começarmos a elaborar o algoritmo, segundo esta metodologia teremos de identificar as tarefas gerais que pretendemos realizar com o nosso programa e só passaremos aos detalhes numa fase posterior.
Introdução à Programação e Algoritmia
28
Operações principais:
1 – Registar os livros num ficheiro2 – Consultar os dados dos livros3 – Registar os empréstimos e as devoluções
Depois de identificadas as operações gerais do programa, poderíamos formular uma interface com um menu apresentando as opções do programa, permitindo escolher a opção desejada.
Introdução à Programação e Algoritmia
29
De seguida, podemos tratar cada opção como um subprograma ou um subalgoritmo.
Por exemplo, a opção: 1 - Registar os livros num ficheiro
Pode-se subdividir em tarefas mais especificas, como: Criar um formulário para a introdução dos dados
relativos a cada livro (nome do autor, título da obra, etc); Criar um ficheiro adequado a operar com estes registos.
Isto teria de se fazer para todas as opções até termos todos os detalhes necessários ao programa.
Introdução à Programação e Algoritmia
30
Operações elementares de um sistema inf. Um sistema informático é constituído por blocos
ou unidades funcionais, tais como: Dispositivos de input ou entrada de dados. Unidade central de processamento ( a que
podemos associar a memória primária). Dispositivos de output ou saída de dados.
Introdução à Programação e Algoritmia
31
Assim sendo, podemos considerar que as operações básicas e fundamentais de um sistema informático são: Operações de input – ou entrada de dados; Operações de processamento interno; Operações de output ou saída de dados.
Para a elaboração de um algoritmo devemos convencionar determinadas palavras para as referidas operações elementares.
Operações elementares de um sistema inf.
Introdução à Programação e Algoritmia
32
Exemplo: Para as operações de entrada ou input de dados
utilizamos as palavras LER ou OBTER Para as operações de saída ou output de dados,
utilizamos ESCREVER ou APRESENTAR Nas operações de processamento, não interessa
o que o processador faz (a nível de linguagem máquina), mas as operações que pretendemos realizar.
Essas operações serão essencialmente operações de cálculos aritméticos e lógicos
Introdução à Programação e Algoritmia
33
Exemplo: Calcular a média final do aluno Os alunos realizaram 3 provas: P1, P2 e P3. Onde: Média Final = (P1+P2+P3)/3
Para elaborar o algoritmo proposto, faremos três perguntas:a) Quais são os dados de entrada?R: Os dados de entrada são P1, P2 e P3b) Qual será o processamento a ser utilizado?R: O procedimento será somar todos os dados de entrada edividi-los por 3: (P1+P2+P3)/3c) Quais serão os dados de saída?R: O dado de saída será a média final
Introdução à Programação e Algoritmia
34
O algoritmo para calcular média do aluno seria:
1. Obter a nota da prova1.
2. Obter a nota de prova2.
3. Obter a nota de prova3.
4. Somar todas as notas e dividir o resultado
por 3.
5. Apresentar o resultado da divisão, ou seja, o valor da média.
Introdução à Programação e Algoritmia
35
Exercício
Elabore um algoritmo que visa calcular a área de um rectângulo a partir das medidas dadas em relação ao comprimento e à largura desse mesmo rectângulo.
Introdução à Programação e Algoritmia
36
O algoritmo para calcular a área do rectângulo seria:
1. Obter valor do comprimento
2. Obter valor da largura
3. Calcular área: comprimento x largura
4. Apresentar o valor da área
Introdução à Programação e Algoritmia
37
Operadores aritméticos
OPERADOR OPERAÇÃO
+ Adição
- Subtracção
* Multiplicação
/ Divisão
^ Exponenciação
Introdução à Programação e Algoritmia
38
Operadores relacionais ou de comparação
Operador Significado
= Igualdade
< Menor
> Maior
<= Menor ou igual
>= Maior ou igual
<> Diferente de
Introdução à Programação e Algoritmia
39
Operadores lógicos
Operador Significado
Not (não) Negação
And (e) Conjunção
Or (ou) Disjunção
Introdução à Programação e Algoritmia
40
Tabelas de VerdadeNot
p ~p
V F
F V
AND
P Q P Q
V V V
V F F
F V F
F F F
OR
P Q P Q
V V V
V F V
F V V
F F FIntrodução à Programação e Algoritmia
41
Ordem de prioridade dos operadores(usados na linguagem Pascal)
Introdução à Programação e Algoritmia
42
Calculo de expressões
a) 10 + 5 > 10 AND 10 < 10 – 5 15 > 10 AND 10 < 5
V AND FF
b) R = 3; Y=2 R * Y / 2 3 * 2 / 2 6 / 2 3
Introdução à Programação e Algoritmia
43
Exercícios com expressões lógicas1 - Considerando que P=3 e Q=2, determine o
valor das expressões:
a) P + Q * 5
b) (P + Q ) * 5
c) P + 5 * Q / 2
d) (P + 5 * Q) / 2
Introdução à Programação e Algoritmia
44
2 – Determine os valores lógicos de cada expressão, sabendo que X=10 e Y=5 (apresente todos os cálculos).
a) X > 5 and X >= 10
b) X > 0 or X > 20
c) X = 10 and Y<>5
d) Not (Y=5) or X <> 10
e) X >= 10 and y < 5
f) Not (X > 10) and (Y<5)
g) Not (X>10) or (Y<5)
h) X >=5 and x <10 or y>=0 and y <=5
Introdução à Programação e Algoritmia
45
Tipos de dados
Os principais tipos de dados utilizados em algoritmia e programação são: Caracteres, cadeias de caracteres ou texto; Números (podendo este ser de diferentes tipos,
inteiros (negativos, zero e positivos), reais (com casas decimais));
Dados do tipo lógico ou booleano, este têm apenas 2 resultados possíveis verdadeiro (true) ou falso (false)
Introdução à Programação e Algoritmia
46
Tipos de dados
Introdução à Programação e Algoritmia
47
Funções Pré definidas
Introdução à Programação e Algoritmia
48
Constantes e Variáveis
Em algoritmos e em programas, os dados podem surgir sob a forma de constantes ou de variáveis. Constante - é um dado que permanece
inalterável do início ao fim do algoritmo. Variável - é um dado que pode sofrer alterações
durante o algoritmo.
Introdução à Programação e Algoritmia
49
Constantes e Variáveis
As constantes podem surgir: Sob a forma directa, ou seja, valores numéricos ou
alfanuméricos, por exemplo: 0,75; “Junho”. Sob a forma de identificadores, ou seja, nomes
que representam ou identificam determinados dados, por exemplo:
Introdução à Programação e Algoritmia
50
Identificador – é um nome que é associado (pelo programador) a uma constante, a uma variável ou a outro tipo de elemento.
As variáveis surgem sempre designadas através de identificadores, ou seja, os nomes que as identificam.
Cada variável surge associada a um determinado tipo de dados (inteiro, real, string, etc.)
Constantes e Variáveis
Variável Idade : inteiro
Introdução à Programação e Algoritmia
51
Constantes e Variáveis
Instruções de atribuição – são as operações internas de um algoritmo ou programa que atribuem valores às variáveis Nos algoritmos o símbolo que se utiliza na operação de
atribuição é
Nome ”Maria João” Custo 15
Introdução à Programação e Algoritmia
52
Pseudocódigo e Fluxogramas
Pseudocódigo – Representa o código de um programa numa linguagem formal, com termos convencionais que representam as acções a executar pelo programa.
Fluxogramas – É outra forma de representar os algoritmos, recorrendo a símbolos convencionais, que representam as sequências de acções dos algoritmos.
Introdução à Programação e Algoritmia
53
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
Introdução à Programação e Algoritmia
54
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 torna-se muito complexa e de difícil compreensão.
Pseudocódigo
Introdução à Programação e Algoritmia
55
Fluxogramas
Vantagens: Como são baseados numa representação gráfica,
é mais fácil de visualizar; Os símbolos utilizados são normalizados e
universais; Como cada símbolo tem um significado, isso
simplifica a resolução do problema; São fáceis de testar e permitem uma rápida
detecção e correcção de erros de lógica.
Introdução à Programação e Algoritmia
56
Desvantagens: São pouco práticos para efectuar alterações; Os dados tem de ser definidos à parte, porque os
fluxogramas não permitem representar a estrutura dos dados;
Se os programas forem muito grandes os fluxogramas tornam-se muito grandes e complexos.
Fluxogramas
Introdução à Programação e Algoritmia
57
Símbolos utilizados nos fluxogramas
Símbolo de inicio ou de fim
Estes são usados para representar o inicio ou o fim das operações de um algoritmo
Introdução à Programação e Algoritmia
58
Símbolo de linha de fluxo
Estabelece a ligação entre as acções e indica o sentido da sequência delas
Introdução à Programação e Algoritmia
59
Símbolo de entrada ou de saída de dados
Representa uma acção de entrada (input) ou de saída (output) de dados no sistema
Introdução à Programação e Algoritmia
60
Símbolo de processamento interno
Representa uma operação de processamento interno, como, por exemplo, a atribuição de um valor a uma variável
Introdução à Programação e Algoritmia
61
Símbolo de Comentário
………….
Este símbolo é usado para fazer comentários explicativos do algoritmo
Introdução à Programação e Algoritmia
62
Símbolo de conector
Usado para representar a ligação ou conexão entre diferentes fluxos de acções representadas num algoritmo
Introdução à Programação e Algoritmia
63
Símbolo de decisão
Representa uma condição ou expressão lógica de que dependerá uma decisão a seguir num sentido ou noutro
Introdução à Programação e Algoritmia
64
Símbolo de selecção múltipla
Representa uma situação em que o algoritmo pode seguir por diversas vias, opções ou sequência de acções
Introdução à Programação e Algoritmia
65
Símbolo de subalgoritmo
Representa um subalgoritmo, ou seja uma unidade mais pequena em que o algoritmo foi decomposto, por outras palavras é uma rotina, um procedimento ou um conjunto de instruções
Introdução à Programação e Algoritmia
66
Convenções do pseudocódigo Aqui, não há regras generalizadas, mas existem
palavras que representam as principais operações que os algoritmos poderão conter.
Exemplo: LER – Entrada de dados Escrever – Saída de dados As strings estão sempre entre “ “ ou ‘ ‘ As variáveis começam sempre por letras e não utilizam
acentos, nem espaços O simbolo indica a operação de atribuição
Introdução à Programação e Algoritmia
67
Criar um algoritmo que calcule a área de um rectângulo, em linguagem informal:
1 – Obter o valor do comprimento 2 – Obter o valor da largura 3 – Calcular a área: comprimento x largura 4 – Apresentar o valor da área.
Para fazermos o algoritmo correcto teremos de utilizar os operadores utilizados em algoritmia e em programação.
Exercício
Introdução à Programação e Algoritmia
68
Problema:
Calcular a área de um rectângulo
Dados de entrada (input) : comprimento e largura Dados de saída (output) : valor da área
Introdução à Programação e Algoritmia
69
Em pseudocódigo
Inicio
Ler (comprimento, largura)
area comprimento * largura
escrever (area)
Fim
Introdução à Programação e Algoritmia
70
O fluxograma será:
Início
Ler (comp, larg)
Área comp * larg
Escrever (área)
Fim
Introdução à Programação e Algoritmia