Anda di halaman 1dari 15

08/08/2011

Algoritmos
Fundamentos de
• Definições:
Programação “Redação que descreve de forma lógica e sem
ambigüidades, uma seqüência de passos (ações)
para se resolver um problema que tenha um
Prof. Yandre Maldonado - 1

Prof. Yandre Maldonado - 2


comportamento padrão.”
Profa. Claudia Heidemann de Santana Franco e Polidório
chsantana2@uem.br
“Uma seqüência de passos que visam atingir um
CURSO: FÍSICA
objetivo bem definido.”
DISCIPLINA: FUNDAMENTOS DA COMPUTAÇÃO Forbellone e Eberspächer
UNIVERSIDADE ESTADUAL DE MARINGÁ
DEPARTAMENTO DE INFORMÁTICA

Algoritmos Algoritmos
“É a descrição de um padrão de comportamento, • O algoritmo deve ensinar a resolver o problema,
expressado em termos de um repertório bem definido e não trazer a solução.
e finito de ações primitivas, das quais damos por certo – Exemplo: receita de bolo;
que elas podem ser executadas.”
Prof. Yandre Maldonado - 3

Prof. Yandre Maldonado - 4


Guimarães e Lages • Ação é um acontecimento que, a partir de um
estado inicial, após um período de tempo finito,
“Descrição de um conjunto de comandos que, produz um resultado final previsível e bem
obedecidos, resultam numa sucessão finita de ações.” definido.
Farrer e outros • Objetivo: solução do problema.

1
08/08/2011

Lógica de Prográmação Lógica ?


A lógica de programação é necessária para
pessoas que desejam trabalhar com Lógica de programação é a técnica de
desenvolvimento de sistemas e encadear pensamentos para atingir
programas, ela permite definir a seqüência determinado objetivo.
Prof. Yandre Maldonado - 5

Prof. Yandre Maldonado - 6


lógica para o desenvolvimento.

Algoritmos Algoritmos
• Aspecto lógico: ordenar o pensamento. – Lógica no dia-a-dia:
• Todo mamífero é animal.
– Organização seqüencial das ações pertinentes à
• Todo cavalo é mamífero.
solução de um problema;
• Portanto, todo cavalo é animal.
• Exemplo: o bolo só pode ser levado ao forno depois que a
massa estiver pronta.
Prof. Yandre Maldonado - 7

Prof. Yandre Maldonado - 8

2
08/08/2011

Algoritmos Tipos de Algoritmos


• Padrão de comportamento: uma seqüência de
ações para resolver um problema. • Descrição Narrativa
– Exemplos: • Fluxograma
• Trocar uma lâmpada (problema cotidiano):
– pegue uma escada; • Pseudocódigo

Prof. Yandre Maldonado - 10


Prof. Yandre Maldonado - 9

– posicione-a sob a lâmpada;


– busque uma lâmpada nova;
– suba na escada;
– retire a lâmpada velha;
– coloque a lâmpada nova.
• Calcular a área de um retângulo (problema matemático):
– obtenha a medida da base do retângulo;
– obtenha a medida da altura do retângulo;
– multiplique a medida da base pela medida da altura.

Descrição Narrativa Exemplo


Vantagem: não é necessário aprender Somar dois números:
nenhum conceito novo, pois é uma lingua Passo 1 – receber dois numeros.
natural
Passo 2 – somar os dois numeros.
Prof. Yandre Maldonado - 11

Prof. Yandre Maldonado - 12


Desvatagem: a lingua natural abre espaço Passo 3 – mostrar o resultado obtido.
para várias interpretações o que depois
poderá dificultar na transcrição para um
programa.

3
08/08/2011

Fluxograma Fluxograma
Vantagens: entendimento dos elementos FLUXO DE DADOS
gráficos Indica o sentido do fluxo de dados. A direção
em que se deve seguir pelo algoritmo. Conecta
os demais símbolos.
Prof. Yandre Maldonado - 13

Prof. Yandre Maldonado - 14


Desvantagens: preciso aprender a Figura: Seta
simbologia, o algoritmo nao apresenta
muito detalhes. TERMINAL
Indica o INÍCIO ou FIM de um processamento.
Exemplo: Início do algoritmo.
Figura Geométrica: Elipse horizontal

