Anda di halaman 1dari 43

# SUMRIO

INTRODUO.................................................................................................................................................5
ALGORITMO...................................................................................................................................................6
ALGORITMO NO COMPUTACIONAL....................................................................................................6
PROGRAMA.....................................................................................................................................................7
LINGUAGENS DE PROGRAMAO..........................................................................................................7
TCNICAS ATUAIS DE PROGRAMAO................................................................................................8
ALGORITMOS EM PORTUGOL..............................................................................................................8
LINEARIZAO DE EXPRESSES............................................................................................................9
MODULARIZAO DE EXPRESSES....................................................................................................10
FUNES........................................................................................................................................................11
BIBLIOTECAS DE FUNES.....................................................................................................................12
FUNES PR-DEFINIDAS........................................................................................................................12
EXPRESSES LGICAS..............................................................................................................................14
VARIVEIS.....................................................................................................................................................15
CONSTANTES................................................................................................................................................16
COMANDOS DE I/O (INPUT/OUTPUT)....................................................................................................18
SINAL DE ATRIBUIO..............................................................................................................................19

Algoritmos

## CORPO GERAL DE UM PROGRAMA......................................................................................................20

ESTRUTURAS SEQNCIAIS....................................................................................................................20
; PONTO E VRGULA ;.................................................................................................................................21
PRIMEIRO ALGORITMO............................................................................................................................21
SEGUNDO ALGORITMO.............................................................................................................................22
{LINHAS DE COMENTRIO}.....................................................................................................................22
ASPAS SIMPLES.........................................................................................................................................23
ESTRUTURAS DE DECISO......................................................................................................................23
ALGORITMO TRS......................................................................................................................................24
ALGORITMO QUATRO...............................................................................................................................25
NINHOS DE SE...............................................................................................................................................26
ALGORITMO CINCO...................................................................................................................................26
ESTRUTURAS DE CONDIO..................................................................................................................27
ALGORITMO SEIS........................................................................................................................................27
ALGORITMO SETE......................................................................................................................................29
ALGORITMO OITO......................................................................................................................................30
ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO INICIAL...........................31
ALGORITMO NOVE.....................................................................................................................................31
ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO FINAL..............................32
ALGORITMO DEZ........................................................................................................................................33
ALGORITMO ONZE.....................................................................................................................................34
PROGRAMAS EQUIVALENTES.................................................................................................................35
EXERCCIOS..................................................................................................................................................36

Algoritmos

INTRODUO

objetivo

demonstrar

principal

tcnicas

para

da

Lgica

resoluo

de
de

Programao

problemas

## consequentemente automatizao de tarefas.

O aprendizado da Lgica essencial para formao de um
todas as linguagens de programao, estruturadas ou no.

Algoritmos

ALGORITMO

## Um Algoritmo uma seqncia de instrues ordenadas de

forma lgica para a resoluo de uma determinada tarefa ou
problema.
Conceitos
Procedimento - uma receita ou roteiro para executar alguma tarefa. Constituise de etapas, passos, comandos ou instrues que so executadas
seqencialmente.
Algoritmo - um procedimento que executado em um tempo finito. um
conjunto finito de regras, bem definidas, para a soluo de um problema em um
tempo finito.
Caractersticas dos algoritmos
- Execuo de algoritmos
De cima para baixo, seqencialmente, a menos que esta ordem seja
Aos valores recebidos por um algoritmo d-se o nome de entradas. No exemplo
1, o passo 1 constitui uma entrada.
um algoritmo recebem o nome de sadas.
- Definio dos passos
E importante que num algoritmo cada passo esteja precisamente definido no
Todas as operaes especificadas no algoritmo devem ser suficientemente
bsicas para que possam ser, pelo menos em princpio, executadas de maneira
exata e num tempo finito.
Formas de representao de algoritmos

Algoritmos

## Os algoritmos podem ser

