curso profissional programador de informÁtica 10º … · nesta fase as ações dos algoritmos...
Post on 06-Jul-2020
0 Views
Preview:
TRANSCRIPT
Programação e Sistemas de Informação
CURSO PROFISSIONAL
PROGRAMADOR DE INFORMÁTICA
10º ANO (2017/2018)
1
Prof. António Travassos
Módulo 1ALGORITMOS
2
AlgoritmosDesignação da UFCD:
Algoritmos
Código:
0804
Carga Horária:
25 horas
Pontos de crédito:
2,25
3
ConteúdosLinguagem estruturada
◦ Estruturas lógicas
◦ Desenho das estruturas diagramáticas
◦ Sintaxe da linguagem
Construção de um algoritmo◦ Noções de ação e estado da ação
◦ Acções e a sua sintaxe
◦ Verbos
◦ Sintaxe
◦ Alinhamento das frases
4
ConteúdosEstruturas lógicas básicas e o seu controlo
◦ Estrutura sequencial, alternativa e repetitiva
◦ Condições e regras de inicialização e alteração
◦ Estruturas diagramáticas como representação algorítmica
Tipos de dados em algoritmia◦ Constantes e Variáveis
Descrição da entrada e saída de dados◦ Elementos de linguagem
5
ConteúdosTécnicas de construção de algoritmos
◦ Contadores
◦ Totalizadores
◦ Expressões aritméticas
◦ Funções predefinidas
◦ Validação de dados
Construção de procedimentos◦ Procedimentos de entrada e saída e chamada de procedimentos
6
ObjetivoEsclarecer 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.
7
Noções básicas de programação
O 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.
8
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.
9
Fases/etapas de criação de um programa
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.
10
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.
11
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.
12
3ª CodificaçãoDepois 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.
13
Introdução à Programação e Algoritmia
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.
14
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.
15
6ª - ManutençãoEsta 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.
16
Introdução à Programação e Algoritmia
AlgoritmosConjunto 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.
17
Algoritmos
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.
18
Características de um AlgoritmoUm 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.
19
Características de um AlgoritmoUm 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.
20
Exemplos de algoritmosA 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.
21
Exemplos de algoritmosExemplo do algoritmo para substituição de uma lâmpada fundida
O algoritmo enuncia a sequência das operações:
1 – Preparar uma lâmpada nova
2 – Retirar a lâmpada fundida
3 – Colocar a lâmpada nova
Temos uma sequência ordenada de forma linear em três passos.
22
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”
23
Exemplos de algoritmos
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.
24
Exemplos de algoritmos
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;
25
Exemplos de algoritmos
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.
26
Exemplos de algoritmos
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.
27
Exercícios1. Elabore um algoritmo para substituição de um pneu de
um automóvel
2. Dados uma balança de pratos e um conjunto de maçãs, determinar qual a maça mais pesada.
28
Resolução:Substituição de um pneu de um automóvel
1. Abrir o carro
2. Retirar o pneu suplente
3. Colocar o macaco na posição adequada
4. Levantar o carro
5. Retirar os parafusos do pneu
6. Retirar o pneu furado
7. Colocar o novo pneu
8. Retirar o macaco do carro
9. Arrumar o macaco
29
Resolução:Conjunto de maçãs
1. Colocar duas maçãs na balança (uma em cada prato)
2. Determinar qual é a maçã mais leve
3. Retirar essa maçã da balança
4. Se houver mais maçãs, colocar outra no prato vazio
5. Repetir os passos 2 a 4 enquanto houver maçãs que ainda não foram pesadas
30
Metodologia Top-downEsta 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.
31
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.
32
Operações principais:
1 – Registar os livros num ficheiro
2 – Consultar os dados dos livros
3 – 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.
33
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.
34
Operações elementares de um sistema informático
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.
35
Operações elementares de um sistema informático
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.
36
Operações elementares de um sistema informático• 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
37
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 P3
b) Qual será o processamento a ser utilizado?
R: O procedimento será somar todos os dados de entrada e dividi-los por 3: (P1+P2+P3)/3
c) Quais serão os dados de saída?
R: O dado de saída será a média final
38
Operações elementares de um sistema informático
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.
39
Exercício1. Elabore um algoritmo que visa calcular a área de um retângulo a
partir das medidas dadas em relação ao comprimento e à largura desse mesmo retângulo.
40
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
41
Introdução à Programação e Algoritmia
Operadores aritméticos
OPERADOR OPERAÇÃO
+ Adição
- Subtracção
* Multiplicação
/ Divisão
^ Exponenciação
42
Operadores relacionais ou de comparação
Operador Significado
= Igualdade
< Menor
> Maior
<= Menor ou igual
>= Maior ou igual
<> Diferente de
43
Operadores lógicos
Operador Significado
Not (não) Negação
And (e) Conjunção
Or (ou) Disjunção
44
Tabelas de Verdade
AND
P Q P Q
V V V
V F F
F V F
F F F
45
E
Tabelas de verdadeNegação:
46
Not
p ~p
V F
F V
Tabelas de verdadeOU
47
OR
P Q P Q
V V V
V F V
F V V
F F F
Ordem de prioridade dos operadores(usados na linguagem Pascal)
48
Calculo de expressõesa) 10 + 5 > 10 AND 10 < 10 – 5
15 > 10 AND 10 < 5
V AND F
F
b) R = 3; Y=2
R * Y / 2
3 * 2 / 2
6 / 2
3
49
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
50
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
51
Tipos de dadosOs 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)
52
Tipos de dados
53
Funções Pré definidas
54
Introdução à Programação e Algoritmia
Constantes e VariáveisEm 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.
55
Constantes e Variáveis
56
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:
Constantes e VariáveisIdentificador – é 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.)
57
Variável Idade : inteiro
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 é
58
Nome ”Maria João” Custo 15
Pseudocódigo e FluxogramasPseudocó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.
59
Introdução à Programação e Algoritmia
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
60
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 torna-se muito complexa e de difícil compreensão.
61
Introdução à Programação e Algoritmia
FluxogramasVantagens:
◦ 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 deteção e correção de erros de lógica.
62
Fluxogramas
Desvantagens:◦ São pouco práticos para efetuar 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.
63
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
64
Símbolos utilizados nos fluxogramasSímbolo de linha de fluxo
Estabelece a ligação entre as acções e indica o sentido da sequência delas
65
Símbolos utilizados nos fluxogramasSímbolo de entrada ou de saída de dados
Representa uma ação de entrada (input) ou de saída (output) de dados no sistema
66
Símbolos utilizados nos fluxogramasSímbolo de processamento interno
Representa uma operação de processamento interno, como, por exemplo, a atribuição de um valor a uma variável
67
Símbolos utilizados nos fluxogramasSímbolo de Comentário
………….
Este símbolo é usado para fazer comentários explicativos do algoritmo
68
Símbolo de conector
Usado para representar a ligação ou conexão entre diferentes fluxos de acções representadas num algoritmo
69
Símbolos utilizados nos fluxogramas
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
70
Símbolos utilizados nos fluxogramas
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
71
Símbolos utilizados nos fluxogramas
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
72
Símbolos utilizados nos fluxogramas
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
73
ExercícioCriar um algoritmo que calcule a área de um retâ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.
74
Problema:
Calcular a área de um rectângulo
◦ Dados de entrada (input) : comprimento e largura
◦ Dados de saída (output) : valor da área
75
Em pseudocódigoInicio
Ler (comprimento, largura)
area comprimento * largura
escrever (area)
Fim
76
O fluxograma será:
77
Início
Ler (comp, larg)
Área comp * larg
Escrever (área)
Fim
Estruturas de decisão“se…então…senão” - “if…then…else”
Exemplo:
Verificar se a nota de um aluno é superior a 10, escrever o resultado aprovado ou reprovado segundo a avaliação.
Variável: nota
Processamento: verificar se é superior a 10
Escrita: “aprovado” ou “reprovado”
78
Estruturas de decisãoLinguagem formal
InicioLer(nota)
Se(nota>=10) então
escrever “Aprovado”
Senão
escrever “Reprovado”
Fim
79
Estruturas de decisão
80
Inicio
Ler(nota)
Nota>10 Escrever(“aprovado”)
Fim
Escrever(“Reprovado”)
Sim
Não
Fluxograma
ExercícioEscreva um algoritmo que compare dois números e escreva o maior deles.
a) Escreva o algoritmo em linguagem formal
b) Escreva o algoritmo em fluxograma.
81
top related