You are on page 1of 55

LÓGICA DE

PROGRAMAÇÃ
O

OBJETIVO

Desenvolver o raciocínio lógico do aluno modelado
às técnicas e práticas recomendadas e atuais
para o desenvolvimento de programação de
computadores.

INTERDISCIPLINARIDAD
E

A disciplina possui ligação direta com a de
Linguagem de programação, pois interage na
forma do desenvolvimento do raciocínio lógico que
em seguida o aluno o aplica na criação de
programas,
através
da
linguagem
de
programação do módulo.

COMEÇANDO...

O QUE É LÓGICA?
 Ciência

que estuda as leis do
raciocínio.

 Correção/validação

do pensamento.

 Encadeamento/ordem
 Arte

de idéias.

de bem pensar.

LINGUAGEM DE PROGRAMAÇÃO Tipos de Linguagens:  Programação Imperativa  Programação Funcional  Programação baseada em Lógica  Programação Orientada por Objetos  .

. BASIC foi criada para ser simples e usada por não-programadores. COBOL foi criada para aplicações comerciais. cujo objetivo era manipular ficheiros de registros. serviu de modelo para o Pascal e C. criado nos anos 60.PROGRAMAÇÃO IMPERATIVA      Orientada por ações A Linguagem FORTRAN foi criada por um grupo da IBM liderado por John Backus . O ALGOL.

 .  O PASCAL derivou do ALGOL.  A Linguagem C foi orginalmente desenhada para programação de sistemas. FORTRAN e ALGOL. a linguagem dos anos 70 e 80.PROGRAMAÇÃO IMPERATIVA PL/1 foi a 1ª Linguagem Generalista. hoje é largamente utilizadas nas aplicações. embarcando conceitos do COBOL.

PROGRAMAÇÃO FUNCIONAL Os conceitos básicos das linguagens funcionais originaram do LISP.  Utilizada para processamento simbólico em: Cálculo diferencial e integral. teoria de circuitos elétricos. I. resolução de jogos.A.  .

 Nessa linguagem não se descreve o algoritmo para chegar ao resultado.PROGRAMAÇÃO BASEADA EM LÓGICA O PROLOG foi originalmente desenhado para processamento de linguagem natural. mas a informação base (fatos) e as regras para se pdoer deduzir o resultado.  Tal como LISP é usado para processamento simbólico em todas as áreas da I.  .A.

SMALLTALK.PROGRAMAÇÃO ORIENTADA A OBJETOS Quase todas as linguagens já existentes foram modificadas para suportar o paradigma OO (C++. etc.)  Algumas foram originalmente projetadas para suporte a esse paradgima (SIMULA.  . JAVA). são as chamadas OO puras. PROLOG++. MODULA 3. EIFELL.

Programação é o simples ato de escrever idéias é ter essas idéias.O ATO DE PROGRAMAR Programar não é um ato mecânico. consegue-se através do estudo e principalmente do treino!!!!  “O Conhecimento da linguagem é necessário. é ser criativo e engenhoso!”  . mas não é de todo suficiente.

SEQUÊNCIA LÓGICA Sequência Lógica são passos executados até atingir um objetivo ou solução de um problema:   “Chupar uma bala”: · Pegar a bala · Retirar o papel · Chupar a bala · Jogar o papel no lixo .

INSTRUÇÕES  Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. . é o que indica a um computador uma ação elementar a executar. Em informática.

LINGUAGENS DE PROGRAMAÇÃO .

” . bem definidas.ALGORITMO  “Algoritmo é um conjunto finito de regras. para a solução de um problema em um tempo finito e com um número finito de passos.

Definitude: cada passo do algoritmo tem de ser definido com precisão. Entrada: um algoritmo pode ter zero ou mais entradas. Saídas: um algoritmo tem uma ou mais saídas.CARACTERÍSTICAS DO ALGORITMO      Finitude: um algoritmo tem de terminar ao fim de um número finito de passos. . Eficácia: todas as operações feitas por um algoritmo têm de ser básicas.

ALGORITMOS Regras:  Variáveis sãos os únicos objetos manipulados pelos algoritmos  Os algoritmos só podem memorizar valores em variáveis  .

  Em portugol. toda variável tem um nome.VAMOS ENTENDER VARIÁVEL. COMO UMA CAIXA.  booleanas (verdadeiro ou falso). NA QUAL VOCÊ PODE DAR O NOME QUE LHE ACHAR CONVENIENTE. inteiro. EOu GUARDAR O CONTEÚDO QUE valor DESEJAR Mas você não falou de tipo. caractere e logico .  seja. o que é isso?  As variáveis. e tipo. podem sem classificadas em:  numérica (numeros reais ou inteiros). temos os tipos: real.  caracteres (sequências de texto).

