Lógica de Programação I

Documentos relacionados
Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

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

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

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

Algoritmo. pegar uma escada; posicionar embaixo da lâmpada; buscar uma lâmpada nova; ligar o interruptor; se a lâmpada não acender, então:

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

Universidade Federal de Goiás Instituto de Informática

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian

Algoritmos I Aula 2 Lógica de Programação

UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS

01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução.

LÓGICA E LINGUAGEM DE PROGRAMAÇÃO. Introdução

ALGORITMOS AULA 1. Profª Amanda Gondim

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

Ensinando a Programação

Algoritmos e Programação de Computadores Disciplina:

INTRODUÇÃO À PROGRAMAÇÃO. Introdução à Algoritmos. Prof. Me. Sérgio Carlos Portari Júnior

#Conceituação. Algoritmos. Eliezio Soares

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

Lógica de Programação

Algoritmos I Aula 3 Resolução de Problemas (Fluxogramas)

Prof. Paulo Villa Aula 1

Algoritmo: Definição. Algoritmo. O que é Lógica? Lógica de Programação. Mas e a Lógica de Programação?

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

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

Algoritmos. Prof. Jonatas Bastos Site:

Introdução ao Conceito de Algoritmo e Programação Estruturada

Algoritmos e Programação

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

Arquitetura Genérica de um Computador (Máquina de Von Neumann): Diagrama conhecido como Máquina de Von Neumann (grande nome da informática).

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

Lógica de Programação

Algoritmos e Programação

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

Algoritmos e Programação

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

CONCEITO DE COMPUTADOR. O que é um computador?

CONCEITO DE ALGORITMO

1 - INTRODUÇÃO. Portanto, um programa é a codificação de um algoritmo em uma linguagem de programação. (ASCENCIO;CAMPOS, 2007)

Introdução a Algoritmos

LÓGICA DE PROGRAMAÇÃO. Prof. Welber Ribeiro da Silva

Computação I: Representações de Algoritmos

É neste ponto que entra o conceito de lógica de programação.

Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno

Unidade III LÓGICA. Profª. Adriane Paulieli Colossetti

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

Fundamentos de Programação Introdução

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

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

Programação Básica de Computadores

Algoritmos e Linguagem de Programação I

Seguindo Instruções. Linguagens de Programação Algoritmos. Introdução à Ciência da Computação. Prof. Edison Ishikawa

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Programação Procedimental

Desenvolvimento de algoritmos Desenvolvimento de Algoritmos

Capítulo 1 Conceitos Básicos

Aula 02 ALGORITMOS. Introdução à Computação

Disciplina de Algoritmos e Programação

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

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

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

Lógica de Programação

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. ANÁLISE E DESENVOLVIMENTO DE SISTEMAS/PARANGABA PROF. MS. RONNISON REGES VIDAL Ceará, 01 de fevereiro de 2017

Unidade 2: Algoritmos e programação

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

INFORMÁTICA APLICADA AULA 01 ALGORITMOS

INTRODUÇÃO A ALGORITMOS

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano

NB217 Algoritmos e Estruturas de Dados I CAPÍTULO I. Profa. Rosanna Mara Rocha Silveira. Fevereiro/ Versão 4.1 CAPÍTULO I LÓGICA

Introdução à Algoritmia

Fluxogramas. Vanessa Braganholo

Algoritmo. Conjunto finito de instruções que permitem a realização de uma tarefa. 2.1: Introdução 2. ALGORITMOS

Lógica de Programação I

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

Introdução à Programação. João Manuel R. S. Tavares

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

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

ALGORITMOS E ESTRUTURAS DE DADOS I (Parte 1)

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES

Algoritmos. Prof. Jonatas Bastos

Algoritmos e Linguagem de Programação I

Lógica de Programação e Algoritmos. Prof. André Y. Kusumoto

Transcrição:

Gilson de Souza Carvalho gaucho.gilson@hotmail.com 1

ALGORITMIZANDO A LÓGICA Por que é Importante Construir um Algoritmo? Um algoritmo tem por objetivo representar mais fielmente o raciocínio envolvido na Lógica de Programação e, dessa forma, permite-nos abstrair de uma série de detalhes computacionais, que podem ser acrescentados mais tarde. 2

Outra importância da construção dos algoritmos é que, uma vez concebida uma solução algorítmica para um problema, esta pode ser traduzida para qualquer linguagem de programação. Costumamos denominar esse processo de codificação. Vamos a um Exemplo? A troca de uma lâmpada. 3

Algoritmo 1.1 Lógica de Programação I pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. 4

Involuntariamente, já seguimos uma determinada sequência de ações que representadas nesse algoritmo, fazem com que ela seja seguida naturalmente por qualquer pessoa, estabelecendo um padrão de comportamento, pois qualquer pessoa agiria da mesma maneira. A sequenciação é uma convenção com o objetivo de reger o fluxo de execução do algoritmo, determinando qual a primeira ação a ser executada e qual ação vem a seguir. Nesse caso, a sequência é linear, de cima para baixo. 5

O algoritmo tem um objetivo bem definido: trocar uma lâmpada. Porém, e se a lâmpada não estivesse queimada? A execução das ações conduziria a uma troca, independentemente de a lâmpada estar ou não queimada, porque não foi prevista essa possibilidade em sua construção. A solução seria acrescentar um teste, a fim de verificar se a lâmpada está ou não queimada. 6

Algoritmo 1.2 Lógica de Programação I pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; acionar o interruptor; se a lâmpada não acender, então subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. 7

