Você está na página 1de 20

LGICA DE PROGRAMAO Prof.

Jos Geraldo
1.1 Introduo

A Lgica forma de organizar os pensamentos e demonstrar o raciocnio de maneira correta. A utilizao da lgica a melhor maneira de solucionar os problemas e atingir objetivos. Sempre que se pensar, falar e escrever deve-se colocar o pensamento em ordem. Um sistema lgico e um conjunto de regras que visam apresentar formalmente o raciocnio vlido. A Lgica de Programao serve para desenvolver o raciocnio necessrio para a criao de programas de computadores. Nela, lidamos com os conceitos de programao e com a traduo dos mesmos, o que facilita o foco na idia por trs, trabalhando como o pseudo-linguagens. 1.2 Seqncia Lgica um conjunto de passos executados at atingir um objetivo ou a soluo de um determinado problema. 1.3 Instrues So determinaes definidas para a realizao ou emprego de algo. Na Linguagem de programao o que indica a um computador uma ao que dever ser executada. 1.4 Exerccio
Mover um disco de cada vez para qualquer haste, sendo que nunca deve ser colocado um disco maior sobre um menor. O objetivo transferir os trs discos da haste A para haste C.

Site: http://pt.scribd.com/doc/40146034/9/Exercicios, pesquisado em 19/02/2012, as 23horas e 33min

1.5 Programas So processos de automao. Uma tarefa que deixa de ser desempenhada pelo homem e passa a ser executada pela mquina. Para que a automao de uma tarefa seja bem-sucedida necessrio que a mquina que passar a realiz-la seja capaz de desempenhar cada uma das etapas constituintes do processo a ser automatizado com eficincia, de modo a garantir o sucesso. Assim, necessrio que seja especificado com clareza e exatido o que deve ser realizado em cada uma das fases do processo a ser automatizado, bem como a seqncia em que estas fases devem ser realizadas. 2.1 Tipos de dados. O processo realizado por um computador baseado na manipulao das informaes contidas em sua memria. Estas informaes podem ser classificadas em dois tipos: Instruo, determinaes que comandam o funcionamento do computador e informar a maneira como devem ser verificado os dados. Dados, informaes a serem processadas pelo computador. Os dados so classificados como: Inteiros So nmeros positivos ou negativos. Exemplo: 42, 12, -16, 2012 entre outros. REAIS So numricos positivos, negativos e fracionrios. Exemplo: 21, 0, -56, 1.2, -45.987 entre outros. CARACTERES So seqncias contendo letras, nmeros e smbolos especiais. Obs: Um conjunto de Caracteres deve estar entre aspas ().

Exemplo: Programao, Rua Alfa, 52 Apto 1, Fone 574-9988, 04387030, , 7 entre outros. Lgicos So valores verdadeiros e falsos, sendo que s pode se um o outro. 2.1.1 Exerccios . Classifique os dados especificados abaixo de acordo com seu tipo, assinalando com I os dados do tipo inteiro, com R os reais, com L os literais, com B os lgicos (booleanos).. ( ) 0.21 ()1 ( ) 0. ( ) Jos ( ) 0,35 ( ) -0.001 ( ) +3257 ( ) +3257 ( ) +3257. ( ) -0.0 ( ) .F. ( ) abc ( ) Maria ( ) +36 2.2- Constantes um determinado valor fixo que no se modifica ao longo do tempo, durante a execuo de um programa. Conforme o seu tipo, a constante classificada como: 2.2.1 - Constante Numrica Uma constante numrica formada por uma seqncia de dgitos que: a) Pode estar ou no precedida de um sinal positivo (+) ou negativo (-); Exemplo: 26; +3272 ; -21 b) Pode estar ou no seguida de um ponto final (.) e outra seqncia de dgitos: Exemplo: 0.21, +3272; 2.16 c) Pode terminar ou no pela letra E seguida de outra seqncia de dgitos. Exemplo: 2,8E3, -315,21E

Obs:1- no pode haver espao em branco entre os caracteres usados para representar uma constate numrica. 2- a separao entre a parte inteira e a parte decimal cd um nmero feita com ponto decimal (.) e no com vrgula.

