Algoritmos e Técnicas - Lógica -

Documentos relacionados
PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

Algoritmos Lógica e Programação

Noções de Lógica Algoritmos e Lógica de Programação. Reinaldo Gomes

Introdução a Programação de Jogos IUE1503

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

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

Introdução a Programação

Introdução à Programação de Computadores Parte II

Noções de algoritmos - Aula 1

LÓGICA COMPUTACIONAL. Prof. André Aparecido da Silva Disponível em:

Algoritmos Computacionais

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

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

Algoritmos e Programação

BCC 701 Programação de Computadores I

Sistema Computacional

Lógica para programação II Seção 1 - Histórico e Introdução Primeiros Programas

Algoritmos e Lógica de Programação. Notas de Aula

Computação Eletrônica

Introdução à Programação de Computadores Parte I. Componentes Básicos do Computador e de um Programa

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

Desenvolvimento de Algoritmos. Slides elaborados pela Prof(a). Simone do Rocio Senger de Souza ICMC/USP

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

Projeto de Algoritmos

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

Aula 02. Algoritmos e Pseudocódigo

INTRODUÇÃO A PROGRAMAÇÃO

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

Linguagem Computacional

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

Algoritmos - 2. Alexandre Diehl. Departamento de Física - UFPel

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

Fundamentos de Programação Introdução

Engenharia Civil. Introdução à Programação

Lógica de Programação Lógica, Conceitos; Fluxo de Controle

4) Defina o que vem a ser um algoritmo, e porque, o mesmo depende do processo.

Unidade 1 Conceitos básicos

Computação. Introdução

Ivanovitch Medeiros Dantas da Silva. Natal, 01 de setembro de 2011

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Unidade 2: Algoritmos e programação

Algoritmos. Um algoritmo pode ser expresso de diversas maneiras, dentre elas: Linguagem Natural Fluxograma Pseudocódigo Linguagem de Programação

CURSO de NIVELAMENTO INTRODUÇÃO À PROGRAMAÇÃO

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

SEBENTA INTRODUÇÃO Á ALGORITMIA

Introdução à Programação. Conceitos Básicos de Programação

Aula 1: Desenvolvimento de Algoritmos

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

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

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

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação

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

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa

Ciência da Computação A&P

Introdução aos Algoritmos

Programação de Computadores I

Conceitos Básicos de Algoritmos

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

Introdução a programação Visão geral

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

TÉCNICO DE INFORMÁTICA - SISTEMAS

Oficina de Python Prof. Me. José Carlos Perini

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

Capítulo 1 Conceitos Básicos

BCC 701 Programação de Computadores I

Estruturas condicionais

ALGORITMOS AULA 1. Profª Amanda Gondim

Métodos para a construção de algoritmo

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

Introdução aos Algoritmos

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Programação Estruturada

Oficina de Python Prof. Me. José Carlos Perini

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26

Introdução à Programação. slides de Deise Sacol

Lógica de Programação FORBELLONE, André Luis e EBERSPACHER, Henri (PLT)

TÉCNICO EM MANUTENÇÃO E SUPORTE EM INFORMÁTICA FORMA SUBSEQUENTE. Professora: Isabela C. Damke

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

Arquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;

Algoritmia e Programação APROG. Algoritmia 1. Lógica Proposicional (Noções Básicas) Nelson Freire (ISEP DEI-APROG 2013/14) 1/12

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

Introdução aos Algoritmos

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:

Conceitos Básicos de Programação - Algoritmos

Desenvolvimento de Algoritmos. RAD 2119 Tecnologia de Informação Aplicada a Administração. Essa aula. Lógica e Pensamento Lógico. Lógica.

#Conceituação. Algoritmos. Eliezio Soares

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 06. Algoritmos e Programação. Informática II. q Noções de lógica

Algoritmos e Técnicas de Programação

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo.

Lógica de Programação I. Gilson de Souza Carvalho

Algoritmos e Programação

Estruturas de Seleção Seleção Simples e Composta (parte 1)

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

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

CAPÍTULO 2 TIPO DE DADOS

