CURSO PROFISSIONAL PROGRAMADOR DE INFORMÁTICA 10º … · Nesta fase as ações dos algoritmos...

Preview:

Citation preview

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