2.2.2- Constante Lgica As duas constantes lgicas so representadas pelas palavras true e false e so denominadas booleanas. 2.2.3 - Constante Literal. As constantes literais so formadas por uma seqncia de caracteres aceitos na implementao da linguagem, incluindo a letras latinas A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z Ou dgitos 0,1,2,3,4,5,6,7,8,9 Exemplo: 1-Geraldo 2-12345 3-* 2.2.4 Exerccios Identifique o tipo de cada constate: a)50 b) Casa c)False d)0,211 e)True 2.3 Variveis: nomenclatura, entrada, atribuio e sada de dados. Varivel, no contesto de programao uma regio previamente identificada. Cada varivel corresponde a uma posio de memria do computado, cujo contedo pode ser alterado ao longo do tempo ou durante a

execuo de um programa. Embora podendo assumir diferentes valores, ela s poder assumir uma valor de cada vez. Sempre que criamos uma varivel, temos o objetivo de armazenar algum tipo de valor especifico. Por exemplo, se estivermos desenvolvendo um sistema para calcular o valor de cada passagem de nibus que gastamos durante o ms, precisaremos de variveis para armazenar o valor de cada passagem, bem como para armazenar os resultados dos clculos no final do ms. Assim, o nome dado varivel deve deixar claro o objetivo da mesma, ou seja, devemos utilizar nomes sugestivos. Exemplo1: Varivel Nome Exemplo2: Varivel Idade Exemplo3: soma Entrada de Dados: So as informaes fornecidas ao Sistema atravs do usurio . Atribuio: o ato de atribuir um valor a uma determinada expresso Exemplo1: identificador:= expresso; Identificador: o nome da varivel qual ser atribudo o valor da expresso := o denominador operador de atribuio Expresso: uma expresso dos tipos j estudados Obs: A expresso pode ser definida como sendo uma: constante, varivel, expresso matemtica, funo matemtica, expresso booleana,... O resultado sempre dever respeitar o tipo da varivel definida Ex2: X 5000; Variveis A B Contedo da Varivel 42 Contedo da Varivel Jos Geraldo

Y x * 30; Sada de Dados: So as informaes visualizadas pelo usurio, aps o processamento realizado pelo Sistema.
2.4 Identificadores.

Um identificador o nome do local onde guardaremos dados. Porem, para sua criao devermos seguir as seguintes regras: Devem iniciar com caracteres alfabticos, nunca por nmero; Segundo caractere em diante pode ser numrico; Pode-se usar smbolo _ como parte do identificador; Devem ajudar a lembrar do que se trata a informao guardada O nome no pode conter espaos ou qualquer carter especial, exceto o underline _. O nome no pode ser igual s palavras reservadas da linguagem de programao em uso.

Exemplo: nome e sobrenome

2.5 Operadores Bsicos. Operadores aritmticos Adio subtrao Multiplicao Diviso Diviso inteira ou truncada Resto da diviso Operadores relacionais Maior Menor Maior ou Igual Menor ou Igual Igual Diferente Operadores lgicos ou booleanos E

+ * / div mod

> < >= <= == !=

And

Or Not

OU NOT

3.1 Funo E ou AND. A funo E ou AND tem como resultado verdadeiro se e somente se todas as proposies forem verdadeiras A V F F V B F V F V AEB F F F V

Exemplo: Se sbado fizer sol E acordar cedo ento vou praia

3.2 Funo OU ou OR. A funo OU ou OR tem como resultado verdadeiro se pelo uma das proposies for verdadeiras A V F F V B F V F V AEB V V F V

Exemplo: Se sbado fizer sol OU acordar cedo ento vou praia

3.3 Funo NO OU NOT. A funo NO ou NOT tem como resultado a negao da preposio. A V NO A F

F Exemplo: A = Vou praia sbado No A = No vou praia Sbado 3.4 Exerccios. Sejam:

X=0, y=1, z = 2, a= Joo ,


Assinale com V as expresses verdadeiras e com F as falsas Expresses 1) 2) 3) 4) 5) 6) 7) 8) X>Z E Y=Z-1 X<0 OU Z>X Y+3<Z E (X*3)<Y (x>y ou Y>z) E (z<x ou Y>z-2) NOT(Z>X ) NOT(X>Z ) E (Z+2)>0 NOT( A=MARIA) NOT(X>Z E (Z+2)>0) Respostas ( ( ( ( ( ( ( ( ) ) ) ) ) ) ) )

