Вы находитесь на странице: 1из 32

AEDS I

Introdução de Algoritmos

Cristiano Silva
cristiano@ufsj.edu.br
Referência
 Livro:
C Completo e Total – Caps. 1 e 3 - Herbert
Schildt
 Algoritmos e Programação – Cap. 1 - Teoria e
Prática, Marco Medina
Introdução
 Esta disciplina apresenta técnicas para a
construção de programas de computador
(softwares).
Hardware de um computador
 Processador: Executa um programa processando sequencialmente
suas instruções

 Memória: Armazena dados utilizados no programa (além do


programa em si)

 Dispositivos de entrada e saída: realizam a comunicação entre o


usuário e a máquina (mouse, teclado, monitor, impressoras)

 Barramento: Caminho por onde os dados passam para haver


comunicação entre a memória, processador e os dispositivos

Processador Barramento Memória

Dispositivos de
Entrada e
Saída
Programas de Computador
 Cada modelo de processador disponibiliza pequeno
conjunto de instruções que são utilizadas na construção
dos programas

 Essas instruções são operações matemáticas, lógicas ou


interações com a memória e dispositivos de entrada e
saída

 Um programa é um conjunto ordenado de instruções que


leva o computador a executar alguma tarefa
Programas de Computador
 Um programa de computador é armazenado num
arquivo em disco.

 Para ser executado, precisa ser carregado em memória.


Quem faz isto é o Sistema Operacional (Windows,
Linux, MacOS).

 O Sistema Operacional é o primeiro programa


carregado no computador. Sua função é gerenciar os
dispositivos e os programas de usuário.
Programas de Computador
 Um programa de computador é construído através de
sua escrita em uma linguagem de programação. Este
produto é chamado de código fonte.

 O código fonte é escrito numa linguagem muito próxima


do homem. Para esta linguagem ser compreendida pela
máquina, precisa passar por um processo de tradução.

 O compilador é o programa responsável por realizar


esta tradução. Ele recebe o código fonte como entrada e
gera o código de máquina (ou código executável) como
saída.
Programas de Computador
 Um software nada mais é do que um conjunto de regras
lógicas para atingir algum objetivo ou desempenhar
alguma tarefa num conjunto finito de passos.

 Usualmente, um software recebe dados do mundo


exterior (leitura de dados), realiza seu processamento
e mostra os resultados obtidos (escrita de dados).

 Os passos deste processamento são expressos através


de algoritmos.

 Então vamos aos Algoritmos...


Algoritmos
Funcionamento de um Algoritmo

Os comandos (ou instruções) de um algoritmo são escritos em ordem


sequencial, um após o outro, com apenas uma instrução por linha.

Sua execução também ocorre de ordem sequencial.

Existem diferentes formas para a representação de um algoritmo,


sendo as principais:

• Fluxograma
• Pseudocódigo
Exemplo 1 – Proposta de fluxo para solicitar compra
de material
INÍCIO
início Preenche formulário de compras;
Encaminha ao gestor;
Preenche formulário Pseudocódigo
de compras Fluxograma SE aprovado ENTÂO
INÍCIO
Encaminha ao gestor Encaminha ao financeiro;

não SE aprovado ENTÂO


Aprovado?
INÍCIO
sim Processa compra;
Encaminha ao financeiro FIM
FIM
FIM
Aprovado?
não

sim Fluxograma e Pseudocódigo são apenas formas distintas de


Processa compra representar um Algoritmo.

fim
Definição
 Algoritmos são receitas para a realização de
operações.

 Com o processo de automatização, surgiu a


necessidade de especificar com clareza etapas e
passos a serem seguidos.

 Um programa de computador (software) é


simplesmente a implementação de um algoritmo numa
forma de escrita específica.
Algoritmo é...
 ...a especificação da seqüência ordenada de passos
que deve ser seguida para a realização de uma tarefa,
garantindo a sua repetibilidade.

 ...um conjunto finito de regras, bem definidas, para a