PLANIFICAÇÃO ANUAL Documentos Orientadores: Programa da disciplina

Introdução à Programação. Ceça Moraes

Transcrição:

Algoritmos e Técnicas - Lógica - Algoritmo textual informal Modo de preparo: Quão cremoso?!? Bata a margarina, as gemas e o açúcar até ficar cremoso Quanto tempo?!? Junte o leite, o coco e a farinha e continue batendo De uma vez só?!? Acrescente o fermento e, por último, as claras em neve Quanto tempo?!? Unte uma forma com manteiga e leve ao forno para assar 1

Algoritmo textual informal Modo de preparo (refinado): Bata a margarina, as gemas e o açúcar por 15 minutos Junte o leite, o coco e a farinha e continue batendo por mais 15 minutos Acrescente 20 g de fermento e, por último, as claras em neve Unte uma forma com manteiga e leve ao forno para assar por 30 minutos Algoritmo: Problemas Complexos Problema da Torre de Hanói Seja a seguinte situação: deve-se mover todos os discos do primeiro eixo para o terceiro mantendo-se a ordem original em cada movimento, pode-se mover apenas um disco um disco nunca poderá ser sobreposto por outro maior 2

Algoritmo: Problemas Complexos Passo 1: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos Passo 2: mova disco médio para segundo eixo 3

Algoritmo: Problemas Complexos Passo 3: mova disco menor para segundo eixo Algoritmo: Problemas Complexos Passo 4: mova disco maior para terceiro eixo 4

Algoritmo: Problemas Complexos Passo 5: mova disco menor para primeiro eixo Algoritmo: Problemas Complexos Passo 6: mova disco médio para terceiro eixo 5

Algoritmo: Problemas Complexos Passo 7: mova disco menor para terceiro eixo Algoritmo: Problemas Complexos Seqüência de passos completa: Passo 1: mova disco menor para terceiro eixo Passo 2: mova disco médio para segundo eixo Passo 3: mova disco menor para segundo eixo Passo 4: mova disco maior para terceiro eixo Passo 5: mova disco menor para primeiro eixo Passo 6: mova disco médio para terceiro eixo Passo 7: mova disco menor para terceiro eixo 6

Lembre-se Não existe um algoritmo para construir algoritmos a criação de um algoritmo é um exercício de criatividade (conhecimento) e experiência (técnica e prática) O que é Programação? = ABSTRAÇÃO! A realidade é complexa e rica em detalhes! 7

Abstração Realidade O que você abstrai dessa realidade? Abstração O que é abstração? 8

Abstração Abstração = Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto 9

10

Abstração A tarefa de programar sistemas computacionais envolve o exercício constante da abstração da realidade e sua codificação em uma linguagem de programação Realidade Abstração + Programação Sistema de Locadora de Veículo Sistema Computacional O que é um Sistema Computacional? 11

Sistema Computacional Software Sistema Computacional Hardware Peopleware Sistema Computacional A programação de um sistema computacional pode ser resumida em 3 passos básicos Entrada Dispositivo de Entrada Processamento UCP Memória Saída Dispositivo de Saída 12

Sistema Computacional Exemplo 1 Exibir a média de dois números Entrada Dispositivo de Entrada Processamento UCP Memória Saída Dispositivo de Saída 6, 8 (6 + 8) / 2 7 Sistema Computacional Exemplo 2 Exibir se o aluno está aprovado ou reprovado Entrada Dispositivo de Entrada Processamento UCP Saída Dispositivo de Saída Memória Ana, 5, 3 Se (5+3)/2>=7 aprovado Senão reprovado Ana, reprovado 13

Sistema Computacional Unidade Central de Processamento (2) Unidade Lógica e Aritmética (1) Dispositivo de Entrada (3) Unidade de Controle (5) Dispositivo de Saída (4) Memória Principal Trajeto de dados Trajeto de sinais de controle Arquitetura de um computador hipotético Modelo de Von Neuman Programação de Sistema Computacional Tipos de Linguagens de Programação 1 - Totalmente codificadas em binário (0 s e 1 s) 2 - Usa instruções simbólicas para representar os 0 s e 1 s 3 - Voltadas para facilitar o raciocínio humano Linguagem de M á quina 0010 0001 1110 0010 0010 1111 0001 0001 0010 Baixo Nível Linguagem Assembly ( Mnem ô nica ) LOAD R1, val1 LOAD R2, val2 ADD R1, R2 Alto Nível Linguagem de Alto N í vel val2 = val1+val2 0011 0001 1111 STORE R1, val2 (1) (2) (3) 14

