Você está na página 1de 28

LGICA DE PROGRAMAO

Criao de Algoritmos

Lgica de Programao

SUMRIO
INTRODUO..................................................................................................................................3 ALGORITMO....................................................................................................................................4 ALGORITMO NO COMPUTACIONAL...........................................................................................4 PROGRAMA.....................................................................................................................................4 LINGUAGENS DE PROGRAMAO..............................................................................................5 OPERADORES ARITMTICOS.......................................................................................................5 OPERADORES RELACIONAIS.......................................................................................................5 LINEARIZAO DE EXPRESSES................................................................................................6 MODULARIZAO DE EXPRESSES...........................................................................................6 OPERADORES ESPECIAIS (MOD e DIV).......................................................................................7 FUNES.........................................................................................................................................7 BIBLIOTECAS DE FUNES..........................................................................................................8 OPERADORES LGICOS...............................................................................................................8 TABELA VERDADE.........................................................................................................................9 EXPRESSES LGICAS.................................................................................................................9 VARIVEIS DE ENTRADA E SADA.............................................................................................10 CONSTANTES................................................................................................................................10 IDENTIFICADORES........................................................................................................................10 TIPOS DE DADOS..........................................................................................................................11 SINAL DE ATRIBUIO................................................................................................................12 SINAL DE IGUALDADE.................................................................................................................12 CORPO GERAL DE UM PROGRAMA...........................................................................................13 ESTRUTURAS SEQNCIAIS......................................................................................................13 ; PONTO E VRGULA ;...................................................................................................................13 {LINHAS DE COMENTRIO}.........................................................................................................15 ASPAS SIMPLES.........................................................................................................................15 ESTRUTURAS DE DECISO.........................................................................................................15 ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO INICIAL..........................20 ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO FINAL............................21 EXERCCIOS

Lgica de Programao

ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO FINAL

INTRODUO

O objetivo principal da Lgica de Programao demonstrar tcnicas para resoluo de problemas e consequentemente automatizao de tarefas.

Aprender

Lgica

essencial

para

formao

de

um

bom

programador, servindo como base para o aprender todas as linguagens de programao.

De

um

modo

geral pois

esses

conhecimentos no cotidiano,

sero

de

supra um

importncia

ajudaro

desenvolvendo

raciocnio rpido.

Lgica de Programao

ALGORITMO

Lgica de Programao

Um Algoritmo 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; 4. Teclar o nmero desejado;

Fim.

SEQUNCIAL

5. Se der o sinal de chamar 5.1 Conversar; 5.2 Desligar; 5.3 Retirar o carto; 6. Seno 6.1 Repetir;

DESVIO

PROGRAMA

Lgica de Programao

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 Clipper C Visual Basic Delphi e etc.

OPERADORES ARITMTICOS
+ * / Adio Subtrao Multiplicao Diviso

OPERADORES RELACIONAIS
> Maior que

Lgica de Programao

< >= <= =

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. importante tambm da ressalvar aritmtica o uso dos operadores para a

correspondentes computacional. Exemplo:

tradicional

2 + ( 5 3) + 1 = 3
Tradicional

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

Computacional

MODULARIZAO DE EXPRESSES
A modularizao a diviso da expresso em partes, proporcionando maior compreenso e definindo prioridades para resoluo da mesma.

Lgica de Programao

Como pode ser observado no exemplo anterior, em expresses computacionais modularizao. Na informtica podemos ter parnteses dentro de parnteses. Exemplos de prioridades: (2+2)/2=2 2+2/2=3 usamos somente parnteses ( ) para

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.

Lgica de Programao

DIV MOD 1 6 2 13

Exemplo:

13 DIV 2 = 6 13 MOD 2 = 1

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

x
Processamento

x
BIBLIOTECAS DE FUNES

Armazenam um conjunto de funes que podem ser usadas pelos programas. Valor Final Y FUNES PR-DEFINIDASY=3 ABS( ) SQRT( ) SQR( ) TRUNC( ) VALOR ABSOLUTO RAIZ QUADRADA ELEVA AO QUADRADO VALOR TRUNCADO
10

Lgica de Programao

ROUND( ) LOG( ) SIN( ) COS( ) TAN( )

VALOR ARREDONDADO LOGARITMO SENO COSENO TANGENTE

As funes acima so as mais comuns e importantes para nosso desenvolvimento suas funes lgico, entretanto, As funes cada podem linguagem ser possui prpias. aritmticas,

temporais, de texto e etc.

OPERADORES LGICOS
Atuam sobre expresses retornando sempre valores lgicos como Falso ou Verdadeiro.
E OU NO RETORNA VERDADEIRO SE AMBAS AS PARTES FOREM VERDADEIRAS. BASTA QUE UMA PARTE SEJA VERDADEIRA PARA RETORNAR VERDADEIRO. INVERTE O ESTADO, DE VERDADEIRO PASSA PARA FALSO E VICE-VERSA.

