You are on page 1of 61

Lógica de programação

Lauro de Freitas 2011 Copyright ©2011 por SENAI DR BA. Todos os direitos reservados Departamento Regional da Bahia – DR/ SENAI 1

Lógica de programação
Elaboração: Ricel Leite Revisão Técnica: Ricel Leite Revisão Pedagógica: Gumercindo Pereira Filho Padronização: ASDEN-SEQ / Assessoria de Qualificação Normalização: Núcleo de Informação Tecnológica

Catalogação na fonte (Núcleo de Informação Tecnológica – NIT ) ______________________________________________________ SENAI- DR BA. Lógica de Programação. Salvador, 2011. 57p. il. (Rev.01).

1. Magnetismo 2. Força

I. Título

CDD 530 _______________________________________________________

Serviço Nacional de Aprendizagem Industrial - SENAI Endereço: Rua Edístio Ponde , 342 - Stiep Salvador – Bahia - Brasil CEP: 41.770-395 Tel.: (71) 343-1300 Fax. (7X) 343-1399 Home Page: www.fieb.org.br

2

Lógica de programação
1. Apresentação
Com o objetivo de apoiar e proporcionar a melhoria contínua do padrão de qualidade e produtividade da indústria, o SENAI BA desenvolve programas de educação profissional e superior, além de prestar serviços técnicos e tecnológicos. Essas atividades, com conteúdos tecnológicos, são

direcionadas para indústrias nos diversos segmentos, através de programas de educação profissional, consultorias e informação tecnológica, para profissionais da área industrial ou para pessoas que desejam profissionalizarse visando inserir-se no mercado de trabalho.

Este material didático foi preparado para funcionar como instrumento de consulta. Possui informações que são aplicáveis de forma prática no dia-a-dia do profissional, e apresenta uma linguagem simples e de fácil assimilação. É um meio que possibilita, de forma eficiente, o aperfeiçoamento do aluno através do estudo do conteúdo apresentado no módulo. 3

.......34 11........ Apresentação ...... Modo de desenvolver algoritmos.................................35 12........................................................37 4 ................. Programas .... Linearização de expressões.........................................................30 11.................2 Operações lógicas sobre proposições:....................1 Negação ( ~ )...........................................2.........................................14 7.........................................................................................................................................................................................3 Fases.....1 Constantes ...................................................................................31 11...........................................................................Lógica de programação SUMÁRIO Pág.........2...............................2 Como construir um algoritmo... 1. 3........... Algoritmo................................................................................7 3.........2 Instruções ..4 Exemplo de algoritmo .....24 10...3 Introdução à Lógica de Programação.............1 Operadores Aritméticos .......................1 Tabela Verdade ........................................................1 Tipos de Variáveis ..................10 6..........5 Teste de Mesa....................................................................1 Seqüência lógica ...................5 Bi condicional ( ) .................7 4..................3 Disjunção........... os Tipos de Dados e as Variáveis................................................4 Condicional ( ) ............................................................................12 7..............................................10 6............................. Diagrama de Blocos ....................31 11........................2 Declaração de Variáveis.........2...................................21 9.19 8.2...14 8............................................... Proposições e Conectivos ................32 11.....................26 11.........................................33 11................2 Variáveis........11 6..............21 9......11 6.......................................7 5.................2...................... Constantes..............22 9.............................................................................14 7................................................................6 Lógica .........2 Simbologia.....................................................2 Operadores Relacionais .............30 11..........................8 6.........................................................................2 Conjunção ( ^) ...................................................................................................................... 2..........................................................1 Pseudocódigo.............7 3...............................................2............... Operações Lógicas ...........................................................................................................2......18 8..............................................................................................18 8......10 6.............19 9.......................1 Diagrama de blocos........................................................18 8........................................................................... Operadores...................................................................................................................................................3 Operadores Lógicos ............................................

..............56 15.......3 Impressão de Cabeçalho e Estética de Página ...........................................48 14.......1 Conceitos Básicos ......................................51 14................ Estrutura de decisão e repetição......... enquanto x...........................................................................................3 Funções...........42 13..................2 Estrutura de Repetição ............................................46 13..................1 Modularização de expressões ..........................................................50 14.................3 Fechamento de Arquivos.......... processar.....................................1...........47 13.......................4 Leitura de Arquivos................. até que x.........39 13...................56 15...38 12..2 Até que x.......................................2.................46 13......................................................1..............................................53 15..................1 Bibliotecas de funções........................................2 Abertura de Arquivos .......................5 Movimentação de registros.......................2......................................................................................................................................................1 Características do Formulário.....................53 14...........................................................................................52 14............... Referências.................2.................................................................40 13........................................................ processar.......................................................................51 14..................38 12........56 15.......................................... Relatórios.........................7 Macro Fluxo....................................2 Controle de linhas e salto de páginas..............................................4 Processar....................Lógica de programação 12.2 Operadores especiais (MOD e DIV) ...................... Arquivos de dados ....................1 Estrutura de Decisão ..................40 13...............3 Processar.........1 Enquanto x....61 5 ..........3 Caso selecione ........................................................2............................57 16...............6 Gravação de Arquivos ...47 13...50 14..................................................................37 12..2 Se então senão ....................................39 13...............................................1 Se então ..........................................3......1................................40 13....51 14.........................................