escritos em linguagem comum,
em linguagem grfica
(fluxogramas ou diagramas de
blocos) ou ainda em linguagem
de programao como BASIC,
FORTRAN, COBOL, etc..
CLASSIFICAO E APRESENTAO DE ALGORITMOS NUMRICOS
Os algoritmos podem ser classificados em:
- no numricos
- numricos
Ou ainda podem ser classificados em:
- puramente seqenciais
- com seleo
- com repetio
Algoritmos puramente seqenciais
Todo o algoritmo puramente seqencial tem exatamente a seguinte estrutura:
- Ler valores
- Efetuar clculos
- Parar
5

Algoritmos

ler A, B, C
MEDIA = A + B + C / 3
escrever MEDIA
parar
Algoritmos com seleo e/ou deciso
ESTRUTURAS DE DECISO
Executa uma seqncia de comandos de acordo com o resultado de um teste.
A estrutura de deciso pode ser Simples ou Composta, baseada em um resultado lgico.
Simples:
SE <<CONDIO>>
ENTO <<COMANDO1>>

Composta 1:
SE <<CONDIO>>
ENTO <<COMANDO1>>
SENO <<COMANDO1>>

Composta 2:
SE <<CONDIO>>
ENTO INICIO
<<COMANDO1>>;
<<COMANDON>>
FIM;
SENO INICIO
<<COMANDO1>>; <<COMANDON>>
FIM;

## PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE

<<VALOR FINAL>> FAA
NICIO
<<COMANDO1>>;
<<COMANDON>>
FIM;

Algoritmos

ALGORITMO NO COMPUTACIONAL

## Abaixo apresentado um Algoritmo no computacional cujo

objetivo usar um telefone pblico.

Incio
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o carto;

SEQUNCIAL

## 4. Teclar o nmero desejado;

5. Se der o sinal de chamar

DESVIO

5.1 Conversar;
5.2 Desligar;
5.3 Retirar o carto;
6. Seno
6.1 Repetir;
Fim.

PROGRAMA

## Um programa um Algoritmo escrito em uma linguagem

computacional.

Algoritmos

LINGUAGENS DE PROGRAMAO

So
programas.

Softwares
Possuem

que
um

permitem

poder

de

desenvolvimento

criao

de

desde

## jogos, editores de texto, sistemas empresariais at sistemas

operacionais.
Existem vrias linguagens de programao, cada uma com
suas caractersticas prprias.
Exemplos:

Pascal

Clipper

Visual Basic

Delphi e etc.

Algoritmos

## TCNICAS ATUAIS DE PROGRAMAO

Programao Seqencial

## Programao Orientada a Eventos e Objetos

ALGORITMOS EM PORTUGOL

## Durante nosso curso iremos aprender a desenvolver nossos

Algoritmos em uma pseudo-linguagem conhecida como Portugol
Portugol
Algol.

Algol

o

nome

de

da

aglutinao

uma

linguagem

de
de

Portugus

programao

Subtrao

Multiplicao

Diviso

Algoritmos

>

Maior que

<

Menor que

>=

Maior ou Igual

<=

Menor ou Igual

Igual

<>

Diferente

LINEARIZAO DE EXPRESSES

Para

construo

de

Algoritmos

todas

as

expresses

linhas.

importante

correspondentes

tambm
da

ressalvar

aritmtica

uso

dos

para

computacional.
Exemplo:
2

3 5 3 1

(2/3+(5-3))+1=

Computacional

10

Algoritmos

MODULARIZAO DE EXPRESSES

## A modularizao a diviso da expresso em partes,

proporcionando maior compreenso e definindo prioridades para
resoluo da mesma.
Como

pode

ser

no

exemplo

anterior,

em

## expresses computacionais usamos somente parnteses ( )

para modularizao.
Na

informtica

podemos

ter

parnteses

dentro

de

parnteses.
(2+2)/2=2
2+2/2=3

## OPERADORES ESPECIAIS (MOD e DIV)

MOD

Retorna

resto

da

diviso

entre

nmeros

inteiros.
DIV Retorna o valor inteiro que resulta da diviso
entre 2 nmeros inteiros.

11

Algoritmos

Exemplo:

13 2
1

MOD

13 DIV 2 = 6

6
DIV

13 MOD 2 = 1

FUNES

## Uma funo um instrumento (Subalgoritmo) que tem como

