Você está na página 1de 34

PR

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ

Algoritmos:
Conceitos e formas de representação

Disciplina: Fundamentos de Programação


Curso: Engenharia Mecânica

Professora: Mariza Miola Dosciatti


mariza@utfpr.edu.br
Objetivos
• Compreender o conceito de algoritmo.
• Entender a ideia de algoritmo.
• Conhecer os elementos fundamentais de um algoritmo.
• Saber as formas básicas de organizar as instruções de um algoritmo.
• Conhecer formas de representação de algoritmos.
• Aprender um método para o desenvolvimento de algoritmos.

• Itens da ementa (Plano de Ensino):


– Conceito de algoritmo e programação.
– Algoritmos: representação, técnicas e estruturas de elaboração.

UTFPR – Computação I 2
Sumário
1. Algoritmo – Conceito
1.1. Algoritmo – Estrutura básica
1.2. Algoritmo – Método para a construção
1.3. Algoritmo – Considerações
1.4. Algoritmo – Elementos fundamentais
2. Representação de algoritmos
2.1. Descrição narrativa
2.2. Fluxograma
2.3. Português estruturado
2.4. Linguagem de programação

UTFPR – Computação I 3
1. Algoritmo: Conceito
• Procedimentos para vir à UTFPR.
– Condição:
• Morar em uma casa.
– Passos:
• Fechar a porta da casa.
• Fechar o portão.
• Andar até o ponto de ônibus.
• Apanhar o ônibus e chegar na universidade.
• Dirigir-se à sala de aula.

UTFPR – Computação I 4
1. Algoritmo: Conceito (cont.)
• Algoritmo para vir para a UTFPR.
– Fechar porta da casa.
• Outras pessoas permanecem em casa e a porta pode ficar aberta.
• Outras pessoas permanecem em casa e fecharão a porta.
– Fechar o portão.
• Gato quer entrar → reconhecimento do gato.
– Se gato conhecido e pode permanecer no jardim e quintal da casa. Então,
deixar o gato entrar e fechar o portão.
– Se gato desconhecido ou não deve permanecer no jardim e quintal da casa.
Então, não deixar o gato entrar (ou colocá-lo para fora) e fechar o portão.
– Andar até o ponto de ônibus.
• Agendado com colega para apanhar ônibus juntos.
– Se o ônibus chegar antes do colega.
» Apanhar o ônibus.
» Aguardar o colega para apanharem outro ônibus.
» Aguardar e ligar para o colega.
» Apanhar o ônibus e ligar para o colega.
» ....
– Ir para a sala de aula.
• Ter verificado (ou saber) a sala correta.

UTFPR – Computação I 5
1. Algoritmo: Conceito (cont.)
• Algoritmos fornecem uma descrição detalhada e
rigorosa das instruções (ações) para a resolução de
problemas.

Definem a sequência de instruções computacionais


que representa a solução de problemas. É a
essência da programação de computadores.

UTFPR – Computação I 6
1. Algoritmo: Conceito (cont.)
• Exemplo: Algoritmo para ligar de um telefone público – sequência
de instruções.
Início
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha; Neste algoritmo
todas as instruções
3. Inserir o cartão; são realizadas e na
4. Teclar o número desejado; sequência definida.
5. Conversar;
6. Desligar;
7. Retirar o cartão;
Fim

UTFPR – Computação I 7
1. Algoritmo: Conceito (cont.)
• Algoritmo para ligar de um telefone público – sequência de instruções.
E se telefone estiver com defeito?
Início
1. Tirar o fone do gancho; Neste algoritmo não
2. Se ouvir o sinal de linha, então são todas as
instruções que são
1. Inserir o cartão;
realizadas.
2. Teclar o número desejado; Quais serão
3. Conversar; realizadas depende
4. Desligar; do resultado de um
5. Retirar o cartão; teste lógico
(verdadeiro/falso)
3. Senão
1. Ir para o próximo telefone;
Fim

UTFPR – Computação I 8
1. Algoritmo: Conceito (cont.)
• Algoritmo para ligar de um telefone público – repetição
E se o próximo telefone também estiver com defeito?