Com o passar dos tempos. o que caracterizava essa linguagem como interpretada. Este processo demandava um tempo que nas linguagens interpretadas não era necessário. A linguagem C em algumas literaturas também é considera linguagem de alto nível. como exemplo. Isso obrigava os fabricantes de microprocessadores a inserir um interpretador nestes dispositivos. porém. pois na linguagem interpretada. cada programa era executado na hora. tornando as linguagens de baixo nível “incapazes” de realizar algumas ações. Com as linguagens compiladas era diferente. iriam fazer nestes programas. Era necessário um compilador que convertia a linguagem de alto nível. No entanto. Basic e Fortran. (compilava). No entanto. os microprocessadores possuíam uma linguagem encapsulada ou residente. surgiu então a linguagem Assembly. em linguagem compreensível à máquina. aumentou mais a produtividade e melhorou a compreensão por parte dos programadores. bem como a linguagem de alto nível. ela é uma linguagem de médio nível. Era necessário entender o que cada conjunto de números binário ou hexadecimal. o Basic.Lógica de programação 2. Escrever em linguagem de máquina. além de um pouco de arte também. os microprocessadores evoluíram e necessitaram de recursos mais avançados. era necessária mais agilidade com a programação. Nesta linguagem alguns conjuntos de código em binário ou hexadecimal eram representados por comandos. era um trabalho árduo e exigia muita atenção concentração. Estas linguagens possuíam uma maior distância das linguagens de máquina. Antes. 6 . Isso poupava tempo no desenvolvimento. o desenvolvimento de softwares que interagissem com a máquina não era uma das atividades mais fáceis. em binário ou hexadecimal. Foram criadas então as conhecidas linguagens de alto nível. que eram conhecidos com instrução ou mnemônico. Como exemplos de linguagens de alto nível estão: Pascal. Introdução à Lógica de Programação Nos primórdios da história da computação. Os códigos de baixo nível são responsáveis em traduzir os comandos em alto nível para a linguagem de máquina. pois se utiliza de linguagem de baixo nível.

3.Lógica de programação 3. 3.1 Seqüência lógica A seqüência lógica pode ser definida como uma lista de passos que são obedecidos para o cumprimento de uma tarefa. Tudo e qualquer atividade pode ser exemplificada através de algoritmos. deve ser colocada em uma seqüência lógica. Lógica Programação lógica é um paradigma de programação que faz uso da lógica matemática. tendo um tempo de execução finito e que segue passos para a execução de uma determinada ação ou tarefa. A lógica de programação garante aos desenvolvedores criar uma sequência lógica com eficácia e eficiência. a instrução tomar banho.2 Instruções Instrução é um conjunto de regras ou normas. como: retirar a roupa. a ação de escovar os dentes: 7 . precisaremos executar outras instruções integrantes. lembrando que alguns algoritmos podem ser extremamente complexos. Alguns autores descrevem instrução com a menor parte da execução de uma operação. 4. composta por diversas instruções (etapas) para a realização de uma operação em um processador. Podemos citar como algoritmo. Para realizar esta instrução. Podemos encontrar em muitos livros o exemplo de algoritmo com sendo uma “receita de bolo”. enxugar-se e assim por diante. Algoritmo Podemos descrever algoritmo como uma sequência definida. Uma instrução para ser executada com sucesso. enxaguar-se. Podemos citar. passar o sabonete. como exemplo. entrar no box. molhar-se.

Programas Os programas são algoritmos escritos em alguma linguagem de programação. Cada linguagem possui comandos específicos para a execução de instruções. 8 .Lógica de programação • • • • • • • • Pegar a escova Colocar o creme dental na escova Umedecer a escova Escovar todos os dentes Rejeitar o creme dental após a escovação Lavar a escova Enxaguar a boca Guardar a escova 5. C++.NET e outras tantas linguagens). VB. . Pascal. C. seja de baixo nível (Aseembly) ou alto nível (COBOL.

Lógica de programação Exercícios 1) Construa um algoritmo para realizar a soma de três números e dividir o resultado por cada um desses números: 2) Monte uma sequência lógica para ligar o computador: 3) Monte uma sequência lógica para encher uma garrafa com água: 4) Construa um algoritmo para assistir um filme em DVD: 9 .

escreva(SOMA). uma delas e usarmos objetividade e simplicidade para construí-los. Inicio Escreva("Digite um primeiro numero"). Hoje existe uma pseudolinguagem muito utilizada que é o Português Estruturado ou Portugol. Soma ← A + B. por frase Exemplo de algoritmo: Algoritmo "SomaDeDoisValores". Leia(A). Vejamos abaixo algumas técnicas à serem utilizadas: • • • • Utilizar frases simplificadas Evitar redundância Desenvolver sempre os algoritmos para que possam ser lidos e compreendidos por qualquer pessoa Utilizar um verbo somente.B: inteiro. fim.1 Pseudocódigo O Pseudocódigo é uma linguagem utilizada para construção dos algoritmos.1 Como construir um algoritmo Existem algumas regras para escrevermos um algoritmo. Não devemos esquecer que o peseudocódigo deve seguir uma seqüência lógica correta para que assim possa ser convertida em uma linguagem de programação e ter bom funcionamento. variável: SOMA. leia(B).A. 6. 10 . Modo de desenvolver algoritmos 6. Alguns aplicativos convertem essa linguagem para algumas linguagens de programação como: Pascal e C.Lógica de programação 6. escreva("Digite o segundo numero").1. Esta linguagem independe de uma linguagem específica de programação.

No entanto. Para isso. Exemplo: ENTRADA PROCESSAMENTO SAÍDA PROCESSAMENTO SAÍDA Roupa suja Lavar roupa suja Roupa lima 6. temos: ENTRADA: determinam os dados que serão utilizados no processo. PROCESSAMENTO: é a execução dos passos com base nos dados de entrada. calcular a idade de João. faremos os seguintes questionamentos: a) Quais serão os dados da ENTRADA? Resposta: os dados da entrada serão: o ano atual e ano de nascimento.Lógica de programação 6. 11 .3 Exemplo de algoritmo Temos como exemplo. Para realização deste cálculo. SAÍDA: é o resultado do processamento dos dados. c) Quais serão os dados as SAÍDA? Resposta: a saída será a idade atual do João. utilizaremos o ano do seu nascimento e ano atual.2 Fases Vimos anteriormente que o algoritmo deve seguir uma seqüência lógica bem definida. b) Qual procedimento será realizado no PROCESSAMENTO? Resposta: deveremos subtrair o ano atual do ano de nascimento para obtenção da idade atual. existem três fases fundamentais para criação deste algoritmo e sua seqüência lógica que é: ENTRADA Descrevendo esses passos.

