You are on page 1of 21

Apostila de Lgica de Programao (Autor Renato da Costa)

SUMRIO

INTRODUO.......................................................................................... ERRO! INDICADOR NO DEFINIDO.


ALGORITMO ...................................................................................................................................................................3
ALGORITMO NO COMPUTACIONAL ..............................................................................................................3
PROGRAMA .....................................................................................................................................................................3
LINGUAGENS DE PROGRAMAO.....................................................................................................................3
TCNICAS ATUAIS DE PROGRAMAO ..........................................................................................................4
ALGORITMOS EM PORTUGOL ..........................................................................................................................4
OPERADORES ARITMTICOS ................................................................................................................................4
OPERADORES RELACIONAIS.................................................................................................................................4
LINEARIZAO DE EXPRESSES ........................................................................................................................4
MODULARIZAO DE EXPRESSES .................................................................................................................5
OPERADORES ESPECIAIS (MOD E DIV) ............................................................................................................5
FUNES ...........................................................................................................................................................................6
BIBLIOTECAS DE FUNES ....................................................................................................................................6
FUNES PR-DEFINIDAS .......................................................................................................................................6
OPERADORES LGICOS ...........................................................................................................................................7
TABELA VERDADE.......................................................................................................................................................7
EXPRESSES LGICAS .............................................................................................................................................7
VARIVEIS .......................................................................................................................................................................8
VARIVEIS DE ENTRADA E SADA......................................................................................................................8
CONSTANTES ..................................................................................................................................................................9
IDENTIFICADORES ......................................................................................................................................................9
TIPOS DE DADOS...........................................................................................................................................................9
TIPOS PRIMITIVOS DE DADOS ............................................................................................................................10
COMANDOS DE I/O (INPUT/OUTPUT)...............................................................................................................10
SINAL DE ATRIBUIO...........................................................................................................................................11

Apostila de Lgica de Programao

SINAL DE IGUALDADE.............................................................................................................................................11
CORPO GERAL DE UM PROGRAMA .................................................................................................................11
ESTRUTURAS SEQNCIAIS ................................................................................................................................12
; PONTO E VRGULA ;...............................................................................................................................................12
PRIMEIRO ALGORITMO .........................................................................................................................................12
SEGUNDO ALGORITMO ..........................................................................................................................................12
{LINHAS DE COMENTRIO} .................................................................................................................................13
ASPAS SIMPLES ........................................................................................................................................................13
ESTRUTURAS DE DECISO ...................................................................................................................................13
ALGORITMO TRS .....................................................................................................................................................14
ALGORITMO QUATRO.............................................................................................................................................14
NINHOS DE SE...............................................................................................................................................................15
ALGORITMO CINCO .................................................................................................................................................15
ESTRUTURAS DE CONDIO ...............................................................................................................................16
ALGORITMO SEIS .......................................................................................................................................................16
ESTRUTURA DE REPETIO DETERMINADA.............................................................................................16
ALGORITMO SETE.....................................................................................................................................................17
ALGORITMO OITO .....................................................................................................................................................18
ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO INICIAL ............................18
ALGORITMO NOVE ...................................................................................................................................................19
ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO FINAL................................19
ALGORITMO DEZ .......................................................................................................................................................20
ALGORITMO ONZE....................................................................................................................................................20
PROGRAMAS EQUIVALENTES ............................................................................................................................20
EXERCCIOS ..................................................................................................................................................................21

Apostila de Lgica de Programao

ALGORITMO
Um Algorit mo uma seqncia de instrues ordenadas de forma lgica para a resoluo de uma
determinada tarefa ou problema.
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.
LINGUAGENS DE PROGRAMAO
So Softwares que permitem o desenvolvimento de programas. Possuem um poder de criao ilimitado, desde jogos, editores de texto, sistemas empresariais at sistemas operacionais.
Existem vrias linguagens de programao, cada uma com suas caractersticas prprias.

Exemplos: Pascal, C, Visual Basic, Delphi e etc.

Apostila de Lgica de Programao

TCNICAS ATUAIS DE PROGRAMAO


?? Programao Seqencial
?? Programao Estruturada