objetivo retornar um valor ou uma informao.

12

Algoritmos

## A chamada de uma funo feita atravs da citao do

seu nome seguido opcionalmente de seu argumento inicial entre
parnteses.
As

funes

podem

ser

predefinidas

pela

linguagem

ou

Exemplos:

Valor Inicial X

X=9

Processamento

Valor Final Y

Y=3

BIBLIOTECAS DE FUNES

## Armazenam um conjunto de funes que podem ser usadas

pelos programas.

FUNES PR-DEFINIDAS

13

Algoritmos

ABS( )

VALOR ABSOLUTO

SQRT( )

SQR( )

TRUNC( )

ROUND( )

LOG( )

LOGARITMO

SIN( )

SENO

COS( )

COSENO

TAN( )

TANGENTE

nosso
possui

desenvolvimento
suas

lgico,

funes

entretanto,

prpias.

As

funes

linguagem
podem

ser

RETORNA

SE

AMBAS

AS

PARTES

FOREM

VICE-VERSA.

14

Algoritmos

A E B

A OU B

NO (A)

15

Algoritmos

EXPRESSES LGICAS

valor lgico.
Exemplos:

16

Algoritmos

3<>3 Falso

## De acordo com a necessidade, as expresses podem ser

Exemplos:
2+5>4 E 3<>3 Falso
V

F
E
F

V

V

NO

VARIVEIS

Variveis

so

endereos

de

memria

## armazenar informaes temporariamente.

* Todo Algoritmo ou programa deve possuir varivel!

17

Algoritmos

## Variveis de Entrada armazenam informaes fornecidas

por um meio externo, normalmente usurios ou discos.
Variveis

de

armazenam

como

Exemplo:
A

C=A+B

## De acordo com a figura acima A e B so Variveis de

Uma varivel contador uma varivel que recebe um valor inicial (geralmente zero) e incrementada em
algum outro passo do algoritmo, de um valor constante.
Exemplo:
1. CONT = 0
2. -------3. -------4. CONT = CONT + 1
No passo 1 inicializou-se a varivel CONT.
No passo 4, a varivel CONT recebeu um incremento (1, no caso) de forma que ela passa a armazenar a
soma do valor anterior (0) com o incremento (1). Assim, toda a vez que este passo (4) for executado, a
varivel CONT armazenar um valor igual a soma do valor anterior com o incremento.
Utilizando a varivel contador o algoritmo para calcular a mdia de cada um dos 30 alunos toma a seguinte
forma:
Este um exemplo de algoritmo com repetio porque tem alguns de seus passos com execuo repetida
(passos 2 at 6).
18

Algoritmos

## Suponha-se o seguinte problema:

Calcular a mdia geral de uma prova de vestibular a qual compareceram 2640 alunos.
Neste caso aparece a necessidade de se acumular (somar) as notas dos 2640 alunos, para depois dividir
esta soma pelo nmero de alunos que compareceram a prova.
Uma varivel acumulador uma varivel que recebe um valor inicial (geralmente 0) e incrementada em
algum outro passo do algoritmo, de um valor varivel.
Exemplo:
1. ACUM = 0
2. -------3. -------4. ACUM = ACUM + VAR
No passo 1 inicializou-se a varivel ACUM.
No passo 4, somou-se ao valor que estava na varivel ACUM o valor que estava na varivel VAR, e o
resultado guardou-se (arnazenou-se) na varivel ACUM, que assim passa a ter um novo valor.
Utilizando-se a vrivel acumulador, o algoritmo para clculo da mdia da prova de vestibular toma a
seguinte forma:

19

Algoritmos

CONSTANTES

Constantes

so

endereos

de

memria

do programa.
Exemplo:
PI = 3.1416

## No podem ter nomes de palavras reservadas (comandos

da linguagem);

Devem

possuir

como

caractere

uma

letra

ou

nmeros

ou

minsculas

Underscore ( _ );

Ter

como

demais

caracteres

letras,

Underscore;

## No possuir espaos em branco;

escolha

de

letras

maisculas

ou

indiferente.
20