que é conhecido como Teste de Mesa. onde será analisado todo o processamento do algoritmo.Lógica de programação Montagem do Algoritmo: Pegar o ano atual Pegar o ano de nascimento Subtrair o ano atual do ano de nascimento Exibir a idade atual 6. desde a entrada dos dados até a saída. Vamos ao exemplo anterior: Ano atual Ano de nascimento Montamos a tabela com os dados abaixo: Ano atual Ano de nascimento Idade atual 12 .4 Teste de Mesa Todo algoritmo deve passar por um teste.

13 . utilizando dados aleatórios.Lógica de programação Exercício 1) Realize a identificação da entrada do processamento e as saída dos dados. montando um fluxo com base no algoritmo abaixo: o o o o o Pegar nota1 Pagar nota2 Pegar nota3 Calcular média final ((nota1 + nota2 + nota3) / 3) Exibir a média final 2) Realize o Teste de Mesa com base no algoritmo acima.

Qualquer desenvolvedor entenderá um processo utilizando o Diagrama de Blocos.Lógica de programação 7.1 Diagrama de blocos O Diagrama de Blocos nada mais é que uma forma de exemplificação gráfica para representação de um processamento e seus passos. 7. O Diagrama de Blocos ajuda na compreensão de um processo por utilizar uma linguagem universal. contendo símbolos que possuem significados específicos.2 Simbologia São utilizados diversos símbolos. observe o quadro abaixo contendo estes símbolos: 14 . Diagrama de Blocos 7.

assim identificaremos quais ações serão realizadas em cada passo.Lógica de programação Os símbolos sempre serão caracterizados por uma descrição. Vejamos um exemplo: “Calcular idade atual de um indivíduo” 15 .

Lógica de programação INÍCIO PEGAR ANO ATUAL PEGAR ANO DE NASCIMENTO SUBTRAIR ANO ATUAL DE ANO DE NASCIMENTO IDADE ATUAL FIM 16 .

Lógica de programação Exercícios 1) Monte um Diagrama de blocos para: Somar 4 valores de entrada. calcular a média e exibir se foi aprovado ou reprovado.050. que terá juro de 11% ao ano 17 .00. 2) Monte um Diagrama de blocos para: Calcular o valor final do financiamento de um veículo de R$ 21.

As variáveis em um programa possuem tipos que podem ser numéricas. Este valor é utilizado no decorrer da execução e pode ser alterado ou não nesta execução. os Tipos de Dados e as Variáveis As Variáveis e as Constantes são algumas das partes integrantes de um programa. As variáveis são mutáveis em um programa. 8. Vejamos um exemplo da utilização de variáveis: VARIÁVEL VARIÁVEL VARIÁVEL VARIÁVEL (Nota1 + Nota2 + Nota3) / 4 = Média Constante 18 . utilizados em um programa. Constantes.1 Constantes As constantes são valores que não são modificados em um programa.Lógica de programação 8. 8. A variável é utilizada para o armazenamento de um valor em um programa. nem todo programa irá conter uma constante mas conterá uma variável. O valor declarado em uma constante permanecerá inalterado durante toda a execução de um programa. Exemplo: V1 – V2 = V1 + 4 A constante acima declarada determina que a subtração dos valores das variáveis V1 e V2 será igual ao valor da variável V1 somado a 4. cada valor será utilizado individualmente. alfanuméricas ou lógicas. No entanto.2 Variáveis As variáveis são os objetos ou partes integrantes. caracteres. No entanto. Veremos mais adiante a descrição de cada tipo. podendo assim receber vários valores.

Vamos observar a tabela abaixo com os tipos de variáveis e suas respectivas descrições: Tipo Descrição Numéricas Caracteres Alfanuméricas Lógicas Servem para armazenar valores a serem utilizados durante a execução do programa. 19 . Vimos. Servem para armazenar valores que contenham letras e números.2 Declaração de Variáveis As variáveis são declaradas previamente em um programa. Exemplo: Endereço. Valores atribuídos no início do programa que sejam incompatíveis aos declarados. No entanto.Lógica de programação 8. os programadores criam os chamados tratamentos de erro para evitar uma possível atribuição incorreta de valor a uma determinada variável. Exemplo: Senha Servem para armazenar dados booleanos.1 Tipos de Variáveis Vimos que as variáveis e as constantes podem ser dos tipos: numéricas. que as variáveis podem receber diferente valores. Servem para armazenar valores indiferentes.2. caracteres.2. Vimos. assume cada valor unitariamente. 8. também. Neste caso. que as constantes permanecem inalteráveis durante toda a execução do programa. Exemplo: Verdadeiro ou Falso. são descartados ou ocasionam um erro na execução do programa. ainda. alfanuméricas e lógicas.

20 . e faça a verificação das entradas de dados incompatíveis. declare previamente as variáveis e constantes.Lógica de programação Exercícios 1) Crie um algoritmo exemplificando através de um diagrama de blocos.

Operadores Utilizamos os Operadores para executarmos ações de comparação. São utilizados em operações.Lógica de programação 9. 21 . deve obedecer uma hierarquia. 4º Soma ou Subtração. incremento ou decremento para avaliarmos os dados em um processamento computacional. 2º Exponenciação. Vejamos a tabela abaixo com os símbolos para estes operadores: OPERAÇÂO Adição Subtração Multiplicação Divisão Exponenciação SÍMBOLO + * / ** Para a realização de operações utilizando operadores aritméticos. subtração.1 Operadores Aritméticos Para obtermos resultados numéricos. podendo também ser utilizada a exponenciação. como: adição. multiplicação e divisão. Exemplo: (3+1) /2 = =4/2=2 Resolvemos primeiramente o que estava entre parênteses e depois resolvemos a divisão. 3º Multiplicação ou Divisão. Estes operadores podem ser de três tipos: • Operadores Aritméticos • Operadores Relacionais • Operadores Lógicos 9. utilizamos os operadores aritméticos. Vejamos abaixo esta hierarquia: 1º ( ) (Parênteses).

