Lógica de Programação. Introdução

Documentos relacionados
Lógica de Programação. Capítulo 1. Introdução. Lógica de Programação. Forbellone / Eberspacher. Introdução

Algoritmo e Programação. Capítulo 2 Tópicos Preliminares

Introdução à Ciência da Computação

INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

Algoritmos: Conceitos Fundamentais. Slides de autoria de Rosely Sanches e Simone Senger de Souza

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

ALGORITMOS AULA 2. Profª Amanda Gondim

Algoritmos: Conceitos Fundamentais. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

Noções de algoritmos - Aula 1

Oficina de Introdução de Programação usando Linguagem Python Prof. Ms. Perini

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

Oficina de Python Prof. Me. José Carlos Perini

Ciência da Computação A&P

Linguagem Computacional

Oficina de Python Prof. Me. José Carlos Perini

Algoritmos e Programação - Engenharia da Computação -

Português Estruturado (VISUALG)

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Informática Fundamentos em C++ Revisão 1

Prof. Jorge Cavalcanti

Programação Estruturada Aula VisualG

Variável. Expressões. Atribuição. Tipos básicos Declaração. Aritméticas Lógicas. Professor Leandro Augusto Frata Fernandes

AEDI Fundamentos Revisão 1

ALGORITMOS E APLICAÇÕES. FATEC IPIRANGA ADS Noturno 1º semestre de 2012 Prof. Luiz Carlos de Jesus Junior

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

Algoritmo e Programação Matemática

Variáveis, Expressões Aritméticas e Entrada e Saída de Dados

Lógica. Necessida de se usar lógica. Solucionar problemas Eficiência e eficácia Boa performance de conhecimento

Programação de Computadores:

Aula 4 Estruturas Condicionais

Programação de Computadores I. Professor Ilaim Costa Junior

Fluxogramas e variáveis

Algoritmos: tipos de dados, variáveis e expressões

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

Algoritmos. Prof. Jonatas Bastos Site:

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

Estruturas de Controle de Fluxo Estruturas de Seleção. Givanaldo Rocha

UNIDADE 2 ALGORITMOS E PSEUDOCÓDIGO

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

ALGORITMOS 3ª Aula. 3. Introdução Tipos de dados, variáveis e operadores Tipos de dados

Introdução à Ciência da Computação

Lógica de Programação

CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: ALGORITMOS

E X E R C Í C I O S 01. Sobre o comando CASO, marque as alternativas como verdadeira (V) ou falsa (F):

Noções de algoritmos - Aula 1

PROGRAMAÇÃO COMPUTACIONAL I

Aula 4 Oficina de Programação Algoritmos - Parte 3. Profa. Elaine Faria UFU

Conceitos Básicos de Algoritmos

5. Expressões aritméticas

TIPOS DE DADOS E VARIÁVEIS

Introdução à Programação de Computadores Fabricação Mecânica

PORTUGUÊS ESTRUTURADO: INTRODUÇÃO INTRODUÇÃO À PROGRAMAÇÃO PROF. ALEXANDRO DOS SANTOS SILVA

ALGORITMOS AULA 1. Profª Amanda Gondim

CMP Algoritmos Algoritmos Parte I. Professor Vicente Paulo de Camargo

Conceitos básicos de algoritmos

Expressões, Atribuições, Entrada e Saída. Givanaldo Rocha

Algoritmos e Estruturas de Dados I. Universidade Federal de São João del-rei Pedro Mitsuo Shiroma Sala 119 Bloco 3

Programação Estruturada

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Estruturas Condicionais

Objetivo: Desenvolver algoritmos a partir de problemas

CONCEITOS DE ALGORITMOS

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos Computacionais

Português Estruturado

Aula 3 Oficina de Programação Algoritmos - Parte 2. Profa. Elaine Faria UFU

Universidade Federal de Uberlândia Faculdade de Computação. Expressões aritméticas, relacionais e lógicas Estruturas condicionais

Capítulo 3 Estrutura Sequencial

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Algoritmos. Conceitos e Comandos

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

Algoritmos. Seqüência finita e ordenada de procedimentos que resolvem um determinado problema. Exemplo: O que preciso fazer para preparar um omelete?

Pseudocódigo e visualg

Pseudocódigo e Visualg

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Introdução à Pseudo-código PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039)

Introdução a Lógica de Programação

Técnicas de Programação

Transcrição:

Lógica de Programação Introdução

