You are on page 1of 31

Universidade Estadual de Maring Centro de Tecnologia Departamento de Informtica

Algoritmos

Prof Juliana K. Yamaguchi

Sumrio
Objetivo da aula
Apresentar o conceito de algoritmos

Introduo Conceito de algoritmo


Algoritmos x Programa Representao de um algoritmo Objetos de dados de um algoritmo

Introduo a Algoritmos
Para resolver um problema utilizando um computador necessrio encontrar, em primeiro lugar, uma maneira de descrev-lo de uma forma clara e precisa. tambm preciso que encontremos uma sequncia de passos que conduzam sua resoluo. Esta sequncia de passos designada por algoritmo

Algoritmo
uma redao que contm um conjunto finito de instrues no ambguas, organizadas de maneira lgica e com comportamento padro para resolver um problema especfico.

Algoritmo

Analogamente a uma receita de bolo, um algoritmo descreve os passos a serem executados para solucionar um problema
Fermento Farinha de trigo Acar Leite Ovos Manteiga Receita

Algoritmo x Programa
Um programa a traduo do algoritmo para uma linguagem de programao de modo que o computador possa executar as instrues definidas no algoritmo

Algoritmo x Programa
Deve-se considerar trs fases na elaborao de programas:
Compreenso do problema Concepo do algoritmo (entradas e sadas) Traduo desse algoritmo em uma linguagem de programao

Problema

Algoritmo

Programa

Representaes de Algoritmo
Linguagem Natural
Os algoritmos so expressos diretamente em linguagem natural (por exemplo, a lngua portuguesa para a receita de bolo) Esta um representao grfica que emprega formas geomtricas padronizadas para indicar as diversas aes e decises que devem ser executadas para resolver o problema Emprega uma linguagem intermediria entre a linguagem natural e uma linguagem de programao para descrever os algoritmos

Fluxograma (ou Diagrama de Fluxo)

Pseudo-linguagem (ou pseudo-cdigo)

Representao de Algoritmo
Exemplo
Problema: calcular a raiz da equao ax+b=0
ax+b = 0 ax = -b x = -b/a

Obs.: se a=0, no existe raiz

Representao de Algoritmo
Exemplo
incio conhea a conhea b a 0? sim x = -b/a fim no Informa no existe zero Mostra valor de x

Problema: calcular a raiz da equao ax+b=0


Fluxograma Pseudo-cdigo
1. Incio de programa 2. conhea a e b; 3. se a0 ento x=-b / a; imprimir valor do zero (x); seno imprimir No h zero; m de se 4. Fim de programa

Fluxograma
FLUXO DE DADOS
Indica o sentido do fluxo de dados. Conecta os demais smbolos

DECISO
Permite elaborar processos de deciso

TERMINAL
Indica o INCIO ou FIM de um processamento. Exemplo: Incio do algoritmo

PREPARAO
Inicializao, teste e atualizao. Utilizado em laos iterativos

ENTRADA / SADA
Operao de entrada e sada de dados

DOCUMENTO
Representa a sada como um arquivo texto

PROCESSAMENTO
Processamento em geral Exemplo: Calculo de dois nmeros

EXIBIR
Mostra informao

CONECTOR
Permite o desvio para um ponto qualquer do programa

Representao de Algoritmo
O algoritmo para calcular a raiz da equao ax+b=0 no usa valores especficos para encontrar o zero da funo Apenas descreve as aes necessrias sobre os objetos (termos a e b) para sua resoluo

Objetos de dados de um algoritmo


Objetos de dados so os elementos bsicos que um algoritmo manipula Representa um espao reservado na memria (endereo de memria) do computador para armazenar um contedo de determinado tipo (inteiros, reais, caracteres, etc.) Devem receber nomes (identificador) para poderem ser referenciadas durante a execuo de um algoritmo

Objetos de dados de um algoritmo

O armazenamento de valores ao identificador se d por meio da operao de atribuio, denotada geralmente por quando utiliza-se pseudo-linguagem

Exemplo
Sabendo que um corpo se desloca em movimento retilneo uniformemente variado (MRUV), faa um algoritmo que calcule o espao que esse corpo percorre em um perodo de tempo em relao a um referencial.
s = s0 + v0t + at2/2

onde s o espao percorrido pelo corpo em relao a um referencial num perodo de tempo t; s0 a posio inicial do corpo em relao ao referencial e a a acelerao do corpo.