Os resultados destes operadores retornam como valores booleanos ou lógicos. Utilizamos os parênteses para atribuirmos ordem de prioridade nas operações.Lógica de programação 9. em algumas linguagens de programação).2 Operadores Relacionais Para realizarmos comparações entre Strings utilizamos os operadores relacionais. Os valores utilizados para a comparação podem ser constantes ou variáveis. que pode ser verdadeiro ou falso (True ou False. Vejamos na tabela abaixo os operadores relacionais: DESCRIÇÃO Igual a Diferente de Maior que Menor que Maior ou igual a Menor ou igual a Exemplo: Temos a seguir duas variáveis e seus valores: A=6 B=3 Vejamos o resultado. que podem ser caracteres ou números. utilizando operadores relacionais: EXPRESSÃO A=B A <> B A>B A<B A >= B A <= B FALSO VERDADEIRO VERDADEIRO FALSO VERDADEIRO FALSO RESULTADO SÍMBOLO = <> ou ≠ ou != > < >= <= 22 .

a seguir. algumas expressões utilizando símbolos: Exemplo de campos do mesmo valor Exemplo de campo com constante numérica Sim Código=Cod Cód > 100 Não Exemplo de campo com constante alfanumérica Sim Nome = “Maria” Não 23 .Lógica de programação Vejamos.

Vejamos na tabela abaixo os operadores lógicos: Nome Valor Descrição E OU NÃO AND OR NOT Esta expressão será somente verdadeira se todos forem verdadeiros. teremos: A=B A <> B A>B A<B A >= B A <= B Expressões AND OR NOT AND OR NOT B>C B<C B>C B=C Resultado FALSO VERDADEIRO VERDADEIRO VERDADEIRO FALSO FALSO 24 .3 Operadores Lógicos Utilizamos os operadores lógicos para efetuarmos combinações ente resultados de determinadas expressões. Esta expressão será somente verdadeira se ao menos um for verdadeiro. Esta expressão realiza uma inversão de valores.Lógica de programação 9. verificando se o seu resultado será verdadeiro ou falso. Quando todos forem falsos. este será verdadeiro ou vice e versa. Vejamos a tabela abaixo com a utilização dos três operadores lógicos citados acima: Exemplo: • • • Temos os seguintes valores: A=7 B = 10 C=2 Como resultado.

informe se as expressões citadas abaixo são verdadeiras ou falsas.Lógica de programação Exercícios 1) Tendo-se A = 4. B=5. a) (A > C) AND (C <= D) b) (A + B) > 10 OR (A + B) = (C + D) c) (A >= C) AND (D >= C) 25 . B = 8 e C = 5. a) (A + C) > B b) B>= (A+4) c) C = (B – A) d) (B + A) <= C e) (C + A) > B 2) Tendo-se A=6. C=3 e D=6. informe se as expressões citadas abaixo são verdadeiras ou falsas.

Vejamos. o algoritmo “Tomar Banho”. como exemplo. continue o algoritmo Pegar um sabonete novo Retirar a embalagem Jogar embalagem no lixo Ir tomar banho • • • • 26 .Lógica de programação 10. Operações Lógicas Utilizamos as Operações Lógicas em Diagramas de Blocos quando se faz necessário uma tomada de decisão. Iremos verificar se tem um sabonete para tomar banho: “Tomar Banho” • • Ir para o banheiro Tem sabonete? o Se sim. tomar banho o Se não. Este resultado sempre será VERDADEIRO ou FALSO.

Lógica de programação Vejamos este mesmo algoritmo. utilizando-se o Diagrama de Blocos: Início Ir para o banheiro Tem sabonete? Pegar um sabonete novo Retirar a embalagem Tomar banho Jogar embalagem no lixo Ir tomar banho 27 Fim .

Lógica de programação 28 .

armazenando estes valores em variáveis e exibindo os resultados no final. 2) Elabore um diagrama de blocos para efetuar uma operação lógica (Verdadeiro ou Falso) na leitura de um número para verificar se o mesmo é par ou ímpar. 29 . armazenando este valor em uma variável. Exiba o resultado no final.Lógica de programação Exercícios 1) Elabore um diagrama de blocos para efetuar uma operação lógica (Verdadeiro ou Falso) na leitura de um número para verificar se o mesmo é positivo ou negativo.

temos: P v f No caso de uma proposição composta. Principio do terceiro excluído – Uma proposição ou é verdadeira ou é falsa. cujas proposições simples componentes são p e q. Princípios fundamentais da lógica proposicional: • • Principio da não-conformidade – Uma proposição não pode ser simultaneamente verdadeiro e falsa. e se determina por um dispositivo chamado tabela-verdade.Lógica de programação 11. pelo princípio do terceiro excluído.1 Proposições e Conectivos Tabela Verdade O valor lógico de uma proposição composta depende dos valores lógicos das proposições componentes. 11. são: P V V Q V F 30 . No caso de uma proposição simples. no qual figuram todos os possíveis valores lógicos da proposição composta correspondentes a todas as possíveis atribuições dos valores lógicos das proposições simples componentes. as únicas possíveis atribuições dos valores lógicos p e q. nunca ocorre um terceiro caso.

2 Operações lógicas sobre proposições: Quando raciocinamos. 11.1 Negação ( ~ ) A proposição representada por “não p“ chama-se negação de uma proposição p. O valor lógico da negação de uma proposição é definido pela seguinte tabela verdade: P v f ~P f v 31 .2. q e r. sendo que elas obedecem as regras de um cálculo. q e r são: P v v v v f f f f Q v v f f v v f f R v f v f v f v f 11. Veremos a seguir as operações lógicas fundamentais.Lógica de programação F V F V No caso de uma proposição composta cujas componentes simples são p. chamado de cálculo proposicional que é semelhante ao da aritmética sobre números. as únicas atribuições possíveis p. efetuamos operações sobre proposições. O valor lógico é verdade (V) quando p é falsa e é falso (F) quando p é verdadeira.