Gabarito: 1-F, 2-V, 3-F, 4-F, 5-F, 6-V, 7-V, 8-V 4.1 Fluxograma. uma descrio padronizada em smbolos, que expressa lgica de um problema. Na montagem e no processamento do fluxograma devemos observar algumas regras bsicas, tais como: 4.1.1- O fluxograma deve ser quebrado em vrios nveis. 4.1.2- Inicie o fluxograma de cima para baixo e da esquerda para a direita. 4.1.3- No pode haver cruzamento nas linhas do fluxograma.

4.2 Simbologias do fluxograma. Existem diversos smbolos em um fluxograma, no quadro abaixo alguns dos smbolos que iremos utilizar:
P r o g r a m a , p r o c e d im e n t o o u a o

.
IN IC IO T e r m in a l

F IM

C o n e c to r

T e s t e o u d e c is o

E n t r a d a M a n u a l ( t e c la d o )

C o n e c t o r d e P g in a

P a p e l Im p re sso

F it a M a g n t ic a

D is c o M a g n t ic o

Imagem/figura retirada dos seguintes sites: SITE:http://www.google.com.br/url? sa=t&rct=j&q=&esrc=s&source=web&cd=37&ved=0CFcQFjAGOB4&url=http%3A%2F %2Fwww.inf.ufrgs.br%2F~cabral%2FLogica.doc&ei=Pb5JT-

bjHYiEtgehp5nvAg&usg=AFQjCNHtjA9Ex9XcdCGljYQLGod8uEOMFA&sig2=AyQ_TUsPsy a7AYXsWf7_kg Pesquisa realizada em 19/02/2012, as 23horas e 58min Site http://ftp.unicamp.br/pub/apoio/treinamentos/logica/logica.pdf Pesquisa realizada em 20/02/2012, as 0horas e47min

Exemplo: clculo da mdia de um aluno sob a forma de um fluxograma.

Incio

N1, N2

Mdia (N1+N2)/2

Mdia >=7 Reprovado

Aprovado

Fim

Imagem/figura retirada dos seguintes sites: SITE:http://www.google.com.br/url? sa=t&rct=j&q=&esrc=s&source=web&cd=37&ved=0CFcQFjAGOB4&url=http%3A%2F %2Fwww.inf.ufrgs.br%2F~cabral%2FLogica.doc&ei=Pb5JTbjHYiEtgehp5nvAg&usg=AFQjCNHtjA9Ex9XcdCGljYQLGod8uEOMFA&sig2=AyQ_TUsPsy a7AYXsWf7_kg Pesquisa realizada em 19/02/2012, as 23horas e 58min Site http://ftp.unicamp.br/pub/apoio/treinamentos/logica/logica.pdf Pesquisa realizada em 20/02/2012, as 0horas e47min

4.3 Exerccios. 1) Faa um fluxograma para um domingo. 2) Faa um fluxograma para calcular a soma de dois valores obtidos a partir do teclado. 3) Escreva um algoritmo (fluxograma e pseudocdigo) para calcular a mdia entre dois nmeros quaisquer. 4) Faa um fluxograma que descreva a preparao de um bolo de chocolate. 5) Faa um fluxograma para somar 3 valores inteiros. 6) Faa um fluxograma para mostrar o resultado da diviso de dois nmeros. 7) Faa um fluxograma para calcular o novo salrio de um funcionrio. Sabe-se que os funcionrios que recebem atualmente salrio de at R$700,00 tero aumento de 30%; os demais tero aumento de 10%.

5.1 Conceitos de algoritmos. uma continuao de comportamentos determinado que, se forem executados em determinado perodo de tempo, chegar ao seu objetivo. O algoritmo se define por uma continuao lgica de passos que o computador executara fielmente para que se obtenha um resultado satisfatrio. .

