Você está na página 1de 21

Introdução a Algoritmos e

Lógica de Programação

G. J. de Sena
UNESP / Guaratinguetá / Brasil
Algoritmos: Definição

Resolução de um problema: inclui o projeto de


um algoritmo que resolva o problema proposto

Problema Projeto de um Programa


algoritmo computacional

(Joyanes Aguilar, 2008)


Algoritmos: Definição

Algoritmo:
• Caracterizado por um método para resolver um
problema
• Sequência de passos em uma ordem lógica,
visando atingir um objetivo bem claro
Algoritmos + Estruturas de Dados = Programas
(Niklaus Wirth, Algoritmos e Estruturas de Dados, LTC, 1986)
Algoritmos: Exemplo do Cotidiano

Algoritmo: Ovos mexidos.


Ingredientes:
2 ovos
2 colheres de sopa de leite integral
1 colher de café de sal iodado
1/2 colher de café de pimenta do reino branca
1/2 colher de café de gengibre em pó
1 colher de sopa de manteiga
Modo de fazer:
1) Quebrar os ovos num prato fundo
2) Acrescentar o leite e os demais temperos
3) Com um garfo, bater até obter uma mistura bem
homogênea
............
Algoritmos: características fundamentais

Partes de um algoritmo:
• Entrada de dados
• Processamento
• Saída de resultados
Algoritmos: características fundamentais

Métodos usuais de representação de


algoritmos
• Diagrama de fluxo (ou fluxograma)
• Diagrama de Nassi-Schneiderman
(diagrama N-S)
• Pseudocódigo
• Fórmulas
Algoritmos: representação

Diagramas de fluxo (Fluxogramas)


 Os diagrams de fluxo ou fluxogramas (“flowcharts”)
constituem uma das técnicas mais antigas e mais
utilizadas para a representação de algoritmos
 Símbolos com funções específicas são utilizados,
como ilustra o exemplo a seguir
Algoritmos: representação
Fluxograma
INÍCIO

Exemplo: desenvolver um algoritmo para a


soma de dois números inteiros A,B

A,B: inteiros
S ← A + B
S: inteiro
S  A + B /* S “recebe” o resultado de
A + B */ S

FIM
Algoritmos: representação

Pseudocódigo:
Algoritmo: soma de dois números inteiros
início
// declaração de variáveis
inteiro: A, B, // numeros
S; // soma

// entrada de dados
leia (A, B);
// processamento
S  A + B;
// saída do resultado
escreva(S);
fim.
Algoritmos: representação

Pseudocódigo:

 Cabeçalho do algoritmo: "Algoritmo: ... .";

 Bloco do algoritmo:
delimitado por "início" e "fim";

 Declaração de variáveis: tipos:


"inteiro" (número inteiro)
"real" (numero de ponto flutuante);
Algoritmos: representação

Pseudocódigo:

 Linhas de comentário (para documentação):


 precedidas de "//" (comentário de linha);
 Utilização de "chaves"
chaves ({ ... }) ou "barras-
barras-
asterisco" (/*...*/) para delimitar o texto
do comentário.
Algoritmos: representação

Pseudocódigo:

 Comando de entrada de dados: comando


"leia ( ... )";

 Comando de atribuição: S  A + B;

 Comando de saída de resultados:


escreva ( ... );

 Note-se a presença de um ponto (".") após o


indicador "fim".
Algoritmos: representação

Pseudocódigo: variação do exemplo anterior


Algoritmo: soma de dois números inteiros
início
// declaração de variáveis
inteiro: A, B, // numeros
S; // soma

// definição dos valores de A e B


A  5; B  2;

// processamento
S  A + B; // S "recebe" o resultado de 5 + 2

// saída do resultado
escreva(S);
fim.
Algorítmos/exemplo
Cálculo da soma/produto de 2 números
Solução c/ TinkercadTM (sem entrada de dados)

https://www.tinkercad.com/
Algoritmos: Estruturas de Controle

 Criação de algoritmos:

 Conceitos de bloco lógico, entrada e saída de


dados, variáveis, constantes, atribuições,
expressões aritméticas, relacionais e lógicas;

 Comandos que se utilizam destes conceitos para


representar o conjunto de ações a serem
executadas pelo algoritmo.
Algoritmos: Estruturas de Controle

 Desenvolvimento de algoritmos: estruturas


básicas de controle do fluxo de execução, em nível de
comando – estrutura sequencial, estruturas de
seleção e estruturas de repetição – que podem ser
combinadas entre si.

 Estrutura Seqüencial: estrutura básica para o


desenvolvimento de algoritmos, relacionada à
concepção de que o conjunto de ações que define um
algoritmo será executado como uma sequência linear,
ou seja, de cima para baixo e da esquerda para a
direita.
Algoritmos: Estruturas de Controle

Estrutura sequencial – forma geral:


Algoritmo: ....
Início // inicio do bloco do algoritmo
// declaração de variáveis
...
// área de comandos: corpo do algoritmo
ação 1;
ação 2; ação 3;
ação 4;
..........
ação n;
fim. // fim do bloco do algoritmo
Algoritmos: Estruturas de Controle

Exemplo: desenvolver um algoritmo para calcular e


apresentar a média final de um aluno, antes da
realização do exame.

N1, N2, N3, N4: notas bimestrais (números c/ casas


decimais);

MF: média final do aluno;

N1  N 2  N 3  N 4
MF 
4
Algoritmos: Estruturas de Controle

Pseudocódigo:
Algoritmo: cálculo da média final de um aluno
início
// declaração de variáveis
real: N1, N2, N3, N4, // notas bimestrais
MF; // media final

// entrada de dados
leia(N1, N2, N3, N4);

// processamento
MF  (N1 + N2 + N3 + N4) / 4;

// saída do resultado
escreva(MF);
fim // algoritmo: cálculo da média final.
Algorítmos/exemplo
Cálculo da média final de um aluno
Solução c/ Tinkercad™ (sem entrada de dados)
Algoritmos: referências
FARRER, H. et al. Algoritmos Estruturados. Rio de Janeiro: LTC, 1999.

FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. Lógica de


programação: A construção de algoritmos e estruturas de dados. São Paulo:
Pearson, 2005.

JOYANES AGUILAR, Luis. Fundamentos de programação: algoritmos, estruturas


de dados e objetos. Porto Alegre : AMGH, 2008.

TREMBLAY, J.; Bunt, R. B. Ciência dos computadores: Uma abordagem


algorítmica. Editora McGraw-Hill Ltda, São Paulo, 1983.

WIRTH, Niklaus. Algorithms + Data Structures = Programs. Englewood Cliffs, New


Jersey : Prentice Hall, 1976.

Você também pode gostar