2. O valor lógico da conjunção de duas proposições é dado pela tabela: P v v f f Q v f v f P^Q v f f f Ex: a) p: Cuiabá é a capital de Mato Grosso V(p) = V q: Brasília é a capital do Brasil V(q) = V p^q: Cuiabá é a capital de Mato Grosso e Brasília é a capital do Brasil V(p ^q) = V ^ V = V 32 .2 Conjunção ( ^) Chama-se conjunção de duas proposições p e q a proposição representada por “p e q”.Ex: p: o número 125 é cubo perfeito V(p) = V ~p: o número 125 não é cubo perfeito V(~p) = F Lógica de programação Pode-se também negar uma proposição de outras formas: Ex: p: Pedro é estudioso ~p: Não é verdade que Pedro é estudioso ou ~p: É falso que Pedro é estudioso Ex: q: Todas as mulheres são vaidosas ~q: Nem todas as mulheres são vaidosas ou ~q: Nenhuma mulher é vaidosa ou ~q: Alguma mulher não é vaidosa 11. cujo valor lógico é a verdade quando p e q são verdadeiras e a falsidade nos demais casos.

3 Disjunção 11. quando pelo menos uma das proposições for verdadeira. aquela representada por “p ou q”.2. e é verdade (V).3.1 Disjunção inclusiva (v) Chama-se disjunção inclusiva de duas proposições p e q aquela representada por “p ou q”.2.b) p: dois é um número primo V(p) = V de q: O quadrado tem Lógica três lados V(q) = pr F ogramação p^q: dois é um número primo e o quadrado tem três lados V(p^q) = V^F = F 11. O valor lógico da disjunção inclusiva de duas proposições é dado pela tabela: p v v f f Ex: a) p: A lua é amarela V (p) = F q v f v f pvq v v v f q: Pitágoras era grego V (q) = V pvq: A lua é amarela ou Pitágoras era grego V (pvq) = FvV = V Ex: b) p: 2 + 2 = 5 V (p) = F q: 3 < 1 V (q) = F pvq: 2 + 2 = 5v3 < 1 V (pvq) = FvF = F 11.3. cujo valor lógico é a falsidade (F) quando o valor lógico das proposições p e q forem falsos.2 Disjunção exclusiva (W) Chama-se disjunção exclusiva de duas proposições p e q.2. cujo valor lógico é a falsidade (F) quando os valores lógicos das proposições p e q são falsos 33 .

q: André é carioca. O valor lógico da disjunção exclusiva de duas proposições é dado como se mostra abaixo: Lógica de programação P V V F F Ex: p: André é baiano. 11.4 Condicional ( ) Chama-se proposição condicional aquela representada por “se p então q”. A condicional.2. se lê das seguintes maneiras: (i) p é condição suficiente para q (ii) q é condição necessária para p.ou verdadeiros. Não é possível ocorrer “André é baiano e carioca”. pwq: André é baiano ou André é carioca Q v f v f PwQ f v v f Aqui a palavra ”ou” tem o sentido de exclusão. O valor lógico da “condicional” é dado como representado abaixo: P V V F F Q v f v f P v f v v Q 34 . o valor lógico é a verdade (V) nos demais casos. onde p é o antecedente e q o conseqüente. pois não existe a possibilidade de ambas as proposições serem verdadeiras. cujo valor lógico é a falsidade (F) quando p é verdadeira e q é falsa. e é verdade (V). nos demais casos.

5 Bi condicional ( ) Chama-se proposição bi condicional aquela representada por “p se e somente se q”. cujo valor lógico é a verdade (V) quando p e q são verdadeiras ou falsas.Ex: a) p: Brasília é a capital do Brasil V(p) =V b) q: O mês de julho tem 31 dias V(q) = V p Lógica de programação q: Se Brasília é a capital do Brasil então o mês de julho tem 31 dias V (p q) = V V=V Ex: b) p: Brasília é a capital do Brasil V (p) = V q: O número 2 é ímpar V (q) = F p V (p q: Se Brasília é a capital do Brasil então o número 2 é ímpar. e é falsa (F) nos demais casos.2. O bi condicional de duas proposições p e q se lêem das seguintes maneiras: (i) p é condição necessária e suficiente para q (hei) q é condição necessária e suficiente para p O valor lógico do “bi condicional” é dado pela representação abaixo: P V V F F Q v f v f P v f f v Q Ex: a) p: A cidade de Cuiabá está localizada na região centro-oeste V(p) = V 35 . q) = V F=F Ex: c) p: O número 2 é ímpar V (p) = F q: O mês de julho tem 30 dias V (q) = F p V (p q: Se o número 2 é ímpar então o mês de julho tem 30 dias q) = F F=V 11.

Brasília é a capital da Argentina V(p q) = F F = V.3 / 5 são Lógica de programação um número inteiro. Exercícios 1) Verifique se os valores lógicos de (p ^ q ) e de (~ (~ p v q ) são iguais. V(p q) = V F=F Ex: b) p: O mês de julho tem 30 dias V(p) = F q: Brasília é a capital da Argentina V(q) = F (p q): O mês de julho tem 30 dias se e somente se.q: 3 / 5 é um número inteiro V(q) = F p q: A cidade de Cuiabá está localizada na região centro-oeste se e somente se. 2) Mostre que (p q) ^ ( q p) e p  q são equivalentes. 36 .

Lógica de programação 12. Como pode ser observado anteriormente. ou seja. proporcionando maior compreensão e definindo prioridades para resolução da mesma. Na informática podemos ter parênteses dentro de parênteses. usamos somente os parênteses “( )” em expressões computacionais. Exemplo: ⎡ 2 + ⎢ 3 ⎣ (5 ⎤ − 3 )⎥ + 1 = ⎦ (2/3+(5-3))+1= * Computacional Tradicional 12. É de extrema importância salientarmos o uso dos operadores correspondentes da aritmética tradicional para a computacional. Exemplos de prioridades: (2+2)/2=2 2+2/2=3 37 . colocadas em linhas.1 Modularização de expressões A modularização é a divisão da expressão em partes. para modularização. Linearização de expressões Para a construção de Algoritmos todas as expressões aritméticas devem ser linearizadas.