5.2 Estrutura Seqencial. Nesta estrutura os comandos so executados numa seqncia prdefinida. Cada passo executado aps o trmino do passo anterior. Uma estrutura seqencial delimitada pelas palavras-reservadas Algoritmo e Fim algoritmo e contm basicamente comandos de atribuio, comandos de entrada e comandos de sada. Exemplo: Algoritmo Declare variveis d1 d2 d3 . . . dn c1 c2 c3 . . . Cn fim algoritmo

5.3 Estrutura Condicional. Nesta estrutura permitida a tomada de deciso ou seleo no algoritmo, mediante a tomada lgica de uma ou mais condio. Obs: Uma condio uma expresso lgica. Nela utilizamos as palavras chaves SE , ENTAO, SENO, FIM SE. A principal estrutura condicional pode apresentar-se de duas formas: 5.3.1 Estrutura Condicional Simples. Nesta estrutura uma condio dever ser avaliada. De acordo com o resultado desta avaliao, um procedimento ou um conjunto de procedimentos sero executados se ela for verdadeira, caso contrrio no ser executada Exemplo: Se condio ento Seqncia A de comandos Fim se A seqncia A de comando ser executada se a condio for verdadeira; caso contrrio, o comando as ser executado ser o que vier logo aps o fim se 5.3.2 Estrutura Condicional Composta. Nesta estrutura uma condio dever ser avaliada. Se condio for verdadeira, a seqncia A de comandos executada e, a seguir, a estrutura e abandonada, passando a execuo para o comando que vier logo aps o trmino do fim se e neste caso, a seqncia B de comandos no ser executada. Se condio for falsa, a seqncia A de comandos ser saltada e a seqncia B de comandos ser processada. Exemplo: Se condio ento Seqncia A de comandos Seno Seqncia B de comandos Fim se

5.4 Exerccios. 1) Faa um algoritmo que leia trs valores inteiros, determine e imprima o menor deles. 2) Faa um algoritmo para imprimir s soma de dois valores inteiros 3) Faa uma algoritmo para calcular as 4 notas bimestrais de um aluno. Fornecendo com resultado a situao do aluno, aprovado ou reprovado Obs: aprovado mdia >=6. 6.1 Estruturas de Repetio. A estrutura de repetio executa um bloco de comandos enquanto uma determinada condio for considerada verdadeira. Existem 3(trs) estruturas de repetio mais usadas, conforme listagem a seguir. 6.1.1 - Enquanto Exemplo: Enquanto condio faa Seqncia de comandos Fim Enquanto A seqncia de comandos ser repetida enquanto a condio for verdadeira. Quando isto no mais ocorrer, a repetio e interrompida, e a seqncia de comandos, que vier logo aps o fim enquanto, passa a ser executada 6.1.2- Para Exemplo: Para varivel de controle:= valor inicial at o valor final faa Seqncia de comandos Fim para Nesta estrutura a varivel de controle recebe o valor inicial, verifica se ele ultrapassa o valor final, se no ultrapassa, a seqncia de comandos e executada, a seguir, a varivel de controle recebe o valor sucessor, verifica novamente, enquanto no ultrapassar ela continua executando a seqncia de comandos

6.1.3 Repita Exemplo: Esta estrutura que efetua um teste lgico no final de um lao, verificando se permitido ou no executar novamente o conjunto de comandos no interior do mesmo. REPITA comando_composto AT QUE <condio> 6.2 Exerccios Obs: Exerccios: 1,2,3, Foram retirados do livro:Pascal Estruturado, 2 edio, editora guanaba 1) Faa um algoritmo para imprimir a soma dos nmeros pares compreendidos entre 100 e 200, inclusive. 2) Num frigorfico existem 90 bois. Cada boi trs preso em seu pescoo um carto contendo seu nmero de identificao e seu peso. Faa um algoritmo que escreva nmero e o peso do boi mais gordo e do boi mais magro. 3) Uma pesquisa sobre as caractersticas fsicas da populao de determinada regio coletou os seguintes dados, referentes a cada habitante, para serem analisados: - sexo (masculino, feminino) -cor dos olhos (azuis, verdes, castanhos, pretos) - idade em anos Para cada habitante, foi digitada uma linha com esses dados e a ltima linha que no corresponde a ningum, conter o valor de idade igual a -1. Faa um algoritmo que determine e escreva: O total de habitante do sexo, feminino cuja idade est entre 18 e 35 anos, inclusive e que tenham olhos verdes

