Você está na página 1de 20

IFPB – Campus Campina Grande

Curso Bach. em Engenharia de Computação

ALGORITMOS e
PROGRAMAÇÃO
(teoria e laboratório)
Prof. Ianna Sodré
ianna.sodre@academico.ifpb.edu.br
ALGORITMOS - Definição
São vários os conceitos para algoritmo.

“Um conjunto finito de regras que provê uma seqüência de operações para
resolver um tipo de problema específico” [KNUTH - Professor da
Universidade de Stanford, autor da coleção “The art of computer
programming”]

“Seqüência ordenada, e não ambígua, de passos que levam à solução de um


dado problema” [TREMBLAY]

“Processo de cálculo, ou de resolução de um grupo de problemas


semelhantes, em que se estipulam, com generalidade e sem restrições, as
regras formais para a obtenção do resultado ou da solução do problema”
[AURÉLIO]

“Um algoritmo é um conjunto ordenado de passos executáveis, não


ambíguos, que define um processo finalizável” [BROOKSHEAR]
Definição
Portanto, podemos redefinir Algoritmo como:

“Algoritmo é a descrição de um conjunto de ações que, obedecidas,


resultam numa sucessão finita de passos, atingindo o objetivo.”

Em geral um algoritmo destina-se a resolver um problema: fixa um


padrão de comportamento a ser seguido, uma norma de execução a
ser trilhada, com o objetivo de alcançar a solução de um problema.

O que é padrão de comportamento?


Imagine a seguinte seqüência de números: 1, 6, 11, 16, 21, 26....
Para determinar o sétimo elemento da série, precisamos descobrir
qual a sua regra de formatação, isto é, seu padrão de comportamento.
Será que entendi o que é algoritmo?
1) Dados os números naturais(N)
0, 1, 2, 3, 4, 5, 6, ...

passo 1 faça N igual a zero


passo 2 some 1 a N
passo 3 volte ao passo 2

2) Soma dos primeiros 100 números naturais: Os exemplos são


passo 1 faça N e Soma iguais a zero algoritmos?
passo 2 some 1 a N Justifique.
passo 3 some N a Soma
passo 4 se N for menor que (100 – 1)
então volte ao passo 2
senão pare

3) passo 1: Pegue uma moeda de seu bolso e coloque sobre a carteira


Passo 2: Volte ao passo 1.
Por que precisamos de algoritmos?
“A noção de algoritmo é básica para toda a programação de
computadores”. [KNUTH - Professor da Universidade de
Stanford, autor da coleção “The art of computer programming”]

“O conceito central da programação e da ciência da


computação é o conceito de algoritmo”. [WIRTH - Professor da
Universidade de Zurique, autor de diversos livros na área e
responsável pela criação de linguagens de programação como
ALGOL, PASCAL e MODULA -2]

Com uma ferramenta algorítmica, pode-se conceber uma


solução para um dado problema, independente de uma
linguagem específica e até mesmo do próprio computador.
Características de um algoritmo

Valores de entrada

Valores de saída

Finitude
– Todo algoritmo é finito, isto é, possui início, meio e
fim.

Corretude
– Todo algoritmo deve gerar uma saída coerente com
a entrada. Não pode ser ambíguo.
Método para construção de
algoritmos
 Ler atentamente o enunciado.

É justamente o enunciado do problema que fornece o


encaminhamento necessário à resolução do mesmo, que se
torna, portanto, dependente de sua completa compreensão.

 Retirar do enunciado a relação das entradas de dados.


 Retirar do enunciado a relação das saídas de dados.
 Determinar o que deve ser feito para transformar as
entradas determinadas nas saídas específicas.
Método para construção de
algoritmos

Entrada Processamento Saída

Dados
Dados Programa Informação

Primeiro problema
Fazer a divisão de um número por outro. Se o resultado
for positivo, imprimir o número encontrado pela
divisão, caso seja negativo, imprimir zero. Caso o
divisor seja zero, imprimir o valor -1.
O que preciso ter para resolver o problema?
(dados de entrada)

O que preciso apresentar como solução?


(dados de saída)

Como devo resolver o problema?


(o que fazer, isto é, como processar)

Qual a solução?
Formas de representação