3 Funções 13 MOD 2 = 1 Uma função é um instrumento (Sub-algoritmo) que tem como objetivo retornar um valor ou uma informação. A chamada de uma função é feita através da citação do seu nome seguido opcionalmente de seu argumento inicial entre parênteses. As funções podem ser predefinidas pela linguagem ou criadas pelo programador de acordo com o seu interesse. Exemplo: 13 1 2 6 13 DIV 2 = 6 DIV MOD 12. Exemplos: Valor Inicial X X=9 Valor Final Y Processamento Y=3 x 38 .2 Operadores especiais (MOD e DIV) MOD Retorna o resto da divisão entre 2 números inteiros. DIV Retorna o valor inteiro que resulta da divisão entre 2 números inteiros.Lógica de programação 12.

Lógica de programação
12.3.1 Bibliotecas de funções

Armazenam um conjunto de funções que podem ser usadas pelos programas. 12.3.1.1 Funções Pré-Definidas
ABS( ) SQRT( ) SQR( ) TRUNC( ) ROUND( ) LOG( ) SIN( ) COS( ) TAN( ) VALOR ABSOLUTO RAIZ QUADRADA ELEVA AO QUADRADO VALOR TRUNCADO VALOR ARREDONDADO LOGARITMO SENO COSSENO TANGENTE

As funções citadas são as mais comuns e importantes para desenvolvimento lógico. Entretanto, cada linguagem possui suas funções próprias. As funções podem ser aritméticas, temporais, de texto etc.

13.

Estrutura de decisão e repetição

Como podemos observar anteriormente para a tomada de decisão, algumas vezes, precisamos realizar certos tipos de verificações e estas podem interferir diretamente no resultado. Vejamos a seguir dois tipos de estruturas: a Estrutura de Decisão e a Estrutura de Repetição.

39

13.1

Estrutura de Decisão

ou desvio fazem parte das técnicas de programação que Os comandos de decisão Lógica de programação conduzem as estruturas de programas que não são totalmente sequenciais. Com as instruções de salto ou desvio pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. As principais estruturas de decisão são: “Se então”, “Se então Senão” e “Caso Selecione”.

13.1.1 Se então
A estrutura de decisão “Se” normalmente vem acompanhada de um comando, ou seja, se determinada condição for satisfeita pelo comando “Se” então execute determinado comando. Usando o exemplo da média do aluno, adicionemos a regra de que somente o mesmo estará aprovado se sua média for maior ou igual a 5.0. Veja no exemplo de algoritmo como ficaria. • Algoritmo: o • SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO

Fluxograma:

13.1.2 Se então senão

40

Em “Se então Senão”, sempre um comando será executado independente da condição, ou seja, caso a condição seja “verdadeira” o comando da condição será executado, caso contrário o comando da condição “falsa” será executado.

Lógica de programação

Usando ainda o exemplo anterior, o algoritmo ficaria assim: o SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO SENÃO ALUNO REPROVADO

Fluxograma:

A estrutura “Se então Senão” pode estar aninhada ou conter outros níveis de decisões dentro de um nível já estabelecido. Por exemplo, adicionada à regra de que caso o aluno tenha uma média maior ou igual a 5 (cinco), deve-se verificar se a média dele é maior ou igual a 7 (sete), e caso não seja, o mesmo tem direito a fazer outra avaliação. • Algoritmo: o SE MEDIA >= 5 ENTÃO SE MEDIA >= 7 ENTÃO ALUNO APROVADO SENÃO ALUNO NECESSITA FAZER OUTRA AVALIAÇÃO SENÃO ALUNO REPROVADO Fluxograma:

41

3 Caso selecione A estrutura de decisão “Caso Selecione” é utilizada para testar. que produz um resultado. Um menu de opções pode ser usado como exemplo. Compara-se.1. na condição. o resultado obtido no teste com os valores fornecidos em cada cláusula “Caso”. uma expressão.Lógica de programação 13. então. ou então. o valor de uma variável em que está armazenado determinado conteúdo. onde o usuário deve escolher um numero associado a uma opção de operação: 42 .

Lógica de programação 43 .

INÍCIO Lógica de programação Titulo=”” Recebe Opcao Opcao = 1 SIM Titulo = “Opção 1” NÃO Opcao = 2 SIM Titulo = “Opção 2” NÃO Opcao = 3 SIM Titulo = “Opção 3” NÃO Opcao = 4 SIM Titulo = “Opção 4” NÃO NÃO Opcao = 5 SIM Titulo = “Opção 5” Opcao Errada Titulo FIM 44 .

exiba os valores lidos e seus respectivos quadrados. 45 . Se o valor do quadrado do segundo número for >= 1000. Calcule o quadrado deles individualmente. 3) Crie um algoritmo que gere e escreva os número ímpares dos números lidos entre 0 e 100.Exercícios 1) • • • Elabore um diagrama que: de programação Lógica Leia 3 (três) números. exiba este e finalize. Caso contrário. 2) Crie um Diagrama de Blocos que leia um número inteiro e mostre uma mensagem indicativa de que este número é par ou ímpar e se este é positivo ou negativo.

Lógica de programação 13. • Algoritmo: o ENQUANTO X <= 5 FAÇA QUALQUER COISA • Fluxograma: 46 . Enquanto a condição for verdadeira o processo se repete. É possível utilizar essa estrutura para trabalhar com contadores. processar Neste caso.2. 13. O teste da condição será sempre realizado antes de qualquer operação.1 Enquanto x.2 Estrutura de Repetição As estruturas de repetição são utilizadas quando se deseja que um determinado conjunto de instruções ou comandos seja executado em um número definido ou indefinido de vezes. ou enquanto um determinado estado prevalecer ou até que certo estado seja alcançado. o bloco de operações será executado enquanto a condição “x” for verdadeira.