Fluxograma Fluxograma
PROCESSAMENTO DESVIO (conector)
Processamento em geral. Permite o desvio para um ponto qualquer do programa.
Exemplo: Cálculo de dois números.
Figura Geométrica: Retângulo
Figura Geométrica: Círculo
Prof. Yandre Maldonado - 15

Prof. Yandre Maldonado - 16


DECISÃO
ENTRADA/SAÍDA (Genérica) Permite elaborar processos de decisão.
Operação de entrada e saída de dados. Exemplo: Comparação de valores.
Exemplo: Leitura e gravação de arquivos.
Figura Geométrica: Losango
Figura Geométrica: Paralelogramo

4
08/08/2011

Pseudocódigo Exemplo
Vantagem: passagem do algoritmos para Algoritmo somar;
qualquer linguagem de programação é Variaveis N1, N2, S: numérico;
quase que imediata;
Escreva (“digite dois numeros”);
Prof. Yandre Maldonado - 17

Prof. Yandre Maldonado - 18


Leia (n1, n2);
Desvantagem: é necessário aprender as S := N1 + N2;
regras do pseudocódigo;
Escreva (“A soma é:”, S);
Fim.

Exercícios: Algoritmos
Linguagem Algorítmica
1. Faça um algoritmo para mostrar o Linguagem
resultado da multiplicação de dois Computacional

numeros;
Prof. Yandre Maldonado - 19

Prof. Yandre Maldonado - 20


• Nos algoritmos, devemos utilizar construções
2. Faça um algoritmo para mostrar o que executarão uma ação específica bem
definida;
resultado da média de dois numeros
quaisquer; • Uma linguagem algorítmica deve ter sintaxe
rígida e semântica bem definida;
• Toda linguagem possui sintaxe e semântica.

5
08/08/2011

Algoritmos Algoritmos
• Sintaxe: dita as regras de como as • Todo algoritmo deve ser descrito em
sentenças e cada um de seus alguma linguagem;
elementos devem ser construídos • Assim, o algoritmo deve respeitar um
Prof. Yandre Maldonado - 21

Prof. Yandre Maldonado - 22


corretamente; padrão sintático;
• Semântica: se preocupa com o • Primeira linguagem: LPE (Linguagem em
Português Estruturado);
significa de uma sentença construída.
– Criada por Anderson Grüdtner Martins

Algoritmos Algoritmos
• Estrutura básica do algoritmo em LPE: • Um primeiro algoritmo em LPE:
algoritmo teste; Identificação do algoritmo

variaveis
algoritmo primeiro;
Prof. Yandre Maldonado - 23

Prof. Yandre Maldonado - 24


Bloco de declarações: variáveis
x: inteiro;