Introdução Neste capítulo Introdução à Lógica de Programação Algoritmizando a Lógica Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle

Lógica de Programação Lógica: A palavra lógica vem do grego Logos e significa razão, pensamento. O pai da lógica é o filósofo Aristóteles, ele chamou sua lógica de silogismo, que significa ligação. Ele deu esse nome porque a lógica trata da ligação formal dos juízos feito pelo pensamento. Seus textos sobre lógica foram escritos em sua obra Primeiros Analíticos. O silogismo é uma forma de análise que procura decompor em partes os argumentos e as proposições de um argumento e seus termos. Mais tarde o conjunto de seus escritos silogísticos foi chamado de Organon, palavra grega que significa instrumento. A lógica, portanto, é um instrumento para se pensar corretamente. Ciência que estuda as formas do pensamento, Correção do pensamento ou correção do raciocínio, Arte do bem pensar, Ordem no pensamento.

Lógica de Programação Sempre que pensamos a lógica nos acompanha Um bebê sabe que precisa chorar para receber atenção Um casal com 3 filhos notou que um vaso estava quebrado, enquanto 2 das crianças estavam na escola. Quem é o culpado? A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro abrir a gaveta para depois pegar a caneta. O pensamento (e a lógica) pode ser expresso através da palavra falada ou da palavra escrita Um mesmo pensamento pode ser expresso em inúmeros idiomas, tanto oralmente quanto por escrito Vamos estudar uma forma única de representação

Exercício Em um torneio de atletismo, Barnabé, Gumercindo e Teodoro participaram das provas de 100 metros rasos, salto em distância e arremesso de dardo. Cada um deles conseguiu um primeiro lugar, um segundo lugar e um terceiro. Descubra o que cada um conquistou, sabendo que: Gumercindo venceu Barnabé no salto em distância; Teodoro chegou atrás de Gumercindo no arremesso de dardo; Barnabé não chegou em primeiro nos 100 metros rasos.

ALGORITMO É o pensamento descrito como uma sequência de passos que visam atingir um objetivo Algoritmos no dia-a-dia: Receita de bolo, orientação para se chegar em algum endereço Qual sua importância na programação? Representar o raciocínio, independentemente de detalhes computacionais, que podem ser acrescentados mais tarde Focalizar primeiro na resolução algorítmica do problema, possibilitando depois codificá-la em qualquer linguagem

Importância dos Algoritmos Problema Fase de resolução do problema Passo difícil Solução em forma de algoritmo Solução como programa de computador Fase de resolução do problema

Descrição Narrativa Um método direto, simplesmente especificar seus passos verbalmente. Porém a linguagem natural é prolixa, imprecisa, pouco confiável. Por isso não é adequada.

Diagrama de bloco Nome Símbolo Descrição Fluxo Indica o sentido do fluxo de operações Início Início do algoritmo Terminal Indica início, fim ou ponto de parada de um programa n1,n2,n3 O valor de cada nota é armazenado nas variáveis n1,n2 e n3 Entrada Saída x,y x,y Indica operação de entrada de dados para os locais chamados de x e y na memória Indica operação de saída ou de impressão dos valores x e y M=(n1,n2,n3)/3 O valor da média é calculado e armazenado na variável M Decisão Indica a possibilidade de desvio para mais de um ponto do programa Cálculo x=y+z Indica operação aritmética Conector Conector Indica conexão entre dois pontos de um algoritmo que estejam na mesma página Indica conexão entre dois pontos de um algoritmo que estejam em página diferentes M>=60? S Você foi aprovado Fim N Você foi reprovado Fim do algoritmo É verificado se o valor de M é maior ou igual a 60. Se sim(s), é exibida a mensagem Você foi aprovado. Caso Contrário (N), é exibida a mensagem Você foi reprovado

Pseudo Linguagem Consiste em representar textualmente os passos envolvidos na resolução do problema. Para evitar ambiguidade, utiliza-se de um conjunto de regras que visam restringir e estruturar o uso do português na representação dos algoritmos. Aproxima-se muito do código fonte de linguagens de programação reais.