Agora estamos ligando algumas ações à condição lâmpada não acender, ou seja, se esta condição for verdadeira (lâmpada queimada) efetuaremos a troca da lâmpada, seguindo as próximas ações: subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. 8

Se a condição lâmpada não acender for falsa (a lâmpada está funcionando), as ações relativas à troca da lâmpada não serão executadas, e a lâmpada (que está em bom estado) não será trocada. O algoritmo está correto, visto que atinge seu objetivo, porém, pode ser melhorado, uma vez que buscamos uma escada e uma lâmpada sem saber se serão necessárias. 9

Algoritmo 1.3 Lógica de Programação I acionar o interruptor; se a lâmpada não acender, então pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. 10

A solução apresentada está aparentemente adequada, porém, não prevê a possibilidade de a lâmpada nova não funcionar e, portanto, não atingir o objetivo nesta situação específica. Podemos fazer um refinamento, uma melhoria no algoritmo, de tal modo que se troque a lâmpada diversas vezes, se necessário, até que funcione. 11

Algoritmo 1.4 Lógica de Programação I acionar o interruptor; se a lâmpada não acender, então pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. se a lâmpada não acender, então 12

retirar a lâmpada queimada; colocar outra lâmpada nova; se a lâmpada não acender, então retirar a lâmpada queimada; colocar outra lâmpada nova; se a lâmpada não acender, então... Até quando??? 13

Notamos que o Algoritmo 1.4 não está terminado, faltou especificar até quando será feito o teste da lâmpada. As ações cessarão quando conseguirmos colocar uma lâmpada que acenda; caso contrário, ficaremos testando indefinidamente. Podemos, então, expressar uma repetição de ação sem repetir o texto que representa a ação, assim como determinar um limite para tal repetição, com o objetivo de garantir uma condição de parada, ou seja, que seja cessada a atividade de testar a lâmpada nova quando esta já estiver acesa. Uma solução seria: 14

Algoritmo 1.5 Lógica de Programação I acionar o interruptor; se a lâmpada não acender, então pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. enquanto a lâmpada não acender, faça retirar a lâmpada queimada; colocar outra lâmpada nova; 15

A condição lâmpada não acender permaneceu, e estabelecemos um fluxo repetitivo que será finalizado assim que a condição de parada for falsa, ou seja, assim que a lâmpada acender. Percebemos que o número de repetições é indefinido, porém, é finito até alcançar o objetivo: trocar a lâmpada queimada por uma que funcione. 16

Até agora estamos efetuando a troca de uma única lâmpada, na verdade, estamos testando um soquete (acionado por um interruptor), trocando tantas lâmpadas quantas forem necessárias para assegurar que o conjunto funcione. O que faríamos se tivéssemos mais soquetes a testar, por exemplo, 10 soquetes? 17

Algoritmo 1.6 Lógica de Programação I acionar o interruptor do primeiro soquete; se a lâmpada não acender, então pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. enquanto a lâmpada não acender, faça retirar a lâmpada queimada; colocar outra lâmpada nova; 18

acionar o interruptor do segundo soquete; se a lâmpada não acender, então pegar uma escada; posicionar a escada embaixo da lâmpada;... acionar o interruptor do terceiro soquete; se a lâmpada não acender, então... acionar o interruptor do décimo soquete; se a lâmpada não acender, então... 19

Observamos que o Algoritmo 1.6 é apenas um conjunto de 10 repetições do Algoritmo 1.5, uma vez para cada soquete, havendo a repetição de um mesmo conjunto de ações por um número definido de vezes: 10. Como o conjunto de ações tem uma forma repetida, poderíamos alterar o fluxo seqüencial de execução de modo a fazer com que este voltasse a executar o conjunto de ações relativas a um único soquete (Algoritmo 1.5) tantas vezes quantas fossem desejadas. Uma solução para 10 soquetes seria: 20

Algoritmo 1.7 ir até o interruptor do primeiro soquete. enquanto a quantidade de soquetes testados for menor ou igual que dez, faça acionar o interruptor do soquete; se a lâmpada não acender, então pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova. enquanto a lâmpada não acender, faça retirar a lâmpada queimada; colocar outra lâmpada nova; ir até o interruptor do próximo soquete; 21

Quando a condição ( quantidade de soquetes testados for menor ou igual a dez ) for verdadeira, as ações responsáveis pela troca ou não de um único soquete serão executadas. Caso a condição de parada seja falsa, ou seja, todos os dez soquetes já tiverem sido trocados, nada mais será executado. 22

6. DE QUE MANEIRA REPRESENTAMOS O ALGORITMO? Convém enfatizar mais uma vez que um algoritmo é uma linha de raciocínio, que pode ser descrito de diversas maneiras, de forma gráfica ou textual. Os algoritmos representados até o momento estavam em forma textual, usando português coloquial. As formas gráficas são mais puras por serem mais fiéis ao raciocínio original, substituindo um grande número de palavras por convenções de desenhos. 23

Inicio ou Fim Entrada de Dados Processamento Decisão Saída de Dados 24

Para fins de ilustração mostraremos como ficaria o Algoritmo 1.7 representado graficamente em um fluxograma tradicional. 25

Para fins de ilustração mostraremos como ficaria o Algoritmo 1.7 representado graficamente em um fluxograma chapin. 26

Até agora vimos as formas gráficas, mas existe outra, que é uma técnica narrativa denominada pseudocódigo, também conhecida como português estruturado ou chamada por alguns de portugol. A forma original de escrita é conhecida como inglês estruturado, muito parecido com a notação da linguagem de programação. A seguir, é apresentado um exemplo desse tipo de algoritmo. 27

Portugol (pseudocódigo) 28

Linguagem C Lógica de Programação I 29

30