Início
1. Repita Neste algoritmo as
1. Tirar o fone do gancho; instruções serão
2. Se ouvir o sinal de linha, então repetidas até ser
1. Inserir o cartão; obtido um
2. Teclar o número desejado; determinado
3. Conversar;
resultado
4. Desligar;
5. Retirar o cartão; (verdadeiro) de um
3. Senão teste lógico
1. Ir para o próximo telefone; realizado.
2. Até fazer a ligação desejada
Fim

UTFPR – Computação I 9
1. Algoritmo: Conceito (cont.)
• Algoritmo para ligar de um telefone público – variações/incrementos
– E se o telefone chamado estiver com defeito?
– E se o telefone chamado estiver ocupado?
– E se acabarem os créditos do cartão telefônico?
– E se discado para outro número?
– E se a pessoa com quem se quer falar não está no local?
– E se chegar uma pessoa para usar o telefone para uma emergência?
– E se o telefone não reconhece o cartão?
– E se ...?
Um algoritmo
pode “sempre”
ser melhorado,
ampliado.

UTFPR – Computação I 10
1. Algoritmo: Conceito (cont.)
• Exemplo: algoritmo para retirar dinheiro em caixa eletrônico –
sequência de instruções.
Início
1. Inserir o cartão;
2. Informar a senha; Neste algoritmo
todas as
3. Escolher a opção; instruções
4. Informar o valor; são realizadas e
na sequência
5. Retirar o cartão; definida.
6. Receber o dinheiro.
Fim

UTFPR – Computação I 11
1. Algoritmo: Conceito (cont.)
• Algoritmo para retirar dinheiro em caixa eletrônico – seleção/decisão.
E se a máquina estiver com defeito?
Início
1. Inserir o cartão;
Neste algoritmo não
2. Se solicitada a senha, então são todas as
1. Informar a senha; instruções que são
2. Escolher a opção; realizadas.
3. Informar o valor do saque; Quais serão
realizadas depende
4. Retirar o cartão;
do resultado de um
5. Receber o dinheiro. teste lógico
3. Senão (verdadeiro/falso).
1. Ir para outra máquina;
Fim

UTFPR – Computação I 12
1. Algoritmo: Conceito (cont.)
• Algoritmo para retirar dinheiro em caixa eletrônico – repetição.
E se a próxima máquina também estiver com defeito?
Início
1. Repita
1. Inserir o cartão; Neste algoritmo as
2. Se solicitada a senha, então instruções serão
1. Informar a senha; repetidas até ser
2. Escolher a opção; obtido um
3. Informar o valor do saque; determinado
resultado
4. Retirar o cartão; (verdadeiro) de um
5. Receber o dinheiro; teste lógico
3. Senão realizado.
1. Ir para outra máquina;
2. Até fazer a retirada desejada
Fim

UTFPR – Computação I 13
1. Algoritmo: Conceito (cont.)
• Algoritmo para retirar dinheiro em caixa eletrônico –
variações/incrementos:
– E se você esqueceu a senha?
– E se você tentou a senha mais de três vezes e o cartão ficou retido?
– E se o dinheiro não é entregue na quantia certa?
– E se faltar energia elétrica no momento em que a máquina está em processo
de contagem do dinheiro?
– E se a máquina não lê o seu cartão?
– E se a máquina fica em “loop” na mensagem “aguarde... e não retire o cartão
... “
– E se ...? Um algoritmo
pode “sempre”
ser melhorado,
ampliado.
UTFPR – Computação I 14
1. Algoritmo: Conceito (cont.)
• Exemplo: Algoritmo para fazer cadastro de um cliente.
Início
1. Abrir tela de cadastro;
2. Informar número de CPF;
3. Informar o nome;
4. Informar número de telefone;
5. Salvar;
6. Receber mensagem de cadastro salvo com sucesso;
Fim.

UTFPR – Fundamentos de Programação 15


1. Algoritmo: Conceito (cont.)
• Algoritmo para fazer cadastro de um cliente – decisão.
Validar o número do CPF
Neste algoritmo
Início não são todas as
1. Abrir tela de cadastro; instruções que são
realizadas.
2. Informar número de CPF; Quais serão
3. Se o número do CPF é válido, então realizadas depende
1. Informar o nome; do resultado de um
2. Informar o telefone; teste lógico
3. Salvar; (verdadeiro/falso).
4. Receber mensagem de cadastro salvo com sucesso;
4. Senão
1. Cadastro não é realizado;
Fim