TABELA VERDADE
A V V F F B V F V F A E B V F F F A OU B V V V F NO (A) F F V V

EXPRESSES LGICAS
As expresses compostas de relaes sempre retornam um valor lgico. Exemplos: 2+5>4 Verdadeiro 3<>3 Falso

11

Lgica de Programao

De acordo com a necessidade, as expresses podem ser unidas pelos operadores lgicos. Exemplos:
V F E

2+5>4 E 3<>3 Falso

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


12

Lgica de Programao

OU

NO(3<>3) Verdadeiro F NO

VARIVEIS V 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 resultados. de Sada armazenam dados processados como

13

Lgica de Programao

B A 2 5 7 C=A+B

Exemplo:

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

CONSTANTES
Constantes so endereos de memria destinados a armazenar informaes programa. Exemplo:
14

fixas,

inalterveis

durante

execuo

do

Lgica de Programao

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 NOTA1 TELEFONE SALARIO IDADE_FILHO PI

UMNOMEMUITOCOMPRIDOEDIFICILDELER UM_NOME_MUITO_COMPRIDO_E_FACIL_DE_LER

TIPOS DE DADOS
INTEIRO REAL ADMITE SOMENTE NMEROS INTEIROS. GERALMENTE UTILIZADO PARA REPRESENTAR UMA CONTAGEM (QUANTIDADE). ADMITE NMEROS REAIS (COM OU SEM CASAS DECIMAIS). GERALMENTE UTILIZADO PARA REPRESENTAR UMA MEDIO. CARACTERE ADMITE CARACTERES ALFANUMRICOS. OS NMEROS QUANDO DECLARADOS COMO LGICO CARACTERES TORNAM SE REPRESENTATIVOS E PERDEM A ATRIBUIO DE VALOR. ADMITE SOMENTE VALORES LGICOS(VERDADEIRO/FALSO). 15

Lgica de Programao

COMANDOS DE I/O (INPUT/OUTPUT)- Entrada e Sada


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.

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

16

Lgica de Programao

CORPO GERAL DE UM PROGRAMA


PROGRAMA <<identificador>>; CONST <<identificador>> = <<dado>> VAR <<identificador>> : NICIO { COMANDOS DE ENTRADA,PROCESSAMENTO E SADA <<comando1>>; <<comandoN>> } FIM. <<tipo>>;

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

17

Lgica de Programao

ALGORITMOs
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 LER (RAIO); {PROCESSAMENTO} AREA := PI * SQR(RAIO); {ENTRADA} ESCREVER (AREA =, AREA) {SADA} FIM.

18

Lgica de Programao

{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 Indefinida. Exemplo: ESCREVER (AREA OBTIDA =, AREA) {COMANDO DE SADA} ir identificar a mensagem como Varivel

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: SE <<CONDIO>> ENTO <<COMANDO1>> Composta 1: SE <<CONDIO>> ENTO <<COMANDO1>> SENO <<COMANDO1>>

19

Lgica de Programao

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

20

Lgica de Programao

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 ENTO ESCREVER (APROVADO) SENO ESCREVER (REPROVADO) ESCREVER (NOME, MEDIA) FIM.

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) ENTO ESCREVER (B) SENO ESCREVER (C) FIM.

ESTRUTURAS DE CONDIO (CASE)


A estrutura de condio eqivale a um ninho de SES. Forma Geral: FACA CASO CASO <<CONDIO1>> <<COMANDO1>>; CASO <<CONDION>>
21

Lgica de Programao

<<COMANDO1>>; OUTROS CASOS <<COMANDO1>>; FIM DE CASO

ALGORITMO SEIS
Segue um Algoritmo que l 3 nmeros e escreve o maior. 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


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
22

Lgica de Programao

<<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 inicial 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 PROGRAMA REPETICAO; VAR I:INTEIRO INICIO PARA I :=1 ATE 10 FACA ESCREVER (VASCO DA GAMA) FIM.
VARIVEL INCRIMENTADA DE 1 EM 1

ALGORITMO OITO
Segue pares. PROGRAMA PARES; VAR I, PAR: INTEGER; INICIO PAR:=0;
23

um

algoritmo

que

escreve

os

100

primeiros

nmeros

Lgica de Programao

PARA I:=1 ATE 100 FACA INICIO ESCREVER (PAR); PAR:= PAR+2 FIM FIM.

ESTRUTURA DE REPETIO INDETERMINADA COM VALIDAO 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: ENQUANTO <<CONDIO>> FACA <<COMANDO1>>;
VALIDAO INICIAL

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; VAR SOMA, SALARIO : REAL;
24

Lgica de Programao

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 VALIDAO 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>>

25

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.

26

Lgica de Programao

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 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. Eqiltero Todos lados iguais Issceles Dois lados iguais Escaleno Todos os lados diferentes
27

Lgica de Programao

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 bimestre * 3 + 4 bimestre * 4) / (1+2+3+4)

28