Noções de Lógica A lógica é o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto, sendo, portanto, um instrumento do pensar. É também a designação para o estudo de sistemas prescritivos de raciocínio, ou seja, sistemas que definem como se "deveria" realmente pensar para não errar, usando a razão, dedutivamente e indutivamente. Noções de Lógica Exemplos de aplicação da lógica O quarto está fechado e meu livro está no quarto. Então, preciso primeiro abrir o quarto para pegar o livro Rosa é mãe de Ana, Paula é filha de Rosa, Júlia é filha de Ana. Então, Júlia é neta de Rosa e sobrinha de Paula Todo mamífero é animal e todo cavalo é mamífero. Então, todo cavalo é animal Todo mamífero bebe leite e o homem bebe leite. Então, todo homem é mamífero e animal (mas não é um cavalo) 15

Atividade 1 (10min) Resolva os seguintes problemas de lógica P1 Uma lesma deve subir um poste de 10m de altura. De dia sobe 2m e à noite desce 1m. Em quantos dias atingirá o topo do poste? P2 - Três gatos comem três ratos em três minutos. Cem gatos comem cem ratos em quantos minutos? P3 - O pai do padre é filho do meu pai. O que eu sou do Padre? P4 - Se um bezerro pesa 75 kg mais meio bezerro, quanto pesa um bezerro inteiro? Atividade 1 (10min) P5 Qual o próximo número da seqüência 7,8,10,13,17,? P6 Um pai de 80kg e suas 2 filhas (40kg cada), precisam sair de uma ilha com um barco. Porém a capacidade do barco é de 80kg. Como farão para sair da ilha? P7 Usando uma jangada, um camponês precisa atravessar uma cabra, um leão e um fardo de capim para a outra margem do rio. A jangada só tem lugar para ele e mais outra coisa. O que ele deve fazer para atravessar o rio com seus pertences intactos? 16

RESPOSTAS - Atividade 1 R1-9(nove) dias. No nono dia a lesma sobe 2(dois) metros, atinge o topo e evidentemente não desce 1 metro R2 3 (três) minutos R3 Tio R4 150 (cento e cinqüenta) kg R5 22 R6 Vão as duas filhas. Uma delas volta. O pai sai. A outra filha volta. As duas filhas saem juntas. R7 - Primeiro leve a cabra, volte e pegue o capim; deixe o capim e leve a cabra de volta; deixe a cabra e leve o leão, depois é só voltar e pegar a cabra. Noções de Lógica Em Lógica um conceito importante é o de Proposição Você sabe o que é uma PROPOSIÇÃO? 17

Noções de Lógica Proposição: é um enunciado verbal, ao qual deve ser atribuído, sem ambigüidade, um valor lógico verdadeiro (V) ou falso (F). Exemplos de proposições: Robson Fidalgo é Professor (V) 3 + 5 = 10 (F) 5 < 8 (V) Contra-exemplos de Proposições: Onde você vai? 3 + 5 Os estudantes jogam vôlei. (quais?) Noções de Lógica Operações Lógicas: são usadas para formar novas proposições a partir de proposições existentes. Considerando p e q duas proposições genéricas, pode-se aplicar as seguintes operações lógicas básicas sobre elas Operação Símbolo Significado Negação ~ Não Conjunção ^ E Disjunção v OU Definindo a prioridade: Usar parênteses Ex:((p v q)^(~q)) ou Obedecer (~) > (^) > (v) 18