constantes inicio
nome = ‘Fulano’; Bloco de declarações: constantes
escreva (‘Curso de Física - UEM');
inicio fim.
Bloco de comandos
fim.

6
08/08/2011

Algoritmos
Entrada

• Algoritmos geralmente descrevem algum


processamento de dados: Ações
Saída ou resultado
Prof. Yandre Maldonado - 25

Prof. Yandre Maldonado - 26


Dados de Processamento Dados de
Entrada (Computador) Saída

Para a equação do segundo grau, a, b, c


• Estes dados precisam ser representados o diagrama seria
(descritos) nos algoritmos;
X1, X2
Calcular
raízes

Algoritmos Algoritmos
• Um algoritmo para fins computacionais • A cada objeto é associado um nome que
é a descrição de ações que manipulam identifica este objeto ao longo da programação.
objetos em função do tempo. Este nome é chamado identificador.
– Objetos descrevem o estado computacional; • De forma geral, podemos dizer que um
Prof. Yandre Maldonado - 27

Prof. Yandre Maldonado - 28


– Objetos têm função específica; identificador está associado à uma célula de
– Ações são direcionadas aos objetos; memória.
– Objetos são definidos como parte do • O termo variável é freqüentemente utilizado
programa; como sinônimo de identificador.
– Estados diferentes requerem objetos
diferentes.
* Objetos frequentemente serão chamados de variáveis.

7
08/08/2011

Algoritmos Exemplos de Identificadores


Válidos: Inválidos:
• Em geral, as linguagens de programação • A • 5b : por começar com número
exigem nomes de identificadores com as • a • e 12 : por conter espaço em
seguintes característica: • nota branco
Prof. Yandre Maldonado - 29

Prof. Yandre Maldonado - 30


– Use somente letras e números; • NOTA • x-y : por conter o caractere
– O primeiro caractere do nome deve ser uma letra; especial
• X5
– Não é permitido o uso de caracteres especiais; • prova 2n : por conter espaço em
• A32
– Não se pode usar as palavras reservadas nos branco
• NOTA1
identificadores, ou seja, palavras que pertençam a • nota(2) : por conter os caracteres
uma linguagem de programação. • MATRICULA especiais ()
• nota_1 • case : por ser palavra reservada
30

Algoritmos
• Atributos (características) de um objeto:
– Nome;
– Célula de memória;
– Valor associado;
Prof. Yandre Maldonado - 31

Prof. Yandre Maldonado - 32


– Tipo: define a categoria dos dados que podem ser
armazenados no objeto.
Nome identificador do objeto

conteúdo (valor armazenado na célula de memória)


Tipos de Dados -
célula de memória Algoritmos

8
08/08/2011

Algoritmos Algoritmos - Tipo de Dado


– Um identificador armazena um único dado num
• O Tipo de Dados instante, mas este dado não pode ser qualquer um;
– especifica uma classe de valores que podem – Os objetos serão classificados segundo um tipo;
ser armazenados na célula de memória – Os dados podem ter estruturas físicas diferentes;
Prof. Yandre Maldonado - 33

Prof. Yandre Maldonado - 34


associada ao identificador; – As células de memória do computador precisam ser
– define as operações válidas sobre o compatíveis com o tipo de dado que vão
identificador; armazenar;

Algoritmos Algoritmos
• Devemos informar ao computador qual o tipo • Os tipos de dados podem variar de uma
de dado que vamos armazenar; linguagem para outra. No entanto, existem
dois tipos básicos:
• Esta informação determina quantas células
– Tipos simples;
de memória serão necessárias para
Prof. Yandre Maldonado - 35

Prof. Yandre Maldonado - 36


– Tipos estruturados (estudados mais adiante);
armazenar o dado;
• Esta informação define quais serão as Tipos de Dados Simples
operações possíveis de se aplicar sobre os
dados; Numérico Caracter Lógico
– Exemplo: em um dado numérico pode-se aplicar
uma operação aritmética. Inteiro Real

9
08/08/2011

Algoritmos Algoritmos
• Os Tipos de Dados Numéricos são • Os inteiros são compatíveis com os reais,
divididos basicamente em dois grandes mas os reais não são compatíveis com os
conjuntos: inteiros;
• Assim, um objeto real pode receber um valor
Prof. Yandre Maldonado - 37

Prof. Yandre Maldonado - 38


– Inteiros;
inteiro, mas um objeto inteiro não pode
– Reais;
receber um valor real;
• Os inteiros podem ser positivos, • Declaração:
negativos ou nulos, mas não possuem LPE Pascal C
um componente decimal; inteiro integer int

Algoritmos Algoritmos
• Os reais podem ser positivos, negativos • Os números inteiros consomem menos
ou nulos, e possuem sempre um espaço de armazenamento em memória;
componente decimal; • Declaração:
Prof. Yandre Maldonado - 39

Prof. Yandre Maldonado - 40


• Exemplos: 2,34; 0,0; -214,123;
LPE Pascal C
• Computacionalmente, existem muitas real real float
diferenças entre o armazenamento de
números inteiros e números reais;

10
08/08/2011

Algoritmos Algoritmos

• Os tipos de dados não numéricos: • Para diferenciar um caracter de um


identificador ou de um dado numérico,
– Caracter: formado pelas letras (de A a Z, e
de a a z), dígitos (de 0 a 9) e caracteres utilizaremos apóstrofes. Assim:
Prof. Yandre Maldonado - 41

Prof. Yandre Maldonado - 42


especiais (~, ., ?, >, <, ...);
– A diferença entre caracteres e dados – 8 é um dado numérico;
numéricos estão na forma de – ‘8’ é um caracter;
armazenamento, e nas operações legais
– A é um identificador;
permitidas sobre os mesmos;
• Exemplo: operações aritméticas sobre os
– ‘A’ é um caracter
dados numéricos.

Algoritmos Algoritmos
• Objetos declarados como do tipo caracter • Declaração:
poderão armazenar um único caracter;
• Para armazenar uma seqüência de caracteres
será utilizada a estrutura cadeia de caracteres, LPE Pascal C
Prof. Yandre Maldonado - 43

Prof. Yandre Maldonado - 44


que consiste num tipo de dado estruturado; texto char char
– Exemplo:
• ‘Z’ é um caracter;
• ‘ANA’ é uma cadeia de caracteres;

11
08/08/2011

Algoritmos Algoritmos
• Tipo Lógico: os valores lógicos podem • Declaração do tipo do identificador
assumir uma entre duas possibilidades (objeto): em LPE.
(verdadeiro ou falso);
– Só poderá armazenar um destes dois valores;
Prof. Yandre Maldonado - 45

Prof. Yandre Maldonado - 46


variaveis
• Muito utilizados em controle do fluxo lógico identificador: tipo;
do algoritmo;

LPE Pascal C
logico boolean não
existe

Algoritmos Algoritmos
• Escolha do tipo de um identificador:
• Caso haja mais de uma variável do mesmo
• deve-se conhecer bem a solução do problema.
tipo:
– Exemplos de inteiros:
variaveis
• número de pessoas;
identificador1, identificador2: tipo; • um número par ou ímpar;
Prof. Yandre Maldonado - 47

Prof. Yandre Maldonado - 48


• Se houver identificadores de tipos diferentes • idade de uma pessoa;
(inteiro,real, lógico): • quantidade de objetos;

variaveis – Exemplos de reais:


• o peso de uma pessoa;
i1, i2, i3: inteiro; • um percentual;
r1, r2: real; • nota de uma avaliação;
l1: logico; • média;
• preço de um produto;

12
08/08/2011

Algoritmos Algoritmos
• Valores dos dados
• Situações de dúvida – os dados são valores que são armazenados em
– Exemplos: células de memória e que são acessados (ao longo do
• raíz quadrada de um número; algoritmo) por referência aos identificadores;
• divisão entre dois números inteiros; – assim, se tivermos os identificadores i, r e l, para
Prof. Yandre Maldonado - 49

Prof. Yandre Maldonado - 50


objetos do tipo inteiro, real e lógico respectivamente, e
• Quando houver alguma possibilidade de um atribuirmos os valores 100; 3,14; e falso, teríamos a
identificador numérico receber um valor não seguinte configuração:
inteiro, deve ser declarado como real. i r l

Reais 100 3,14 falso

Inteiros – Estes são os valores exibidos quando se utiliza a


instrução escreva.

Algoritmos Algoritmos
• Tipos disponíveis em LPE: • Argumentos de Entrada e Saída
– Entrada: objetos cujos valores são
TIPO DE DADO DESCRIÇÃO
conhecidos em tempo de execução;
Prof. Yandre Maldonado - 51

Prof. Yandre Maldonado - 52


texto
Tipo de dado tipo texto – Todos os caracteres, desde que escrito • permitem um comportamento mais genérico
entre aspas simples: Ex: ‘Olá mundo!’
dentro do caráter específico do comportamento
inteiro Tipo de dado numérico de valores inteiros: 54
padrão;

real Tipo de dado numérico de valores reais: 0,56


– Saída: objetos que armazenam a solução
objetivo de um problema;
Tipo de dado lógico booleano que assume um dos valores:
logico verdadeiro ou falso

13
08/08/2011

14
Exercício

Exercício

Prof. Yandre Maldonado - 54 Prof. Yandre Maldonado - 56


Exercício

Exercício
Prof. Yandre Maldonado - 53 Prof. Yandre Maldonado - 55
08/08/2011

15
Exercício Prof. Yandre Maldonado - 57