processar.Lógica de programação 13. enquanto x Neste caso. • Algoritmo: o PROCESSAR QUALQUER COISA ENQUANTO X <= 5 47 ..2 Até que x. Repetir..2.. Observemos neste caso que determinado bloco de operações será executado até que a condição seja satisfeita.. Caso contrário o fluxo do programa continua normalmente. os comandos são processados novamente antes do teste da condição... executa-se primeiro o bloco de operações e somente depois é realizado o teste de condição. Se a condição for verdadeira.. Não • PROCESSAR Repetir 13. Fluxograma: Sim SE . • Algoritmo: o Se for FALSA. PROCESSAR QUALQUER COISA o Se for VERDADEIRA. os comandos serão somente executados enquanto a condição for falsa.3 Processar. Deste modo.2.

o programa continua o fluxo de sua execução. os comandos são processados novamente antes do teste da condição • Algoritmo: o Se for FALSA. PROCESSAR QUALQUER COISA o Se for VERDADEIRA. até que x Observemos.2.4 Processar.. neste caso.Lógica de programação • Fluxograma: 13. Fluxograma: • 48 . que o bloco de operações inicial é executado e somente em seguida é realizado o teste de condição. Repetir. Se esta for verdadeira. caso contrário..

2) Construa um algoritmo que efetue a conta de 1 a 200 e a cada múltiplo de 10 emita a mensagem.. A condição para finalização da execução é a entrada de um valor 0. Sim Repetir Exercícios 1) Construa um algoritmo que determine o maior entre N números.Lógica de programação PROCESSAR Não SE .. Desta forma. 49 . o algoritmo deve ficar calculando o maior valor até que a entrada seja igual a 0 (ZERO). “Múltiplo de 10”.

onde estão armazenados os dados de todos os funcionários da empresa. 14.Lógica de programação 14. Exemplo: Campo Nome. e quando o programa era encerrado as informações eram perdidas.1 Conceitos Básicos CAMPO é um espaço reservado em memória para receber informações (dados). Campo Endereço Campo na memória ENDERECO RUA BENTO SANTO REGISTRO é um conjunto de campos. Arquivos de dados Os valores utilizados na manipulação. Exemplo: Registro de Clientes COD-CLI 00001 NOME GABRIELA DA SILVA ENDEREÇO RUA BENTO SANTO FONE 3302-9999 ARQUIVO é um conjunto de registros. Exemplo: O arquivo de Funcionário da Empresa. estavam alocados na memória. e podem ser recuperadas a qualquer momento. Os arquivos resolvem este problema armazenando uma grande quantidade de informações por um grande período de tempo. Registro 1 Registro 1 Registro 1 50 . até o momento.