?? 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 ou Portugus Estruturado.
Portugol derivado da aglutinao de Portugus + Algol. Algol o nome de uma linguagem de
programao estruturada usada no final da dcada de 50.
OPERADORES ARITMTICOS

Adio

Subtrao

Multiplicao

Diviso
OPERADORES RELACIONAIS

>

Maior que

<

Menor que

>=

Maior ou Igual

<=

Menor ou Igual

Igual

<>

Diferente
LINEARIZAO DE EXPRESSES

Para a construo de Algoritmos todas as expresses aritmticas devem ser linearizadas, ou seja, colocadas em linhas.

Apostila de Lgica de Programao

importante tambm ressalvar o uso dos operadores correspondentes da aritmtica tradicional para
a computacional.

Exemplo:

?2
?
?
?
5
?
3
?
??3
?? ? 1 ?

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

Tradicional

Computacional

MODULARIZAO DE EXPRESSES
A modularizao a diviso da expresso em partes, proporcionando maior compreenso e definindo prioridades para resoluo da mesma.
Como pode ser observado no exemplo anterior, em expresses computacionais usamos somente parnteses ( ) para modularizao.
Na informtica podemos ter parnteses dentro de parnteses.
Exemplos de prioridades:
(2+2)/2=2
2+2/2=3
OPERADORES ESPECIAIS (MOD e DIV)

MOD ? Retorna o resto da diviso entre 2 nmeros inteiros.


DIV ? Retorna o valor inteiro que resulta da diviso entre 2 nmeros inteiros.
Exemplo:
13 2
1
MOD

13 DIV 2 = 6

6
DIV

13 MOD 2 = 1

Apostila de Lgica de Programao

FUNES
Uma funo um instrumento (Subalgoritmo) que tem como objetivo retornar um valor ou uma informao.
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 criadas pelo programador de acordo com o
seu interesse.
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
ABS( )

VALOR ABSOLUTO

SQRT( )

RAIZ QUADRADA

SQR( )

ELEVA AO QUADRADO

TRUNC( )

VALOR TRUNCADO

ROUND( )

VALOR ARREDONDADO

Apostila de Lgica de Programao

LOG( )

LOGARITMO

SIN( )

SENO

COS( )

COSENO

TAN( )

TANGENTE

As funes acima so as mais comuns e importantes para nosso desenvolvimento lgico, entretanto,
cada linguagem possui suas funes prpias. As funes podem ser aritmticas, temporais, de texto e etc.
OPERADORES LGICOS
Atuam sobre expresses retornando sempre valores lgicos como Falso ou Verdadeiro.
E

RETORNA VERDADEIRO SE AMBAS AS PARTES FOREM VERDADEIRAS.

OU

BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNAR VERDADEIRO.

NO

INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE-VERSA.

TABELA VERDADE
A

AEB

A OU B

NO (A)

EXPRESSES LGICAS
As expresses compostas de relaes sempre retornam um valor lgico.
Exemplos:

2+5>4 ? Verdadeiro

3<>3 ? Falso

De acordo com a necessidade, as expresses podem ser unidas pelos operadores lgicos.

Apostila de Lgica de Programao

Exemplos:

2+5>4 E 3<>3 ? Falso


V

F
E

F
2+5>4 OU 3<>3 ? Verdadeiro
V

F
OU

V
NO(3<>3)? Verdadeiro
F

NO

V
VARIVEIS
Variveis so endereos de memria destinados a armazenar informaes temporariamente.
* Todo Algoritmo ou programa deve possuir varivel!
VARIVEIS DE ENTRADA E SADA
Variveis de Entrada armazenam informaes fornecidas por um meio externo, normalmente usurios ou discos.
Variveis de Sada armazenam dados processados como resultados.
Exemplo:

C=A+B

7
8

Apostila de Lgica de Programao

De acordo com a figura anterior A e B so Variveis de Entrada e C uma Varivel de Sada.