solução de um problema em um tempo finito e com um
número finito de passos.

 ...qualquer procedimento computacional bem definido


que toma algum conjunto de valores como entrada
e produz algum resultado como saída.
Exemplo 1 – Proposta de fluxo para solicitar compra
de material Processos podem ser detalhados em sub-processos
(sub-fluxos ou sub-rotinas) até que estejam precisamente
início definidos.

Preenche formulário
de compras

Encaminha ao gestor
Principais Características do Algoritmo
Única condição inicial;
não Única condição final sempre atingida para quaisquer entradas;
Aprovado?
Número finito de passos;
Cada passo precisamente definido, sem ambigüidades;
sim
Existência de uma ou mais saídas.
Encaminha ao financeiro

Aprovado?
não

sim
Processa compra

fim
Exemplo 2 – Soma de números de 2 algarismos
AB
+ CD
------
início EF
INÍCIO
F=B+D
F = B+D

SE F >= 10 ENTÃO
F >= 10?
sim
F = F - 10 INÍCIO
VaiUm = 1 F = F – 10;
não VaiUm = 1
VaiUm = 0 FIM
SENÃO
INÍCIO
E = A + C + VaiUm VaiUm = 0
FIM
“Resultado: “
EF
E = A + C + VaiUm
Imprima “Resultado:“ EF
fim FIM
Exemplo 2 – Soma de números de 2 algarismos
AB Observações
+ CD
------ A, B, C, D representam a entrada do problema
EF E, F representam a saída
início
Ou seja, cada combinação diferente de A,B,C,D
F = B+D fornece uma saída (potencialmente) diferente de E, F.

A, B, C, D, E, F, VaiUm são dados chamados VARIÁVEIS.


sim
F >= 10? F = F - 10
VaiUm = 1 O valor 10 é chamado CONSTANTE.
não
VaiUm é uma VARIÁVEL, mas não representa entrada
VaiUm = 0
ou saída. É usada para viabilizar os cálculos.

E = A + C + VaiUm

“Resultado: “
EF

fim
Exemplo 3 – Soma de números de 2 algarismos
Inserindo entrada de dados (AB e CD)
início AB
+ CD INÍCIO
AB ------ Leia AB
EF Leia CD
CD

F = B+D
F=B+D

SE F >= 10 ENTÃO
sim INÍCIO
F >= 10? F = F - 10
VaiUm = 1 F = F – 10;
não VaiUm = 1
VaiUm = 0 FIM
SENÃO
INÍCIO
E = A + C + VaiUm VaiUm = 0
FIM
“Resultado: “
EF
E = A + C + VaiUm
Imprima “Resultado:“ EF
fim FIM
Exemplo 3 – Soma de números de 2 algarismos
Inserindo entrada de dados (AB e CD)
início AB
+ CD Nota.
AB ------ Após estas alterações, o algoritmo/fluxograma realizará a
EF leitura das variáveis A, B, C e D.
CD

F = B+D

sim
F >= 10? F = F - 10
VaiUm = 1
não
VaiUm = 0

E = A + C + VaiUm

“Resultado: “
EF

fim
Símbolos para representação do fluxograma

Nota.
Existem divergências sobre a utilização destes símbolos e isto
Não será foco deste curso.
Estruturas de um Algoritmo

Existem duas estruturas que são utilizadas na construção de praticamente todos os


algoritmos:
• Estruturas de Decisão
• Estruturas de Repetição

Estruturas de Decisão (Comandos de Decisão)


Permitem a tomada de decisão, direcionando o fluxo para o tratamento de mais de
um tipo de situação, tornando-o generalista.

Permite que o algoritmo avalie condições e tome decisões sem interferência humana.

Estruturas de Repetição (Comandos de Repetição)


Permite realizar a repetição de passos do algoritmo para simplificar sua escrita. No
caso de programas, permite também que um mesmo processamento seja aplicado a
grandes massas de dados.
Estruturas de Decisão
Estruturas de Decisão
 Existem duas estruturas de decisão:

 SE...SENÃO

 ESCOLHA