Noções de Lógica Tabela ^ (e) V ^ V = V V ^ F = F F ^ V = F F ^ F = F Tabela v (ou) V v V = V V v F = V F v V = V F v F = F Tabela ~ (Não) ~ V = F ~ F = V Tabela Verdade Noções de Lógica Exemplos de aplicação das operações lógica Considere: p = 7 é primo = (V) q = 4 é impar = (F) Então: 4 NÃO é impar = ~q = (~F) = (V) 7 NÃO é primo = ~p = (~V) = (F) 7 é primo E 4 NÃO é impar = p ^ ~q = (V ^ (~F)) = (V ^ V) = (V) 7 é primo E 4 é impar = p ^ q = (V ^ F) = (F) 4 é impar E 7 é primo = q ^ p = (F ^ V) = (F) 4 é impar E 7 NÃO é primo = q ^ ~p = (F ^ (~V)) = (F ^ F) = (F) 19

Noções de Lógica Exemplos de aplicação das operações lógica (Cont.) Considere: p = 7 é primo = (V) q = 4 é impar = (F) Então: 7 é primo OU 4 NÃO é impar = p v ~q = (V v (~F)) = (V v V) = (V) 7 é primo OU 4 é impar = p v q = (V v F) = (V) 4 é impar OU 7 é primo = q v p = (F v V) = (V) 4 é impar OU 7 NÃO é primo = q v ~p = (F v (~V)) = (F v F ) = (F) Noções de Lógica Exemplos de aplicação das operações lógica Resumindo: p q ~p p ^ q p v q V V F V V V F F F V F V V F V F F V F F Ou seja: Não (~) troca o valor lógico. Se é F passa a ser V e viceversa E (^) só tem valor V quando as duas proposições forem V, basta uma proposição ser F para o resultado ser F OU (v) só tem valor F quando as duas proposições forem F, basta uma proposição ser V para o resultado ser V 20

Atividade 2 Considerando p = V e q = F, resolva as seguintes expressões lógicas ~p ~q p ^ q p v q (~p) ^ q (~p) v q p ^ (~q) p v (~q) (~p) ^ (~q) (~p) v (~q) RESPOSTAS - Atividade 2 Considerando p = V e q = F, resolva as seguintes expressões lógicas ~p = F ~q = V p ^ q = F p v q = V (~p) ^ q = F (~p) v q = F p ^ (~q) = V p v (~q) = V (~p) ^ (~q) = F (~p) v (~q) = V 21

Lógica de Programação & Algoritmo O que é Programação de computadores? INSTRUÇÕES Instruções Delimitadoras Servem para especificar o início e o fim do algoritmo. início fim... 22

Declaração de Variáveis Utilizado para especificar os nomes e os respectivos tipos das variáveis necessárias no algoritmo declare <variáveis>: <tipo>; onde: <variáveis> - lista de nomes de variáveis separados por vírgula <tipo> - inteiro, real, caracter, string, lógico Declaração de Variáveis Exemplos: declare a,b,c: real; declare nome: string; declare sexo: caracter; declare pratica_esporte: lógico; 23

Bloco de Comentário Serve para explicar um determinado trecho do algoritmo, para torna-lo mais claro, facilitando seu entendimento por outras pessoas ou posteriormente. { <comentário> } Exemplo: { Isto é um exemplo de comentário } Instrução de Entrada Usada para ler dados de entrada do algoritmo. leia(<variáveis>); onde: <variáveis> - conterão os dados lidos. 24

Instrução de Entrada Exemplos: leia(a,b,c); leia(nome); leia(sexo); leia(pratica_esporte); Instrução de Saída Usada para mostrar os resultados do processamento dos dados de entrada. escreva(<resultados>); onde: <resultados> - geralmente é o conteúdo de uma ou mais variáveis com a resposta do problema. 25

Instrução de Saída Exemplos: escreva( O valor de D é:, D); escreva(nome, sexo); escreva( Pratica esporte. ); Instrução de Atribuição Utilizado para atribuir um determinado valor a uma variável. <variável> onde: <expressão>; <variável> - nome de uma variável <expressão> - um valor do mesmo tipo da variável ou uma expressão lógica ou aritmética. 26

Instrução de Atribuição Exemplos D B^2-4*A*C; nome Paulo ; Pratica_Esporte Sexo M ; TRUE; 27