CONSTANTES
Constantes so endereos de memria destinados a armazenar informaes fixas, inalterveis durante a execuo do programa.
Exemplo:
PI = 3.1416
IDENTIFICADORES
So os nomes dados a variveis, constantes e programas.
Regras Para construo de Identificadores:
?? No podem ter nomes de palavras reservadas (comandos da linguagem);
?? Devem possuir como 1 caractere uma letra ou Underscore ( _ );
?? Ter como demais caracteres letras, nmeros ou Underscore;
?? Ter no mximo 127 caracteres;
?? No possuir espaos em branco;
?? A escolha de letras maisculas ou minsculas indiferente.
Exemplos:

NOME

TELEFONE

IDADE_FILHO

NOTA1

SALARIO

PI

UMNOMEMUITOCOMPRIDOEDIFICILDELER
UM_NOME_MUITO_COMPRIDO_E_FACIL_DE_LER

TIPOS DE DADOS
Todas as Variveis devem assumir um determinado tipo de informao.
O tipo de dado pode ser:

Apostila de Lgica de Programao

?? Primitivo ? Pr -definido pela linguagem;


?? Sub-Faixa ? uma parte de um tipo j existente;
?? Escalar ? Definidos pelo programador.

Exemplos:

PRIMITIVO

A : INTEIRO

SUB - FAIXA

TIPO NOTA=[1..10] DE INTEIRO


TIPO SEMANA = (Segunda- feira, Tera-feira, Quarta-feira, Quinta-feira, Sextafeira, Sbado, Domingo)
ESCALAR

TIPOS PRIMITIVOS DE DADOS

INTEIRO

ADMITE SOMENTE NMEROS INTEIROS. GERALMENTE UTILIZADO PARA


REPRESENTAR UMA CONTAGEM (QUANTIDADE).

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

ADMITE SOMENTE VALORES LGICOS(VERDADEIRO/FALSO).

COMANDOS DE I/O (INPUT/OUTPUT)


LER ? Comando de entrada que permite a leitura de Variveis de Entrada.
ESCREVER ? Comando de sada que exibe uma informao na tela do monitor.
IMPRIMIR ? Comando de sada que envia uma informao para a impressora.

10