Exemplo
Problema: calcular o espao (s) que um corpo percorre em m.r.u.v. Frmula: s = s0 + v0t + at2/2 Objetos:
s0: posio inicial v0: velocidade inicial t: tempo a: acelerao

Exemplo
1 passo: criar os objetos de dados necessrios ao algoritmo
s0 v0 t a

identificadores

Exemplo
2 passo: conhecer o valor correspondente a cada objeto
s0
10m

v0
20m/s

t
60s

a
2m/s2

Exemplo
3 passo: calcular o espao percorrido (s)
s0
10m

v0
20m/s

t
60s

a
2m/s2

s = s0 + v0 * t + at2 /2 s = 10 + 20* 60 + 2*602 /2 s = 3730 m

Exemplo (livro-texto)
4 passo: exibir o resultado
s = 3730 m

Exemplo (livro-texto)
Pseudo-cdigo
Incio do programa ae (s0, v0, t, a) as (s) objetos s0, v0, t, a, s; incio das aes conhea o valor de s0 ; conhea o valor de v0 ; conhea o valor de t; conhea o valor de a; calcule o resultado da expresso s0 + v0 * t + at2/2 e atribua-o ao objeto s; informe o valor armazenado em s; fim das aes Fim do programa

Variveis e Constantes
Variveis
Podem ter seu valor modificado durante a execuo de um algoritmo Embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante

Constantes
Representa uma varivel que possui valor fixo

Variveis e Constantes
Exemplo volume de um cilindro
Faa um algoritmo que leia as medidas do raio e da altura de um recipiente cilndrico e calcule e apresente o volume deste recipiente atravs da formula: volume = 3.14 * raio2*altura

Variveis e Constantes
Exemplo volume de um cilindro
incio conhea raio conhea altura volume = 3,14* raio2 * altura Exibir valor do volume fim

raio e altura so variveis que podem assumir um valor numrico para serem utilizados no clculo do volume O valor 3,14 pode ser representado por uma constante por representar o valor do (pi)

Pseudo-cdigo
Estrutura
Declarao dos objetos Incio do programa argumentos de entrada (ae) argumentos de sada (as) objetos (objetos necessrios para resolver o problema) Incio das aes conhea argumentos de entrada / operaes de atribuio; processamento dos dados ; armazenamento do resultado no argumento de sada; exibio do resultado; Fim das aes Fim do programa

Corpo do programa

Pseudo-cdigo
Exemplo volume de um cilindro
Declarao dos objetos Incio do programa ae (raio, altura) as (volume) objetos: raio, altura, volume, (constante) pi=3,14; Incio das aes conhea o valor de raio e atribua-o ao objeto raio; conhea o valor de altura e atribua-o ao objeto altura; calcule o volume por meio da frmula: pi * raio 2 * altura; armazene o resultado no argumento de sada volume; exiba o resultado; Fim das aes Fim do programa

Corpo do programa

Tipos de dados
Os objetos de dados (variveis e constantes) esto associados a tipos que especificam o quanto de espao ser reservado na memria para a sua representao. O tipo de dado indica quais operaes podem manipular o objeto de dado
Por exemplo, se o dado for numrico podemos fazer operaes aritmticas (adio, subtrao, multiplicao e diviso). Caso seja uma sequncia de caracteres (texto), podemos efetuar uma operao de concatenao.

Tipos de dados
Tipos de dados simples

numrico

caractere

lgico

inteiro

real

Tipos de dados
Tipos caracter (char) inteiro (int) real (float) lgico (boolean) Tamanho aproximado em bits 8 16 32 8 Faixa mnima -128a127 32.768a3276 1037a10+37 verdadeiro ou falso

Tiposdedadosdefinidosnopadro ANSI (AmericanNationalStandardsInstitute)

Declarao de objetos de dados


A declarao do tipo de um objeto de dado deve ser feita na seo de declarao dos objetos que sero manipulados no algoritmo Sintaxe geral:
objetos identificador: tipo;

Declarao de objetos de dados


Exemplo volume de um cilindro
Incio do programa ae (raio, altura) as (volume) objetos: raio, altura, volume: real; // identificadores: tipo; constante pi=3,14; Incio das aes conhea o valor de raio e atribua-o ao objeto raio; conhea o valor de altura e atribua-o ao objeto altura; calcule o volume por meio da frmula: pi * raio2 * altura; armazene o resultado no argumento de sada volume; exiba o resultado; Fim das aes Fim do programa

Declarao dos objetos

Corpo do programa

You might also like