Exemplo de um Algoritmo Início inteiro: n1,n2,n3,m; escreva( Informe a primeira nota ); leia(n1); escreva( Informe a segunda nota ); leia(n2); escreva( Informe a segunda nota ); leia(n3); m (n1 + n2 + n3)/3; se(m>=60) então escreva( Você foi Aprovado ); senão escreva( Você foi Reprovado ); fimse; Fim. // Início do algoritmo // Declaração das variáveis // Mensagem para o usuário // Leitura da primeira nota // Mensagem para o usuário // Leitura da segunda nota // Mensagem para o usuário // Leitura da terceira nota // Atribuição de valor através de operação // Teste de seleção // Se a condição for verdadeira // Mensagem para o usuário Aprovado // caso contrario, (se condição falsa). // Mensagem para o usuário // Final do teste de seleção // Fim do algoritmo

Tipos de Dados Existem quatro tipos de dados utilizados na construção de algoritmos. Inteiro: informação numérica que pertença ao conjunto dos números inteiros Exemplo: 8, -5, 10, 0, 1, etc. Real: Informação numérica que pertença ao conjunto dos números reais Exemplo: 0.15, -5.14, 10. 2, 2E23, etc. Caracter: Informação composta por um caracter, ou conjunto de caracteres Exemplo: Ciência da Computação, A, US$, etc Lógico: Informação que possa assumir apenas duas situações. Exemplo: V ou F

Identificadores Um identificador é o nome dado às informações de caráter variável. Existem algumas regras de formação de identificadores que devem ser obedecidas. 1. Devem começar com um caracter alfabético 2. Podem ser seguidos por mais caracteres alfabéticos ou numéricos 3. Não devem ser usados caracteres especiais ou símbolos de operadores aritméticas 4. Não podem ser palavras reservadas. Identificadores válido: ano, idade, U2, nota1, nota_2 Identificadores inválidos: C&A, 4x, nota 1, nota 2, a/b, a#b, A+B

Declaração de variáveis No ambiente computacional, as informações variáveis são guardadas em dispositivos eletrônicos denominados memória. Para diferenciar cada uma destas variáveis utilizamos os identificadores. Exemplo: Inteiro: x; real: salario; logico: resposta; caracter: endereco;

Comandos Básicos Declaração de Variáveis Ex. caracter: nome; inteiro: x,idade,soma; real: y,salario; logico: val1; Comando de saída de dados Ex. escreva( Hello Word! ); escreva(nome); escreva( Seu nome e,nome); escreva( Seu salario e:,salario); Comandos de entrada de dados Ex. leia (nome); leia (x,idade); leia (y,salario); Comandos de atribuição Ex. soma y * salario; val1 1 > 4+3;

Exemplo de um Algoritmo Início inteiro: val1, val2, soma; escreva( Digite o 1 números a ser somado ); leia(val1); escreva( Digite o 2 números a ser somado ); leia(val2); soma (val1+val2); escreva( O valor total é:,soma); fim. // Início do algoritmo // Declaração das variáveis // Mensagem para o usuário // Leitura da variáveis val1 // Mensagem para o usuário // Leitura da variáveis val2 // Calculo da soma // Mensagem com valor da soma // Fim do algoritmo

Operadores Operador aritmético Função Exemplos + soma 2+3; x+y; z+2 - Subtração 4-6; g-k; u-4 * Multiplicação 8*6; x*y; 2*x / Divisão 2/7; x/z; z/2 pot(x,y) Potenciação (x y ) pot(2,4); pot(z,3) rad(x) Radiciação rad(4); rad(x) ( x) mod Resto da divisão 13 mod 2(resulta em 1) div Quociente da divisão 9 div 4(resulta em 2)

Hierarquia Parênteses mais internos pot rad * / div mod + - Para operações de mesma prioridade, resolvemos os operadores da esquerda para a direita. A prioridade pode ser alterada com o uso de parêntese

Operadores Operador relacional Função = Igual x=y; x=z > Maior que 3>2; x>y < Menor que x<y; 2<x Exemplos >= Maior ou igual a 8>=7; x>=z; z>=2 <= Menor ou igual a 5<=6; x<=6 <> Diferente de 4<>3; x<>z

Operadores Operador lógico não e ou Função Negação Conjunção Disjunção não e ou O resultado obtido de uma expressão envolvendo operadores relacionais e/ou lógicos relação é sempre um valor lógico. As expressões lógicas devem ser solucionadas respeitando a seguinte procedência

Prioridade As expressões envolvendo os operadores aritméticos, relacionais e lógicos, devem ser solucionadas respeitando a seguinte ordem de prioridade. 1. Parênteses mais internos 2. Operadores aritméticos 3. Operadores relacionais 4. Operadores lógicos