Apostila de Lgica de Programao

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;
SINAL DE IGUALDADE
As constantes so eternamente iguais a determinados valores, portanto usamos o sinal de =.
Exemplos:
PI = 3.1416;
Empresa = Colgio de Informtica L.T.D.A.
V = Verdadeiro
CORPO GERAL DE UM PROGRAMA
PROGRAMA <<identificador>>;
CONST
<<identificador>> = <<dado>>
VAR
<<identificador>> : <<tipo>>;
NICIO
{
COMANDOS DE ENTRADA,PROCESSAMENTO E SADA

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

11

Apostila de Lgica de Programao

ESTRUTURAS SEQNCIAIS
Como pode ser analisado no tpico anterior, todo programa possui uma estrutura seqencial determinada por um NICIO e FIM.
; PONTO E VRGULA ;
O sinal de ponto e vrgula ; indica a existncia de um prximo comando (passa para o prximo).
Na estrutura NICIO e no comando que antecede a 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.
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
12

Apostila de Lgica de Programao

LER (RAIO); {PROCESSAMENTO}


AREA := PI * SQR(RAIO); {ENTRADA}
ESCREVER (AREA =, AREA) {SADA}
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:
LER (RAIO); {ENTRADA}
ASPAS SIMPLES
Quando queremos exibir uma mensagem para a tela ou impressora ela deve estar contida entre aspas
simples, caso contrrio, o computador ir identificar a mensagem como Varivel Indefinida.
Exemplo:
ESCREVER (AREA OBTIDA =, AREA) {COMANDO DE SADA}
AREA OBTIDA = X.XX {RESULTADO GERADO NA TELA}
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:

Composta 1:

SE <<CONDIO>>

SE <<CONDIO>>

ENTO <<COMANDO1>>

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

Composta 2:
13

Apostila de Lgica de Programao

SE <<CONDIO>>
ENTO INICIO
<<COMANDO1>>;
<<COMANDON>>
FIM;
SENO INICIO
<<COMANDO1>>; <<COMANDON>>
FIM;
ALGORITMO TRS
Segue um Algoritmo que l 2 nmeros e escreve o ma ior.
PROGRAMA ACHA_MAIOR;
VAR A, B : INTEIRO;
INICIO
LER (A, B);
SE A>B
ENTO ESCREVER (A)
SENO ESCREVER (B)
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 ou reprovado.
Mdia para aprovao = 6
PROGRAMA MEDIA_FINAL;
VAR
NOTA1, NOTA2, NOTA3, NOTA4, MEDIA: REAL;
NOME : CARACTERE [35]

14

Apostila de Lgica de Programao

INICIO
LER (NOME);
LER (NOTA1, NOTA2, NOTA3, NOTA4);
MEDIA := (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4;
SE MEDIA>=6
ENTO ESCREVER (APROVADO)
SENO ES CREVER (REPROVADO)
ESCREVER (NOME, MEDIA)
FIM.
NINHOS DE SE
Usados para tomadas de decises para mais de 2 opes.
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 ma ior.
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)

15

Apostila de Lgica de Programao

ENTO ESCREVER (B)


SENO ESCREVER (C)
FIM.
ESTRUTURAS DE CONDIO
A estrutura de condio eqivale a um ninho de SES.
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 ma ior.
PROGRAMA ACHA_MAIOR;
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.
ESTRUTURA DE REPETIO DETERMINADA
16

Apostila de Lgica de Programao

Quando uma seqncia de comandos deve ser executada repetidas vezes, tem-se uma estrutura de
repetio.
A estrutura de repetio, assim como a de deciso, envolve sempre a avaliao de uma condio.
Na repetio determinada o algoritmo apresenta previamente a quantidade de repeties.
Forma Geral 1:
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;
A repetio por padro determina o passo do valor inic ial at o valor final como sendo 1. Determinadas linguagens possuem passo 1 ou permitem que o programador defina o passo.
ALGORITMO SETE
Segue um algoritmo que escreve 10 vezes a frase VASCO DA GAMA

17

Apostila de Lgica de Programao

PROGRAMA REPETICAO;
VAR I:INTEIRO
VARIVEL IMPLEM ENTADA 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.
ESTRUTURA DE REPETIO INDETERMINADA COM VALID AO INICIAL
usada para repetir N vezes uma ou mais instrues. Tendo como vantagem o fato de no ser necessrio o conhecimento prvio do nmero de repeties.
Forma Geral 1:

VALIDAO INICIAL

ENQUANTO <<CONDIO>> FACA


<<COMANDO1>>;

Forma Geral 2:
ENQUANTO <<CONDIO>> FACA
NICIO

18

Apostila de Lgica de Programao

<<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;
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.

ESTRUTURA DE REPETIO INDETERMINADA COM VALID AO FINAL


Assim como a estrutura ENQUANTO usada para repetir N vezes uma ou mais instrues.
Sua validao final fazendo com que a repetio seja executada pelo menos uma vez.
Forma Geral;
REPITA
<<COMANDO1>>;
<<COMANDON>>
ATE <<CONDIO>>

19

Apostila de Lgica de Programao

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;
ESCREVER (SOMA)
FIM.

ALGORITMO ONZE
Segue um algoritmo que escreve os 100 primeiros nmeros pares.
PROGRAMA PARES_2;
VAR I, PAR, CONTADOR : INTEIRO;
INICIO
CONTADOR := 0;
PAR := 0;
REPITA
ESCREVER (PAR);
PAR := PAR+2;
CONTADOR := CONTADOR+1;
ATE CONTADOR=100
FIM.
Programas Equivalentes
20

Apostila de Lgica de Programao

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.
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)]

6)Complete a tabela abaixo (A e B so variveis lgicas; V= verdadeiro e F= falso)


A
V
V
F
F

B
V
F
V
F

A ou B

AeB

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.
Eqiltero? Todos lados iguais
Issceles? Dois lados iguais
Escaleno? Todos os lados diferentes
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 indicando se
o aluno foi aprovado ou reprovado.
Observao:
Mdia anual = (1 bimestre * 1+ 2 bimestre * 2 + 3 b imestre * 3 + 4 bimestre * 4) / (1+2+3+4)

21

You might also like