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

Algoritmos

Professor Renan

Perguntas
O que algoritmo?

Qual sua relao com programao de computadores?

Computador

Finalidade do computador
Realizar a tarefa de processamento de dados.
Receber dados por um dispositivo de entrada

Realizar operaes com esses dados


Gera uma resposta

Processamento dos dados

Computador
SOFTWARE

COMPUTADOR

HARDWARE

Software
Programa em processamento no computador
Podem ser do tipo bsico, programas que definem o padro do
equipamento e so necessrios para o funcionamento do computador.

Tipos:
Sistema operacional
Ambiente operacional
Linguagens de programao (tradutores)

Sistema operacional
um programa ou conjunto de programas cuja funo
gerenciar os recursos do computador.

Em geral, so fornecidos pelos fabricantes do equipamento.


Constitudos por programas escritos em linguagem de
programao de baixo nvel.

Ambiente Operacional
Interface grfica entre o usurio e o Sistema Operacional.

Linguagem de programao
Conjunto de smbolos e regras que especificam um padro sinttico para
estabelecer a comunicao entre usurios e computador.

Na lngua portuguesa,

Os smbolos so as letras.
As regras so a gramtica da lngua portuguesa.
Padro sinttico a escrita correta.

Linguagem de programao
dividida em linguagem de baixo nvel e linguagem de alto nvel.
Alto nvel

Baixo nvel

Linguagem de baixo nvel


Linguagem de Mquina
Baseada no cdigo binrio, em 0s e 1s e interpretada diretamente pelo computador.
01000110 01110101 01101110 01100100 01100001 01101101 01100101 01101110

01110100 01101111 01110011 00100000 01100100 01100101 00100000 01110000


01110010 01101111 01100111 01110010 01100001 01101101 01100001 11100111
11100011 01101111

Fundamentos de Programao

Linguagem de baixo nvel


Linguagem de
mquina

Significado

0010 0001 1110 carrega no registrador 1 o contedo da posio de memria 14


0010 0010 1111

carrega no registrador 2 o contedo da posio de memria 15

0001 0001 0010

soma o contedo do registrador 1 com o contedo do registrador


2 e coloca no registrador 1

0011 0001 1111

armazena o contedo do registrador 1 na posio de memria 15

Linguagem de baixo nvel


Linguagem de baixo nvel simblica:
Simplificao da linguagem de mquina, faz uso de cdigos para expressar as
instrues.

Exemplo: Assembly
Linguagem de mquina
0010 0001 1110
0010 0010 1111
0001 0001 0010
0011 0001 1111

Linguagem simblica
LOAD R1, val1
LOAD R2, val2
ADD R1, R2
STORE R1, val2

Linguagem de alto nvel


a combinao de um conjunto de smbolos de acordo com certas regras de
sintaxe para expressar uma sequncia de operaes de mquina.

uma linguagem que no exige conhecimento do cdigo de mquina.


Exemplos: FORTRAN, ALGOL, COBOL, BASIC, PASCAL, LOGO, C,
JAVA, LISP, PROLOG, Phyton etc.

Compilador
Um compilador um programa de sistema que traduz um programa descrito
em uma linguagem de alto nvel para um programa equivalente em cdigo de
mquina para um processador.

Produz um programa em linguagem simblica (assembly).


Montadores traduz a linguagem simblica para a linguagem de mquina.

Linguagem: Mquina x Simblica x Alto Nvel


Linguagem de
mquina

Linguagem simblica

0010 0001 1110

LOAD R1, val1

0010 0010 1111

LOAD R2, val2

Linguagem de alto
nvel

val2 = val1 + val2


0001 0001 0010

ADD R1, R2

0011 0001 1111

STORE R1, val2

Desenvolvendo programas
Quando queremos escrever um software para realizar um determinado tipo
de processamento de dados, devemos escrever um programa ou vrios
programas interligados.

Para isso utilizamos a linguagem de programao.

O que o programa
a codificao de um algoritmo em uma determinada linguagem de
programao.

Etapas de desenvolvimento de programas


Anlise nessa etapa estuda-se o enunciado do problema para definir os dados de
entrada, o processamento e os dados de sada;

Algoritmo ferramentas do tipo descrio narrativa, fluxogramas ou portugus


estruturado so utilizadas para descrever o problema com suas solues.

Codificao o algoritmo transformado em cdigo da linguagem de programao


escolhida para se trabalhar.

Algoritmo
Um algoritmo uma redao que deve descrever, de forma lgica e sem
ambiguidades, os passos (aes) a serem seguidos para se resolver um
problema especifico que tenha um comportamento padro em sua soluo.

Histria
Historiadores trazem divergncias sobre a origem da palavra algoritmo.

A mais difundida de Mohamed ben Musa Al-Khwarizmi.


Um matemtico persa do sculo IX, cujas obras foram traduzidas no ocidente no
sculo XII.

Uma das obras recebeu o nome Algorithmi de numero indorum (indiano).


Algoritmos sobre o sistema de numerao decimal.

Histria
Algoritmo mais antigo (400 a 300 AC).
Algoritmo de Euclides, calcula o mximo divisor comum
(MDC) de dois nmeros inteiros positivos.

Histria
Para a Cincia da computao, o conceito

de algoritmo foi formalizado em 1936 por


Alan Turing (Mquina de Turing) e
Alonzo Church.

Um algoritmo um conjunto no

ambguo e ordenado de passos executveis


que definem um processo finito.