Um único algoritmo pode ser representado de
várias maneiras.

Por exemplo, algoritmo para converter valores
de temperatura em Celsius para Fahrenheit.
– F= (9/5)C + 32
– Multiplique o valor da temperatura em Celsius pode
9/5 e depois some 32.
Formas de representação

Descrição narrativa
– São expressos diretamente em linguagem natural.

Fluxograma convencional
– São expressos diretamente em linguagem
representação gráfica (formas geométricas).

Pseudocódigo (linguagem algorítmica ou portugol)
– São expressos diretamente em uma linguagem
artificial.
Formas de representação
Descrição Narrativa Fluxograma Convencional Pseudocódigo

– Obter as notas da Algoritmo Média


primeira e da Var N1, N2, Média
segunda prova Início
– Calcular a média Leia N1, N2
aritmética entre as
duas Média := (N1+N2)/2
– Se a média for Se Média >= 7 Então
maior ou igual a 7, o Escreva “Aprovado”
aluno foi aprovado, Senão
senão ele foi
reprovado. Escreva “Reprovado”
Fim.

Vantagens x desvantagens?
Linguagem Algorítmica

Exemplo
// Calcular a idade através das variáveis: ano de nascimento e ano corrente.
algoritmo "idade"
var
ano_nascimento, ano_corrente, idade : inteiro
inicio
escreva ("Entre com o ano de nascimento e o corrente:")
leia (ano_nascimento, ano_corrente)
idade := ano_corrente - ano_nascimento
escreva (“Sua idade atual é: ", idade)
fimalgoritmo

• Padrão universal pré-definido que pode ser


escrito em inglês ou português;
• Pode definir quais e como os dados serão
estruturados; • Exige a definição de uma linguagem não
• Passagem quase imediata do algoritmo para uma real para trabalho;
linguagem de programação qualquer. • Não padronizado.
Refinamento
Podemos tornar os passos da resolução do problema
mais detalhados (investigação) para torná-los mais
claros e precisos;
Refinamento
Comandos e Estruturas de controles são usados
para prover refinamento.

A este desdobramento dar-se o nome de


refinamento sucessivo:
Programadores tendem a escrever primeiro os passos
gerais e, só depois, aplicar um desdobramento dos
passos até que se atinja o resultado desejado.
Estruturas de controle (construção)
Seqüencial:
A mais simples estrutura de controle. Os comandos devem ser
executados um após o outro, na mesma ordem em que aparecem
escritos;

Decisão ou seleção:
Também conhecida por Seleção, pode provocar ou não a realização
de uma ação;

Repetição ou iteração:
os comandos e as estruturas de controle abrangidos devem ser
executados repetidamente até que se verifique uma condição para
que se interrompa a repetição.
Algoritmo = linguagem de
programação?
Nunca confunda algoritmos com linguagem de
programação.

Algoritmos: ideia geral que pode ser implementada em


qualquer linguagem de programação.

Linguagem de programação: meio para enviar instruções


para máquina (computador).
Algoritmo x qualidade
Todo algoritmo deve ser feito de maneira lógica e racional,
visando principalmente a sua eficiência e clareza.
Ao construir algoritmos devemos:
•Saber que estes serão lidos por outras pessoas, permitindo
sua fácil correção.
•Escrever comentários na sua elaboração. Devem acrescentar
alguma coisa, não apenas frasear.
•Sempre atualizar os comentários, em caso de manutenção. Pior
do que um programa sem comentários, é um programa com
comentários errados.
•Use comentários, também, no cabeçalho do algoritmo,
incluindo, principalmente:
– descrição do que faz o algoritmo
– autor
– data de criação
Algoritmo x qualidade
•Um comando por linha é suficiente.
•Use indentação (mostra a estrutura lógica do algoritmo) nos
comandos de acordo com o nível que estejam, ou seja, alinhe
comandos de mesmo nível e desloque comandos de nível inferior.
Ex.:
início
comando 1
se condicao1 entao
comando2
comando3
senao
comando4
comando5
fimse
comando6
fimalgoritmo
Brookshear, J. Glenn. Ciência da Computação:
uma visão abrangente. 11. ed. - Porto Alegre:
Bookman, 2013.

Você também pode gostar