e deixá-lo disponível para leitura/gravação.Lógica de programação 14. inicialmente precisaremos ABRIR o arquivo. O símbolo para fechamento de arquivo é: FECHAR ARQUIVO 14. disquete) em que o arquivo se encontra.4 Leitura de Arquivos Para obter as informações do arquivo é necessário efetuar a leitura do registro. O sistema operacional intermédia o acesso aos dispositivos O símbolo para leitura de arquivo é: LER ARQUIVO 51 . O símbolo para abertura de arquivo é: ABRIR ARQUIVO 14. O fato de abrir o arquivo significa alocar o periférico (disco.3 Fechamento de Arquivos Após a utilização do arquivo é necessário fechá-lo para que seja finalizado o canal de comunicação com o periférico e mantendo a integridade dos dados armazenados evitando que sejam alterados ou danificados.2 Abertura de Arquivos Ao passo que trabalharmos com arquivo. que consiste em mover os dados contidos no dispositivo para uma área de memória que possui o mesmo layout da informação armazenada.

desta forma a leitura seria do primeiro registro. No instante que o arquivo é aberto para a leitura.F NREG=0 LER ARQUIVO E.F NREG FECHAR ARQUIVO NREG=NREG+1 FIM 14. Após a abertura o primeiro registro está disponível para leitura.O.5 Movimentação de registros É chamada de movimentação de registro a forma pela qual é feita a leitura dos registros contidos no arquivo. A verificação do final do arquivo é importante ser feita sempre antes da leitura. o mesmo é feito quando chega ao final do arquivo (EOF . esta posição inicial pode ser verificada através do ponteiro (BOF Bottom Of File).Lógica de programação A leitura dos registros sege uma ordem especifica. o ponteiro está na primeira posição do mesmo. Abaixo temos a representação simbólica destes passos: INICIO LER ARQUI ABRIR ARQUIVO E. Após a primeira 52 .O.End Of File).

é comum que seja feito o armazenamento com os resultados para que possa ser utilizados em interações futuras. O símbolo para gravação de arquivos é: GRAVRAR REGISTRO 14.Lógica de programação leitura o ponteiro se desloca para a próxima posição e desta formar ele se repete até chegar ao ultimo registro que após sua leitura é dado um retorno que chegou ao seu termino. pen driver ou até mesmo uma fita. 14.7 Macro Fluxo Através do macro fluxo é possível representar de forma gráfica as entradas e saídas utilizadas nos programas. disquete. A gravação de um dado consiste em transferir o registro que está na memória para um dispositivo físico que pode ser um disco. 53 .6 Gravação de Arquivos Após o processamento dos dados.

o nome do arquivo informa que são registros com informação de clientes e ao termino do processamento é gerado um relatório.Lógica de programação ARQ ENT ARQ CLI PROGRAMA PROGRAMA ARQ SAI RELATORIO O primeiro macro fluxo é identificado que o programa faz o processamento utilizando um arquivo de entrada e é gerado um segundo arquivo com o resultado do processamento. O segundo também utiliza um arquivo de entrada. ele traz uma visão de como o programa se relaciona com os recursos externos. O macro fluxo é uma documentação necessária para o entendimento e a validação dos sistemas. 54 .

sexo. tendo as seguintes informações. Quantidade Mínima do produto. Valor total em estoque Sabendo que Preço de Venda = Preço de Custo * Margem Custo/Venda e Valor total em estoque = Preço de venda * Quantidade em Estoque 3) Elabore um diagrama de blocos para efetuar o controle de estoque de um supermercado. Quantidade em estoque de cada produto. A partir destes dados faça um algoritmo que informa: a) A média salarial destes habitantes b) Maior e menor idade. Quantidade Máxima do produto. quais produtos precisam ser comprados e a quantidade a ser adquirida. A compra de um produto está associada a sua quantidade em estoque: Quantidade em estoque <= quantidade mínima Gere um arquivo com a solicitação de compra dos produtos: Código do Produto e Quantidade a Comprar 55 . c) Identificar se qual dos sexos possui a maior media salarial d) Quantidade de homens e de mulheres 2) Um arquivo de livros possui os seguintes campos: Código do livro Autor Titulo Quantidade em Estoque Preço de custo Margem Custo/Venda.Exercícios Lógica de programação 1) Foram coletados dados de uma população. com o intuito de consolidar informações sobre os habitantes. idade. salário). Crie um segundo arquivo com os seguintes campos: Titulo do livro Preço de Venda. Código do produto. (nome.

inicia fase de ajustes para que todos os dados sejam impressos na pagina e que não haja a perda de informação devido a impressão fora do papel.1 Características do Formulário Formulário é o layout definido normalmente pela área de negocio com as informações necessárias para as suas atividades. 56 . pois a estética não deve ser comprometida.15. Relatórios Lógica de programação Os relatórios são utilizados pelas áreas de negocio para exibir informações no formato de registro que são resultados de um determinado processamento feito com dados obtidos dos meios de armazenamentos. O controle do numero de linhas impressas é feito através dos contadores de linhas e não deixar o valor desses contadores ultrapassar o número desejado de linhas por páginas.2 Controle de linhas e salto de páginas É necessário definir o formato do relatório que será impresso. 15. Com o layout definido e as dimensões do papel. Podem conter um formato padrão para a quantidade de linhas por pagina e de colunas de caracteres por linhas constantes (não se alteram). tabelas entre outros. Deve ser observada a quantidade de linhas para que todas as informações apareçam na pagina. Alguns aspectos devem ser vistos para efetuarmos a impressão de relatórios: • • • • • Formato e características do formulário Controle de linhas e salto de página Impressão de cabeçalho e rodapé Numeração de páginas Estética final da página 15. arquivos.

3 Impressão de Cabeçalho e Estética de Página O relatório deve conter uma estética que facilite o entendimento do seu conteúdo.Lógica de programação 15. veja o exemplo abaixo: SENAI PAG 1 LISTAGEM DE FUNCIONARIOS CABECALHO MAT 001 002 003 004 005 006 007 NOME JOSE MARIA CARLOS JOANA PAULO MESSIAS JORGE UNID 3B 2A 3B 2C 2A 3B 2C LINHAS DE DETALHE RODAPE 57 .

Linha de Detalhe Registros gerados na parte central do relatório com informações obtidas de arquivos ou tabelas de dados. definição de colunas e outras informações a depender da necessidade. Área de Rodapé Terminador da pagina de relatório onde pode conter totalizadores e informações adicionais. Veja abaixo um exemplo de diagrama de bloco para impressão de relatório: 58 .Lógica de programação Vejamos abaixo a descrição de cada campo do formulário: CAMPO DESCRIÇÃO Área de Cabeçalho Área que identifica o relatório com assunto a que se refere o conteúdo da pagina.

Lógica de programação 59 .

Descreva como deve ser este diagrama e blocos com o seguinte Layout: Macro-fluxo Layout (Cadastro de Funcionários) CADCLI MATRICULA NOME-FUNCIONARIO DATACONTRATACAO SALÁRIO Layout (Cadastro de Faltas) CADFLT MATRICULA ANO FALTA PROGRAMA RELATÓRIO Layout (Relatório) + MATRICULA XXXXXXXXX XXXXXXXXX ANO: XXXX RELAÇÃO DE FUNCIONARIOS / FALTAS NOME XXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXX FALTAS XXXX XXXX PAG.XX DATA CONTRATO XXXXXXXXXX XXXXXXXXXX TOTAL DE FALTAS: XXXXXXXXXXXXXX Obs: Deve conter o cabeçalho e totalizadores em todas as paginas e um total de 50 linhas por pagina. 60 .Exercícios Lógica de programação 1) O gerente de recursos humanos deseja obter uma lista com os funcionários que mais possuem faltas no ano vigente e em ordem decrescente pelo numero de faltas.

Communications of the ACM. R.. North-Holland. Abril de 2000. W. Organização e Programação de Computadores. 1974 (Computer Programming Management Portfolio.MAKRON. SENAC – RS. Belo Horizonte. N. 1972. 1º Edição. N.. Englewood Cliffs. C. Sites na Web: http://www. 1980. LTC . Referências Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados – São Paulo: Forbellone. . Pa. Engenharia de Programas.. L. N. DIJKSTRA. Structured Programming. Publicação Interna do ICEx-UFMG. Guanabara. 1971. On the Criteria do be used in Decomposing Systems into Modules. E. 1976. W. 1980. W. MORAES. Program Development by Stepwise Refinement. April. J. 1974. J. C. Fundamentos de Computadores Digitais. A. Gunther. Rio de Janeiro. Curso Básico de Lógica de Programação. V. A. E. 1977. Rio de Janeiro. Rio de Janeiro. 1983. 1993. T. Guanabara.pucrs. Philadelphia. E. HORRE. 12). Prentice-Hall. A. C. André Luiz Villar . A Discipline of Programming. Paulo Sérgio de. Academic Press. O. M. Communications of the ACM. et alIi International Computer Symposium (ICS). Objectives of Structured Programming. AS. Curso de Programação de Computadores. 14(4). London.Lógica de programação 16.br/~egidio/algo1/ BACH. UNICAMP. Apostila de Lógica de Programação. rRA. From Programming Techniques to Programming Methods. 14-02-01).. Amsterdam. L. 2003. 61 .Livros Técnicos e Científicos.inf. 1972. D.