Como exemplo veremos a estrutura SE...SENÃO


Estrutura de Decisão
SE...SENÃO
Decisão: Estrutura SE..SENÃO

SE <condição1> ENTÃO Esta estrutura permite a realização de


<bloco de instruções1> testes lógicos para que o algoritmo
SENÃO SE <condição2> ENTÃO opte entre duas ou mais sequências de
<bloco de instruções2> comandos.
SENÃO SE <condição3> ENTÃO
<bloco de instruções3>
Será executada apenas o primeiro
.
bloco de instruções em que a condição
.
.
avaliada oferecer resultado
SENÃO VERDADEIRO.
<bloco de instruçõesN>
Nota
Podemos ter diversas cláusulas
SENÃO SE.

Teste lógico é qualquer teste cujo


resultado seja VERDADEIRO ou
FALSO
Algoritmo para trocar lâmpada simples
INÍCIO Nota
pegue uma escada; Todo algoritmo sempre inicia com a palavra Início
coloque-a embaixo da lâmpada; e termina com a palavra Fim.
busque uma lâmpada nova; Estas palavras delimitam um bloco de
suba na escada com a lâmpada nova; instruções.
retire a lâmpada velha;
coloque a lâmpada nova; Dentro do bloco definimos os passos necessários
desça da escada. para a resolução, linha após linha.
FIM Repare que cada linha termina com um ponto-e-
vírgula.
Limitações do Algoritmo
Não verifica se a lâmpada acende É prática comum que um bloco tenha todos os
Não verifica se a lâmpada nova acende seus comandos alinhados verticalmente.
Algoritmo para trocar lâmpada com decisão
INÍCIO Nota
ligue o interruptor; Este algoritmo representa um avanço em relação
ao anterior, pois testa o funcionamento da
lâmpada original antes de realizar sua troca.
SE a lâmpada não acender, ENTÃO
INÍCIO Limitações do Algoritmo
pegue uma escada; Não verifica se a lâmpada nova acende
coloque-a embaixo da lâmpada;
busque uma lâmpada nova;
suba na escada com a lâmpada nova;
retire a lâmpada velha;
coloque a lâmpada nova;
desça da escada.
FIM
FIM
Exemplo: Estrutura SE..SENÃO
Proponha um algoritmo que leia INICIO
um valor. LEIA (x);

Caso o valor lido seja maior que SE x>5 ENTÃO


5, o programa deve imprimir INICIO
“acima de cinco”.
imprima “acima de cinco”;
FIM
Caso contrário, o programa deve
imprimir “abaixo de cinco”.
SENÃO
INICIO
imprima “abaixo de cinco”;
FIM

FIM
Estruturas de Repetição
Estruturas de Repetição
 Existem três estruturas de repetição:

 ENQUANTO...FAÇA
 PARA
 REPITA...ENQUANTO

Veremos a estrutura ENQUANTO...FAÇA como exemplo


ENQUANTO...FAÇA
ENQUANTO <condição> FAÇA
<bloco de instruções>
Algoritmo para trocar lâmpada com repetição
INÍCIO Nota
Este algoritmo representa um avanço em relação
SE lâmpada não acender ENTÃO ao anterior, pois testa o funcionamento da nova
lâmpada instalada.
INÍCIO
pegue uma escada;
coloque-a embaixo da lâmpada;

ENQUANTO lâmpada não acender FAÇA


INÍCIO
busque uma lâmpada nova;
suba na escada com a lâmpada nova;
retire a lâmpada velha;
coloque a lâmpada nova;
desça da escada.
FIM
FIM
FIM
Exemplo: Estrutura ENQUANTO
 Escreva um algoritmo INICIO
VAR x: INTEIRO;
que imprima todos os
números inteiros de 1 x = 1;
até 100.
ENQUANTO (x<=100) FAÇA
INICIO
imprima x;
x = x + 1;
FIM

FIM

Вам также может понравиться