Algoritmos
Objetivo de um algoritmo o de ensinar a resolver problemas.
Nosso objetivo o de construir algoritmos.
Construiremos textos que ensinem a resolver problemas,
No preocupamos com o resultado da soluo do problema, desde que o algoritmo
esteja correto.

Algoritmo
Exemplos clssicos deste fato so as receitas de bolos.

Um livro de receitas de bolos


Descreve os passos a serem seguidos e ingredientes a serem usados

Resultado final: o bolo.


Nenhum livro de receitas traz o bolo pronto.

Lgica e comportamento do algoritmo


Algoritmo se resume na organizao sequencial das aes de soluo do problema
especfico.

Exemplo: s levaremos o bolo ao forno quando a massa do mesmo estiver pronta e


no antes.

Mas a grande exigncia da lgica se encontra nas tomadas de decises e nos


processos de repetio no algoritmo

Algoritmo
Como desenvolvemos um algoritmo para fazer um sanduche?

Algoritmo
Fazer uma prova?

Exerccio
Desenvolver um algoritmo para trocar uma lmpada?

Desenvolver um algoritmo para sacar dinheiro no banco 24 horas?

Variaes
Todas as possveis execues do mesmo devem produzir resultados corretos.
Deve ser um conjunto de passos finitos.
Detalhamento de um algoritmo escolhido de acordo com o problema.

Exemplo de detalhamento
Suponha que seu carro esteja falhando, voc o leva no mecnico e simplesmente diz: - "O meu carro est
falhando, conserte-o!

Agora vamos supor que voc leve o seu carro para um aprendiz de mecnico, voc ter que supervisionar o
trabalho, informando-o das aes que ele dever executar:

1. "verificar velas e distribuidor"


2. "limpar carburador e gicls"
3. "verificar platinado"
4. "verificar partes eltricas relacionadas com o motor"
5. "verificar se o combustvel no foi adulterado

Mtodos para a construo de algoritmos


Ler atentamente o enunciado, destacando os pontos mais importantes.
Definir os dados de entrada, ou seja, quais dados sero fornecidos.
Definir o processamento, ou seja, quais clculos sero efetuados e quais as
restries para esses clculos. O processamento responsvel pela
transformao dos dados de entrada em dados de sada.

Mtodos para a construo de algoritmos


Definir os dados de sada, ou seja, quais dados sero gerados depois do
processamento.

Construir o algoritmo.
Testar o algoritmo realizando simulaes.

Tipos de algoritmos

Os tipos mais utilizados de algoritmos so:

descrio narrativa
fluxograma
pseudocdigo.

Descrio narrativa
Analisar o enunciado do problema e escrever, utilizando uma

linguagem natural, os passos a serem seguidos para a resoluo do


problema.

Vantagem: no necessrio aprender nenhum conceito novo.


Desvantagem: a lngua natural abre espao para vrias

interpretaes, o que dificultar a transio desse algoritmo para o


programa.

Problema
Faa um algoritmo para mostrar o resultado da multiplicao de dois
nmeros.

Soluo descrio narrativa


Passo 1 Recebe os dois nmeros que so multiplicados
Passo 2 multiplica os nmeros
Passo 3 mostrar o resultado obtido na multiplicao

Fluxograma
Consiste em analisar o enunciado do problema e escrever, utilizando
smbolos grficos predefinidos, os passos a serem seguidos para a resoluo
do problema.

Vantagem: entendimento dos elementos grficos mais fcil


Desvantagem: necessrio aprender a simbologia dos fluxogramas, e o
algoritmo no apresenta muitos detalhes, dificultando a transio para um
programa.

Fluxograma

Soluo pelo Fluxograma


Problema da multiplicao entre dois nmeros.
valor1, valor2

Multi = valor1*valor2

Multi

Incio
Fim

Pseudocdigo
Consiste em analisar o enunciado do problema e escrever, por meio de regras
predefinidas, os passos a serem seguidos para a resoluo do problema.

Vantagem: passagem do algoritmo para qualquer linguagem de programao


quase imediata, bastando conhecer as palavras reservadas da linguagem de
programao que ser utilizada.

Desvantagem: necessrio aprender as regras do pseudocdigo.

Soluo Pseudocdigo

ALGORITMO

DECLARE VALOR1, VALOR2, MULTI NUMRICO


ESCREVA Digite os dois nmeros
LEIA VALOR1, VALOR2

MULTI <- VALOR1*VALOR2


ESCREVA Multiplicao = , MULTI
FIM_ALGORITMO.

Exerccio:
Faa um algoritmo para mostrar o resultado da diviso de dois nmeros.

Perguntas
O que algoritmo?

Qual sua relao com programao de computadores?

Para casa
Para os problemas a seguir, desenvolva o algoritmo na forma narrativa, fluxograma e pseudocdigo.
1. Desenvolver um algoritmo que calcule a mdia aritmtica entre duas notas de um aluno e mostrar se o
aluno foi reprovado ou se foi aprovado na disciplina.

2.

Desenvolver um algoritmo para calcular o novo salrio de um funcionrio. Sabe-se que os funcionrios que
possuem um salrio atual at R$ 500,00 tero aumento de 20%, os demais tero aumento de 10%.

3.

Desenvolva um algoritmo que Leia o nome, o sobrenome e concatene o nome e sobrenome. O resultado
ser o nome completo.

4.
5.
6.

Faa um algoritmo que calcule a rea de um retngulo.


Faa um algoritmo que calcule a rea de um tringulo.
Faa um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa
apenas em dias.

Fim!

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