.ENTÃO EU POSSO COLOCAR QUALQUER NOME EM MINHA  Certas palavras. são reservadas para o uso da VARIÁVEL? linguagem. essas palavras não podem ser utilizadas como um nome para sua variável. SIM E NÃO!ou seja. pois haveria um conflito na hora de interpretar o código.

não é necessário! A medida em que você for aprendendo a programar em portugol. e qual não é reservada pela linguagem.Palavras reservadas do Portugol Não se preocupe em decorar essa tabela. você saberá exatamente qual palavra é. .

deve ser necessariamente letra ou underline ‘_’. Uma variável correta seria ArgoHost. BrUnO = bruno. ou seja. tudo junto e sem espaços. diferente de outras linguagens de programação. as variáveis não são case sensivity. Nada de Coca Cola por exemplo. em Portugol. Logo. Essa aqui chega a ser difícil… Não é permitido variáveis com mais de 127 caracteres (pasmem! quem criaria uma variável desse tamanho?) E por fim. elas não diferenciam maiúsculas de minúsculas. Não pode começar em números Nomes de variáveis não podem ter espaços em branco. .Outras restrições para o nome de sua variável é: O primeiro caractere de sua variável.

A TABELA ABAIXO. . EXEMPLIFICA QUE TIPO DE CONTEÚDO VAI EM CADA VARIÁVEL.

 .  Ao contrário de uma linguagem de programação não existe um formalismo rígido de como deve ser escrito o algoritmo.PSEUDOCÓDIGO Os algoritmos são descritos em uma linguagem chamada pseudocódigo. que é uma alusão à posterior implementação em uma linguagem de programação  Assim os algoritmos são independentes das linguagens de programação.

REGRAS PARA SE CRIAR O ALGORITMO: Usar somente um verbo por frase  Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com informática  Usar frases curtas e simples  Ser objetivo  Procurar usar palavras que não tenham sentido dúbio  .

MONTAGEM DO ALGORITMO ENTRADA: São os dados de entrada do algoritmo PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final SAÍDA: São os dados já processados .

EXEMPLO 1 Os alunos farão 2 provas: P1 e P2.  Calcular a média dos alunos do 1º ano:  (P1+P2) / 2  Quais os dados de entrada?  Qual o processamento?  Qual o dado de saída?  .

seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.TESTE DE MESA  Após desenvolver um algoritmo ele deverá sempre ser testado. que significa.  Utilize a tabela abaixo: P1 P2 Média . Este teste é chamado de TESTE DE MESA.

 . portanto. sua principal função é a de facilitar a visualização dos passos de um processamento.DIAGRAMA DE BLOCOS O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. com significado bem definido.  Com o diagrama podemos definir uma sequência de símbolos.

O DIAGRAMA DE BLOCOS .

EXEMPLO 1 DE DIAGRAMA .

EXEMPLO 2 DE DIAGRAMA .

REPRESENTAÇÃO DE UM ALGORITMO: Algoritmo <nome_do_algoritmo>  <declaração_de_variáveis>  <subalgoritmos>  Início  <corpo_do_algoritmo>  Fim.  .

COMPUTACIONAL .

NÃO COMPUTACIONAL .

PSEUDOCÓDIGO:            Algoritmo Média VAR N1. . N2.(N1+N2)/2 Se (Média >= 7) Escreva “Aprovado” Então Escreva “Aprovado” Senão Escreva “Reprovado” Fim. N2 Média <. Média : real Início Leia N1.

ESTRUTURAS BÁSICAS: Tipos de Dados  Constantes  Variáveis  .

-56. 0. tem-se os valores: 35. 1024 entre outros. Excluindo-se destes qualquer número fracionário.TIPOS DE DADOS:   Inteiros: São caracterizados por dados numéricos positivos ou negativos. . Como exemplo deste tipo de dado.

1. 0. -56. Como exemplo deste tipo de dado. -45. . tem-se os valores: 35.987 entre outros.2.TIPOS DE DADOS:   Reais: São os dados numéricos positivos e negativos e números fracionários.

Este tipo de dado também é conhecido como alfanumérico. “7” entre outros.TIPOS DE DADOS:   Caracteres: São as sequências contendo letras. “Rua Alfa. literal ou cadeia. Uma sequência de caracteres deve ser indicada entre aspas (“”). . números e símbolos especiais. 52 Apto 1”. “04387030”. string. tem-se os valores: “Programação”. “ ”. “Fone 574-9988”. Como exemplo deste tipo de dado.

.TIPOS DE DADOS:   Lógicos: São os dados com valor verdadeiro e falso. sendo que este tipo de dado poderá representar apenas um dos dois valores. Ele é chamado por alguns de tipo booleano. devido à contribuição do filósofo e matemático inglês George Boole na área da lógica matemática.

Existirão vários momentos em que este conceito deverá estar em uso.CONSTANTES:   Têm-se como definição de constante tudo aquilo que é fixo ou estável. quando desenvolvermos programas. EX: CONST pi = 3.14159 .