4) Faa um algoritmo para calcular a soma dos salrios dos funcionrios de uma empresa. O algoritmo termina quando o usurio digitar um salrio menor que 0;

5) Faa um algoritmo para calcular os 100 primeiros nmeros pares.

6) Faa um algoritmo que escreva 10 vezes o nome da Escola.

7) Faa um algoritmo que leia o nome, sexo e idade de 20 pessoas e escreva o nome das pessoas que so do sexo masculino e que tenham mais de 21 anos.

7.1 Variveis compostas homogenias. 7.1.1 Vetor Esta varivel corresponde posio de memria, identificas por um nico nome, individualizada por ndices, e cujo contedo de um mesmo tipo. Exemplo: Suponha-se que as notas de 10 alunos estejam em uma varavesi composta, identificada por nota. 70 Nota 90 60 60 58 91 100 47 74 86

Para fazer referencia ao quinto elemento desta varivel pode se escrever Nota[5] O contedo armazenado 58. O ndice e a constante inteira 5. Os vetores so declarados anexando-se ao nome da varivel um colchete com o nmero de posies que o vetor poder conter: int idade[100]

Exemplo: para i de 0 ate 5 passo 1 faa escreva idade[i] fim -para

7.1.2 Matriz A estrutura tem como objetivo principal sua utilizao na criao de tabelas. Caracteriza-se por ser definida uma nica varivel vinculada dimensionada com um determinado tamanho. A dimenso de uma matriz constituda por constantes inteiras e positivas. Exemplo: Algoritmo exemplo_escrita_de_matriz Var nmeros : matriz[1..5,1..10] de inteiro i , j : inteiro 7.2 Exerccio No algoritmo abaixo, quais os valores a serem impressos? Para K=1 at 8 X(k) := k-1 Fim para K: = k-1 Enquanto k> 4 faa Aux := x(k-4) x(k-4) := x(k) x(k) := aux

imprima x(k) k :=k-1 fim enquanto

se x(k)<x(k+2) ento imprima x(k+1) seno imprima x(k-1) fim se

8.1 Conceitos da Linguagem de programao. Um programa de computador codificao de um algoritmo em uma determinada linguagem de programao, segundo suas regras, de forma a permitir que o computador possa entender a seqncia de aes. 8.2 Implementao de algoritmo em Pascal E a transformao do algoritmo em programas, ou seja, na linguagem da maquina Exemplo: Faa um algoritmo para calcular os 100 primeiros nmeros pares entre 100 e 200. Em algoritmo Algoritmo; Declare soma, para: inteiro; soma:=0; par:=98; par:=par +2 Enquanto par <= 200 faa Soma:=soma + par; Par:= par +2;

Fim enquanto Imprima ( soma) Fim algoritmo Em pascal Program SomaPares; Var soma, para: integer; begin soma:=0; par:=98; par:=par +2 while par <= 200 do Begin Soma:=soma + par; Par:= par +2; End; Write ( soma) End.

BIBLIOGRAFIA FORBELLONE, Andr. "Lgica de Programao - A Construo de Algoritmos e Estruturas de Dados". So Paulo: Ed. Makron Books, 1993. MECLER, Ian & MAIA, Luiz Paulo. Programao e Lgica com Turbo Pascal. Rio de Janeiro: Ed. Campus, 1989. FARRER, Harry. Programao Estruturada de Computadores. Rio de Janeiro: Ed. LTC, 1989.

Sites pesquisados:
http://sitejovem.com.br/wp-content/uploads/2011/07/apostila-logica-deprogramacao-verrissimo-amaral-escola-joao-xxiii.pdf pesquisado em 19/02/2012, as 213horas e 33min

http://www.slideshare.net/mvbahamut/cap02-6898707 pesquisado em 19/02/2012, as 22horas

http://homepage.ufp.pt/jtorres/ensino/prog/exercicios_programacao_0405.pdf pesquisado em 19/02/2012, as 22horas e 20min

http://www.ferrari.pro.br/home/documents/FFerrari-CCechinel-Introducao-aalgoritmos.pdf pesquisado em 19/02/2012, as 22horas e 50min