UTFPR – Computação I 16
1. Algoritmo: Conceito (cont.)
• Um algoritmo é uma sequência finita de ações ou instruções para
executar uma tarefa, alcançar um objetivo ou obter uma saída desejada
para quaisquer entradas válidas, visando resolver um problema.

UTFPR – Computação I 17
1.1. Algoritmo: Estrutura básica
• Entrada
– Dados necessários para realizar as instruções.
• Processamento
– Instruções.
fluxo fluxo fluxo
de execução de execução de execução
sequencial com controle com controle
de decisão de repetição

• Saída
– Resultado: texto e dados (formatados).

UTFPR – Computação I 18
1.2. Algoritmo: Método para a
construção
• Entender o problema;
• Retirar do problema as entradas e as saídas de dados necessárias;
• Determinar o que deve ser feito para transformar as entradas nas saídas
desejadas;
– Determinar o tipo de dado a ser manipulado, definindo as variáveis e as
constantes necessárias;
– Definir as instruções e as estruturas de decisão e de repetição necessárias;
– Definir as fórmulas e as operações a serem realizadas;
• Apresentar os resultados;
• Verificar se as instruções definidas resolvem o problema da maneira
esperada;
– Realizar testes, como teste de mesa, por exemplo, para verificar o resultado.

UTFPR – Computação I 19
1.3. Algoritmo: Considerações
• No início do algoritmo colocar o enunciado do problema;
• Comentar as partes mais complexas ou relevantes do algoritmo;
• Utilizar espaços e linhas em branco para melhorar a legibilidade do
algoritmo, mas sem abusar dos mesmos;
• Escolher nomes representativos para os identificadores;
• Uma instrução por linha é suficiente;
• Utilizar parênteses para aumentar a legibilidade das expressões e para
evitar erros;
• Utilizar identação. Identar um algoritmo é fundamental para sua
legibilidade.

UTFPR – Computação I 20
1.4. Algoritmo: Elementos
fundamentais
• De acordo com o paradigma de programação
estruturada, os elementos fundamentais são:
a) Tipos de dados;
b) Variáveis e constantes;
c) Operadores aritméticos, relacionais e lógicos;
d) Instruções de entrada e saída;
e) Estrutura sequencial;
f) Estruturas de controle decisão;
g) Estruturas de controle repetição;
h) Estruturas de dados;
i) Funções.

UTFPR – Computação I 21
2. Representação de Algoritmos
• Exemplos de formas de representação de um algoritmo:
– Descrição narrativa
• Palavras em linguagem natural: português.
– Representação gráfica
• Fluxograma (diagrama de blocos).
– Português estruturado
• Pseudocódigo – intermediário entre o português e uma linguagem de
programação.

– Linguagem de programação
• Linguagem C.

UTFPR – Computação I 22
2.1. Descrição narrativa
• Descrição narrativa ou linguagem natural consiste no uso de
frases para expressar ações a serem realizadas.
• Apresenta a facilidade de a linguagem ser conhecida e o
inconveniente da ambiguidade de termos.
• Procedimento para elaborar um algoritmo em descrição
narrativa:
– Definição dos dados de entrada
– Processamento (instruções a serem realizadas)
– Definição dos dados de saída

UTFPR – Computação I 23
2.1. Descrição narrativa (cont.)
• EXEMPLO: Calcular a soma de duas notas.

– Apresentar na tela uma mensagem para o usuário informando-o


que deverá digitar dois números do tipo real.
– Após ler a mensagem, o usuário deverá inserir os números por
meio do teclado, que serão lidos e armazenados em duas
variáveis diferentes.
– Em seguida, será aplicada a operação de soma nos dois
operandos informados pelo usuário e o resultado será
armazenado em uma terceira variável.
– O resultado será apresentado na tela para o usuário e o
algoritmo será finalizado.

UTFPR – Computação I 24
2.2. Fluxograma
• Um fluxograma, diagrama de fluxo ou diagrama de blocos, é
uma representação gráfica que utiliza formas geométricas
ligadas por setas para indicar as instruções que devem ser
seguidas para resolver um problema.