Isto se faz necessário para permitir que o compilador reserve um espaço na memória para as mesmas.VARIÁVEIS:       Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. Ex: VAR nome: caracter[30] idade: inteiro salário: real tem_filhos: lógico .

EXPRESSÕES E OPERADORES:       Operadores Aritméticos: Hierarquia das Operações Aritméticas: 1 º ( ) Parênteses 2 º Exponenciação 3 º Multiplicação. divisão (o que aparecer primeiro) 4 º + ou – (o que aparecer primeiro) .

EXPRESSÕES E OPERADORES:  Operadores Operacionais: .

OU-OR.EXPRESSÕES E OPERADORES: Operadores Lógicos:  E-AND. NÃO-NOT  .

pois pode haver medida com parte fracionária • Poderíamos criar uma variável de saída para a área. porém podemos calcular e mostrar o resultado sem usar essa variável • O esboço da solução em linguagem natural seria: o Solicitar valor da largura e altura o Calcular área e mostrar resultado .EXERCICIO 1: CALCULAR A ÁREA DE UM RETÂNGULO • A área de uma figura geométrica retangular é calculada pela fórmula área = largura x altura • As variáveis de entrada são altura e largura. do tipo real.

um dos valores será perdido .EXERCICIO 2 -ARMAZENAR DOIS NÚMEROS EM VARIÁVEIS E TROCAR OS VALORES DAS VARIÁVEIS Para fazer a troca de valores de duas variáveis é necessário uma variável auxiliar pois se fizermos a troca direta.

EXERCICIO 3 -CALCULAR AS RAÍZES DE UMA EQUAÇÃO DO SEGUNDO GRAU .

Propriedades de um triângulo: • A soma de dois lados não pode ser menor que a do terceiro lado (ou o comprimento de cada lado deve ser menor que a soma dos outros dois lados) • Equilátero: três lados iguais • Isósceles: dois lados iguais • Escaleno: três lados diferentes . isósceles ou escaleno.EXERCICIO 4 –ANÁLISE DO TRIÂNGULO Faça uma algoritmo que leia três valores que representam os três lados de um triângulo e verifique: • Se o triângulo é válido • Se é um triângulo equilátero.

EXERCICIO 5 . limite (tipo inteiro) Variável de contagem: i Variáveis de processamento e saída: soma (inteiro) .CALCULAR A SOMA DOS NÚMEROS ÍMPARES ENTRE UM INTERVALO INFORMADO Variáveis de entrada: valor inicial (“ini”).

CALCULAR O FATORIAL DE UM NÚMERO N ! = N * (n-1) * (n-2). 60 * 1 = 60). só que em vez de somar.EXERCICIO 6 . 20 * 3 = 60 . que podem estar tanto em ordem crescente como decrescente • Um pequeno detalhe do algoritmo é que precisamos iniciar a variável acumuladora dos produtos com 1 ou com o primeiro número das multiplicações (conforme o algoritmo a ser usado). senão estaremos multiplicando por zero • Variáveis de entrada: número a calcular o fatorial (“num”) (tipo inteiro) • Variável de contagem: c • Variáveis de processamento e saída: fatorial (inteiro) . Essa multiplicação pode ser feita de forma similar à variável acumuladora.. multiplicando. • Precisaremos de uma estrutura PARA p/ obter os multiplicadores. Ex: resl <res * num.. * 1 Ex: 5! = 5 * 4 * 3 * 1 = 60 • Podemos observar na fórmula do fatorial que precisaremos fazer multiplicações sucessivas. onde o resultado da última multiplicação será multiplicado novamente por um outro número (ex: 5*4 = 20.

no máximo. O prisioneiro não pode ficar com nenhum membro da família sem o policial. um possível algoritmo para o jogo Travessia do Rio disponível online em diversos sites (ex: http://www. duas pessoas por vez.aulavaga. www. O jogo consiste em atravessar todos os personagens de uma margem à outra do rio seguindo as seguintes regras: 1.facebook.br/jogos/raciocinio/travessia-do-rio/). a mãe e o policial sabem pilotar o barco. O pai não pode ficar sozinho com as filhas. A mãe não pode ficar sozinha com os filhos. utilizando um fluxograma. 5. 6. Somente o pai. 2. 4.com. O barco pode transportar. Você pode fazer quantas viagens deseja .com/k19treinamentos 33 ALGORITMOS 34 3.DESAFIO: Escreva.

pdf .net/project/portugol/manual/Manualde-Configuracao-v.dl.sourceforge.COMPILADOR PORTUGOL Projeto MACP .sourceforge.net/projects/portugol/files/latest/download? source=files Seguir o manual de configuração: http://ufpr.http://portugol.2012.net/ Download : http://sourceforge.

DÚVIDAS .