Algoritmos

Exemplos:
NOME

TELEFONE

NOTA1

SALARIO

PI

UMNOMEMUITOCOMPRIDOEDIFICILDELER
UM_NOME_MUITO_COMPRIDO_E_FACIL_DE_LER

21

Algoritmos

## Todas as Variveis devem assumir um determinado tipo de

informao.
O tipo de dado pode ser:

PRIMITIVO

Exemplos:
A : INTEIRO

SUB - FAIXA

## TIPO NOTA=[1..10] DE INTEIRO

TIPO SEMANA = (Segunda-feira, Tera-feira, Quarta-feira,
ESCALAR

22

Algoritmos

INTEIRO

SOMENTE

NMEROS

PARA

INTEIROS.

REPRESENTAR

GERALMENTE
UMA

CONTAGEM

REAL

## ADMITE NMEROS REAIS (COM OU SEM CASAS DECIMAIS).

GERALMENTE UTILIZADO PARA REPRESENTAR UMA MEDIO.

## CARACTERE ADMITE CARACTERES ALFANUMRICOS. OS NMEROS QUANDO

DECLARADOS COMO CARACTERES TORNAM SE REPRESENTATIVOS
E PERDEM A ATRIBUIO DE VALOR.

LGICO

## COMANDOS DE I/O (INPUT/OUTPUT)

LER

Comando

de

que

permite

leitura

de

ESCREVER Comando de sada que exibe uma informao na
tela do monitor.
IMPRIMIR Comando de sada que envia uma informao
para a impressora.

23

Algoritmos

SINAL DE ATRIBUIO

## Uma Varivel nunca eternamente igual a um valor, seu

contedo pode ser alterado a qualquer momento. Portanto para
atribuir valores a variveis devemos usar o sinal de :=.
Exemplos:
A := 2;
B := 3;
C := A + B;

As

constantes

so

eternamente

iguais

## valores, portanto usamos o sinal de =.

Exemplos:
PI = 3.1416;
Empresa = Colgio de Informtica L.T.D.A.

24

Algoritmos

## CORPO GERAL DE UM PROGRAMA

CONST
VAR

<<tipo>>;

NICIO
{
<<comando1>>;
<<comandoN>>
}
FIM.

ESTRUTURAS SEQNCIAIS

Como

pode

ser

no

tpico

anterior,

todo

## programa possui uma estrutura seqencial determinada por um

NICIO e FIM.

25

Algoritmos

; PONTO E VRGULA ;

## O sinal de ponto e vrgula ; indica a existncia de um

prximo comando (passa para o prximo).
Na

estrutura

NICIO

no

comando

que

antecede

## estrutura FIM no se usa ;.

PRIMEIRO ALGORITMO

## Segue um Algoritmo que l o nome e as 4 notas bimestrais

de um aluno. Em seguida o Algoritmo calcula e escreve a mdia
obtida.
PROGRAMA MEDIA_FINAL;
VAR
NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: INTEIRO;
NOME : CARACTERE [35]
INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA := (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
ESCREVER (NOME, MEDIA)
FIM.
26

Algoritmos

SEGUNDO ALGORITMO

## Segue um Algoritmo que l o raio de uma circunferncia e

calcula sua rea.

PROGRAMA AREA_CIRCUNFERENCIA;
CONST PI = 3.1416;
VAR RAIO, AREA : REAL;
INICIO
LER (RAIO); {PROCESSAMENTO}
AREA := PI * SQR(RAIO); {ENTRADA}
FIM.

{LINHAS DE COMENTRIO}

Podemos

inserir

em

um

Algoritmo

comentrios

para

## aumentar a compreenso do mesmo, para isso basta que o texto

fique entre Chaves {}.
Exemplo:

27

Algoritmos

ASPAS SIMPLES

Quando

queremos

exibir

uma

mensagem

para

tela

ou

## impressora ela deve estar contida entre aspas simples, caso

contrrio,

ir

identificar

mensagem

como

Varivel Indefinida.
Exemplo:
ESCREVER (AREA OBTIDA

## =, AREA) {COMANDO DE SADA}

ESTRUTURAS DE DECISO

Executa

uma

seqncia

de

comandos

de

acordo

com

A estrutura de deciso pode ser Simples ou Composta,

28

Algoritmos

Simples:

Composta 1:

SE <<CONDIO>>

SE <<CONDIO>>

ENTO <<COMANDO1>>

ENTO <<COMANDO1>>
SENO <<COMANDO1>>

29

Algoritmos

Composta 2:
SE <<CONDIO>>
ENTO INICIO
<<COMANDO1>>;
<<COMANDON>>
FIM;
SENO INICIO
<<COMANDO1>>; <<COMANDON>>
FIM;

ALGORITMO TRS

## Segue um Algoritmo que l 2 nmeros e escreve o maior.

PROGRAMA ACHA_MAIOR;
VAR A, B : INTEIRO;
INICIO
LER (A, B);
SE A>B
ENTO ESCREVER (A)
SENO ESCREVER (B)

30

Algoritmos

FIM.

ALGORITMO QUATRO

## Segue um Algoritmo que l o nome e as 4 notas bimestrais

de um aluno. Em seguida o Algoritmo calcula e escreve a mdia
obtida pelo aluno escrevendo tambm se o aluno foi aprovado
Mdia para aprovao = 6

PROGRAMA MEDIA_FINAL;
VAR
NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: REAL;
NOME : CARACTERE [35]
INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA := (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
SE MEDIA>=6
ESCREVER (NOME, MEDIA)
FIM.
31

Algoritmos

NINHOS DE SE

Forma Geral:
SE <<CONDIO>>
ENTO <<COMANDO1>>
SENO SE <<CONDIO>>
ENTO <<COMANDO1>>
SENO <<COMANDO1>>

ALGORITMO CINCO

## Segue um Algoritmo que l 3 nmeros e escreve o maior.

PROGRAMA ACHA_MAIOR;
VAR A, B, C : INTEIRO;
INICIO
LER (A, B, C);
SE (A>B) E (A>C)
ENTO ESCREVER (A)
SENO SE (B>A) E (B>C)

32

Algoritmos

## ENTO ESCREVER (B)

SENO ESCREVER (C)
FIM.

ESTRUTURAS DE CONDIO

Forma Geral:
FACA CASO
CASO <<CONDIO1>>
<<COMANDO1>>;
CASO <<CONDION>>
<<COMANDO1>>;
OUTROS CASOS
<<COMANDO1>>;
FIM DE CASO

ALGORITMO SEIS

## Segue um Algoritmo que l 3 nmeros e escreve o maior.

PROGRAMA ACHA_MAIOR;

33

Algoritmos

VAR A, B, C : INTEIRO;
INICIO
LER (A, B, C);
FACA CASO
CASO (A>B) E (A>C)
ESCREVER (A);
CASO (B>A) E (B>C)
ESCREVER (B);
OUTROS CASOS
ESCREVER (C);
FIM DE CASO
FIM.

Quando

uma

seqncia

de

comandos

deve

ser

A

estrutura

de

repetio,

assim

como

de

deciso,

Na

repetio

algoritmo

apresenta

Forma Geral 1:
34

Algoritmos

## PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE

<<VALOR FINAL>> FAA
<<COMANDO1>>;
Forma Geral 2:
PARA <<VARIAVEL DE TIPO INTEIRO>>:=<<VALOR INICIAL>> ATE
<<VALOR FINAL>> FAA
NICIO
<<COMANDO1>>;
<<COMANDON>>
FIM;

repetio

inicial

at

por

valor

final

determina
como

sendo

passo
1.

do

valor

defina o passo.

ALGORITMO SETE

## Segue um algoritmo que escreve 10 vezes a frase VASCO

DA GAMA

35

Algoritmos

PROGRAMA REPETICAO;
VAR I:INTEIRO

VARIVEL IMPLEMENTADA DE 1 EM 1

INICIO
PARA I :=1 ATE 10 FACA
ESCREVER (VASCO DA GAMA)
FIM.

ALGORITMO OITO

## Segue um algoritmo que escreve os 100 primeiros nmeros

pares.
PROGRAMA PARES;
VAR I,PAR: INTEGER;
INICIO
PAR:=0;
PARA I:=1 ATE 100 FACA
INICIO
ESCREVER (PAR);
PAR := PAR+2
FIM
FIM.

36

Algoritmos

INICIAL

Tendo

como

vantagem

fato

de

no

ser

necessrio

Forma Geral 1:

VALIDAO INICIAL

## ENQUANTO <<CONDIO>> FACA

<<COMANDO1>>;

Forma Geral 2:
ENQUANTO <<CONDIO>> FACA
NICIO
<<COMANDO1>>;
<<COMANDON>>
FIM;

ALGORITMO NOVE

## Segue um algoritmo que calcule a soma dos salrios dos

funcionrios de uma empresa. O programa termina quando o
usurio digitar um salrio menor que 0.
PROGRAMA SOMA_SALARIOS;
37

Algoritmos

## VAR SOMA, SALARIO : REAL;

INICIO
SOMA:=O;
SALARIO:=1;
ENQUANTO SALARIO>=0
INICIO
LER (SALARIO);
SOMA:=SOMA+SALARIO
FIM;
ESCREVER (SOMA)
FIM.

## TODAS AS VARIVEIS QUE ACUMULAM VALORES DEVEM

RECEBER UM VALOR INICIAL.

FINAL

## Assim como a estrutura ENQUANTO usada para repetir N

vezes uma ou mais instrues.
Sua validao final fazendo com que a repetio seja

38

Algoritmos

Forma Geral;
REPITA
<<COMANDO1>>;
<<COMANDON>>
ATE <<CONDIO>>

ALGORITMO DEZ

## Segue um algoritmo que calcule a soma dos salrios dos

funcionrios de uma empresa. O programa termina quando o
usurio digitar um salrio menor que 0.

PROGRAMA SOMA_SALARIOS;
VAR
SOMA, SALARIO : REAL;
INICIO
SOMA:=O;
REPITA
LER (SALARIO);
SOMA:=SOMA+SALARIO
ATE SALARIO<0;

39

Algoritmos

ESCREVER (SOMA)
FIM.

ALGORITMO ONZE

## Segue um algoritmo que escreve os 100 primeiros nmeros

pares.
PROGRAMA PARES_2;
VAR I, PAR, CONTADOR : INTEIRO;
INICIO
PAR := 0;
REPITA
ESCREVER (PAR);
PAR := PAR+2;
FIM.

40

Algoritmos

Programas Equivalentes

## O algoritmo onze poderia ter sido criado com qualquer

estrutura de repetio. Portanto podemos ter algoritmos que
so

escritos

de

maneiras

diferentes,

mas,

funcionam

## realizando o mesmo objetivo.

41

Algoritmos

EXERCCIOS
1)O QUE UM ALGORITMO?
2)O QUE UM PROGRAMA?
3)CRIE UM ALGORITMO NO COMPUTACIONAL, QUE TROQUE UM
PNEU DE CARRO.
4)O QUE UMA LINGUAGEM DE PROGRAMAO?
5)LINEARIZE AS EXPRESSES ABAIXO:

5
7 * (8 5)
8

[ 25 * 3 (7 4)]

A
V
V
F
F

B
V
F
V
F

A ou B

A e B

no A

## 7) CRIE ALGORITMOS PARA OS SEGUINTES PROBLEMAS:

A) Dados trs valores X, Y, Z, verifiquem se eles podem
ser os comprimentos dos lados de um tringulo e se forem
escrever uma mensagem informando se se um tringulo
equiltero, issceles ou escaleno.
Observaes:
O comprimento de um lado do tringulo sempre menor do
que a soma dos outros dois.
B) Recebendo quatro mdias bimestrais, calcule a media do
ano (ponderada), sabendo que o 1 bimestre tem peso 1, o 2
bimestre tem peso 2, o 3 bimestre tem peso 3 e o 4 bimestre
tem peso 4. Sabendo que para aprovao o aluno precisa ter
uma mdia anual maior ou igual a 7, escreva uma mensagem