• A principal função de um fluxograma é facilitar a visualização


da sequência das instruções de um algoritmo.

UTFPR – Computação I 25
2.2. Fluxograma (cont.)
• Exemplos de símbolos (norma ISO 5807):
Símbolo Descrição
Terminal: início e fim do algoritmo.

Entrada e saída: Receber e mostrar informações. Ler dados para armazenar


em variáveis e mostrar dados contidos em variáveis. Escrever texto.
Processamento: realizar operações com variáveis e constantes; executar as
instruções contidas em estruturas de decisão e de repetição.
Representar as condições de uma estrutura de decisão.

Conector para agrupar fluxos.

Linha: conector direcionado entre símbolos.

UTFPR – Computação I 26
2.2. Fluxograma (cont.)
• Fluxograma Estrutura Sequencial.
• Problema: Calcular a média de duas notas.
início

Teste de mesa:
Ler Nota1
Ler Nota2 entrada Nota1 Nota2 Media
10 9 9,5
Media <-- (Nota1 + Nota2)/2 processamento
7 8 7,5
10 10 10
Escrever Media saída

fim

UTFPR – Computação I 27
2.3. Português estruturado
• Português Estruturado (Pseudocódigo,
Pseudolinguagem, Portugol) é uma forma de
representar algoritmos utilizando um conjunto de
termos da língua portuguesa para expressar
instruções.

UTFPR – Computação I 28
2.3. Português estruturado (cont.)
• Forma geral da representação de um algoritmo em
português estruturado:

Algoritmo <nome_do_algoritmo>
<declaração_de_variáveis>
Início
<instruções>
Fim

• A forma de representação de algoritmos em português


estruturado assemelha-se às linguagens de programação.

UTFPR – Computação I 29
2.3. Português estruturado (cont.)
• EXEMPLO:
Algoritmo "Media"
// Calcula a média aritmética de duas notas
Var
// Declarações das variáveis
nota1, nota2, media: real
Inicio
// Entrada de dados
escreva ("Informe a primeira nota: ")
leia (nota1)
escreva ("Informe a segunda nota: ")
leia (nota2)
//Processamento de dados
media <- (nota1 + nota2 ) / 2
//Saída de dados
escreva ("A média aritmética é: ", media)
Fimalgoritmo

UTFPR – Computação I 30
2.4. Linguagem de programação
• Programas de computador são algoritmos escritos
em uma linguagem de programação (C, C++, Cobol,
PHP, Delphi, Visual Basic, Java) que são
compilados/interpretados e executados por um
computador.

UTFPR – Computação I 31
2.4. Linguagem de programação
• Algoritmo em linguagem de programação - semelhante à representação
em pseudocódigo. Porém, possui rigidez sintática e semântica.
#include <stdio.h>
int main()
{
float nota1, nota2, media; Declaração das variáveis

printf("Informe a primeira nota: ");


scanf("%f",&nota1); Entrada de dados
printf("Informe a segunda nota: ");
scanf("%f",&nota2);
media = (nota1 + nota2) / 2.0; Processamento

printf(“Media aritmética: %.2f ", media); Saída de dados


}

UTFPR – Computação I 32
Referências
• BORATTI, I. C; OLIVEIRA, A. B de. Introdução à programação de algoritmos, 3ª.
Florianópolis: Visual Books, 2007.
• FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de programação: A
construção de algoritmos e estruturas de dados. São Paulo: Makron, 1993.
• GUIMARÃES, A. M; LAGES, N.A.C. Algoritmos e estruturas de dados. Rio de
Janeiro: LTC, 1985.
• MIZRAHI, V. V. Treinamento em linguagem C: Curso completo - módulo 1. São
Paulo: McGraw-Hill, c1990.
• SALIBA, Walter Luiz Caram. Técnicas de programação: Uma abordagem
estruturada. São Paulo: Makron Books, 1993.
• ISO 5807:1985
http://www.iso.org/iso/catalogue_detail.htm?csnumber=11955
• Conteúdo baseado no material disponibilizado pela professora Beatriz Borsoi.

UTFPR – Computação I 33
Dúvidas

• ???

UTFPR – Computação I 34

Você também pode gostar