Estrutura de seleção se (expressão logica) entao acao fimse; Início fim. inteiro: val1; escreva( Digite um número ); leia(val1); se (val1<100) entao escreva( O numero digitado e menor que 100 ); fimse;

Estrutura de seleção se (expressão logica) entao acao 1; senao acao 2; fimse; Início fim. inteiro: val1; escreva( Digite um número ); leia(val1); se (val1<100) entao inicio escreva( Atencao ); escreva( O numero digitado e menor que 100 ); fim; senao inicio escreva( Atencao ); escreva( O numero digitado e igual ou maior que 100 ); fim; fimse;

Estrutura de seleção Exercício, exemplo I Início fim. inteiro: idade; caracter: nome; escreva( Digite seu nome: ); leia(nome); escreva( Informe sua idade: ); leia(idade); se (idade<13) entao escreva(nome, Você é uma criança ); senao Errado se (idade > 12 e idade<20) se (12<idade<20) entao escreva(nome, Você é um adolescente ); senao escreva(nome, Você é um adulto ); fimse; fimse;

Estrutura de seleção Exercício, exemplo II Início fim. inteiro: idade; caracter: nome; escreva( Digite seu nome: ); leia(nome); escreva( Informe sua idade: ); leia(idade); se (idade<13) entao escreva(nome, Você é uma criança ); senao se (idade >12 e idade<20) entao escreva(nome, Você é um adolescente ); senao se (idade>19) entao escreva(nome, Você é um adulto ); fimse; fimse; fimse; Errado se (12<idade<20)

Estrutura de seleção Exercício, exemplo III Início fim. inteiro: idade; caracter: nome; escreva( Digite seu nome: ); leia(nome); escreva( Informe sua idade: ); leia(idade); se (idade<13) entao escreva(nome, Você é uma criança ); fimse; se (idade >12 e idade<20) entao escreva(nome, Você é um adolescente ); fimse; se (idade>19) entao escreva(nome, Você é um adulto ); fimse; Errado se (12<idade<20)

Estrutura de seleção de múltipla escolha escolha(x) caso v1: acao1; caso vn: acaon; caso contrario: acaopadrao; fim escolha

Estrutura de seleção de múltipla escolha escolha(x) caso v1: acao1; caso vn: acaon; caso contrario: acaopadrao; fim escolha inicio caracter:tipo; escreva( Selecione o sabor de pizza Muzzarela(M), Quatro queijos (Q), ou Presunto(P). ); leia (tipo); escolha(tipo) caso M : escreva( A sua pizza de muzzarela esta sendo preparada... ); escreva( Aguarde... ); caso Q : escreva( A sua pizza de quatro queijos esta sendo preparada... ); escreva( Aguarde... ); caso P : escreva( A sua pizza de presunto esta sendo preparada... ); escreva( Aguarde... ); caso contrario: escreva( Opcao não disponivel ); fimescolha; Fim.

Estrutura de repetição - com teste no início enquanto(expressao logica) faça acao1; acao2; acao3; fimenquanto; inicio caracter:nome; inteiro: contador; contador 1; escreva( Informe o seu nome ); leia(nome); enquanto (contador<=3) faça escreva(nome); contador contador + 1; fimenquanto; fim; // Início do algoritmo // Declaração de variável nome // Declaração de variável contador // Inicializando a variável contador // Exibindo a mensagem na tela // Armazena o nome informado na variável nome // Início do laço // Imprimindo o conteúdo da variável nome na tela // Incrementando o contador em uma unidade // Fim do laço // Fim do algoritmo

Estrutura de repetição - com teste no início inicio real: num,soma; soma 0; escreva( Informe o numero a ser somado ); leia(num); enquanto (num<>0) faça soma soma+num; escreva( Informe o número a ser somado ); leia(num); fimenquanto; escreva( A soma vale; soma); fim;

Estrutura de repetição - com teste no fim repita acao1; acao2; acao3; ate(expressão lógica) inicio inteiro: num; real: soma; soma 0; repita escreva( Informe o numero a ser somado: ); leia(num); soma soma+num; ate(num=0); escreva( A soma vale; soma); fim;

Estrutura de repetição com variável de controle Para v de vi até vf passo p faça ação 1; ação 2; ação n; fimpara inicio inteiro: controle; para controle de 0 até 10 passo 1 faça escreva( Este e o numero:, controle); fim para; fim; // Início do laço // Fim do laço