Lógica de Programação Unidade 1 PROF. FÁBIO CODO

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

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Algoritmos e Programação

ALGORITMOS AULA 1. Profª Amanda Gondim

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

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

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

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

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

Algoritmos e Programação

INTRODUÇÃO A PROGRAMAÇÃO

Disciplina de Algoritmos e Programação

Algoritmos e Programação

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

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

Algoritmos e Programação

Lógica de Programação

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

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

Técnicas de Programação

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

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

Capítulo 1 - Lógica e Algoritmos

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..

Algoritmos e Programação

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

Introdução à Programação Aula 02. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

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

Algoritmos e Linguagem de Programação I

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

Lógica de Programação

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

CONCEITO DE ALGORITMO

Computadores = cérebros eletrônicos?

Algoritmos e Fluxogramas

Fundamentos de Programação

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

Programação Básica de Computadores

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

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

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

I - CONCEITOS INICIAIS

#Conceituação. Algoritmos. Eliezio Soares

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

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Introdução à Algoritmia

Noções de algoritmos - Aula 1

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Programação de Redes de Computadores

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

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

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Algoritmos e Linguagem de Programação I

Apresentação da Disciplina

Estrutura de Dados e Lógica de Programação. Cátia Alves Marcelo Nunes 102 h/a 17/08/2015 a 12/12/2015

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

Fundamentos de Algoritmos (5175/31)

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

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

Conceitos Básicos de Algoritmos

2. Criação de Algoritmos

Desenvolvimento de algoritmos Desenvolvimento de Algoritmos

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

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

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

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

Objetivo: Desenvolver algoritmos a partir de problemas

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

Noções de algoritmos - Aula 1

Programação Estruturada Aula VisualG

Lógica de Programação I

TCC 00308: Programação de Computadores I Introdução

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

Unidade 2: Algoritmos e programação

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

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

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

Aula 7: Estrutura de Decisão

Prof. Jorge Cavalcanti

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

Transcrição:

Lógica de Programação Unidade 1 PROF. FÁBIO CODO O alvo de todo o bom professor é fazer com que homens tirem os olhos do mundo afim de que olhem para o céu, assim como o dever de todo o Teólogo não é entreter os ouvidos com algazarras, mas fortalecer o ensino através de coisas verdadeiras, certas e proveitosas (Joao Calvino).

Sumário Sumário 1. Seja, bem-vindos 1 2. Estrutura do Curso 2 3. Introdução 4 4. Aula 1 Introdução à Lógica de Programação 6 Resumo Financeiro Erro! Indicador não definido.

Pág. 01 Seja, bem-vindos Persistir é o verdadeiro segredo do sucesso 1. Seja, bem-vindos A todos os alunos e utilizadores deste curso, aqui as palavras de boasvindas. Estaremos juntos nos próximos meses e alguns detalhes são extremamente importantes acerca dos procedimentos a seguir visando um aproveitamento satisfatório. A ciência da programação, como outras, está intrinsicamente ligada a exercícios contínuos e rotineiros. Neste cenário os exercícios cobrados em aula bem como todos os exercícios propostos devem serem feitos. Cada grupo de exercício busca a fixação dos conceitos específicos bem como a técnica de apresentação dos exercícios leva ao exercício de conceitos já aprendidos. Como instruções preliminares é aconselhável: Atenção nas aulas Perguntas acerca de dúvidas Execução dos exercícios fora das aulas. Evitar faltas. Buscar leituras para reforço. Como mensagem de incentivo, programação não é uma arte, não é um dom. Claro existem pessoas com níveis de aptidão diferentes, mas como toda a ciência exata, através de treinamentos, os conceitos são fixados e agregados com as experiências proveitosas adquiridas ao longo do tempo. Para desenvolver um programa de computador é necessário analisar e entender o problema, inventar ou escolher uma solução, escrever um algoritmo, testá-lo e depurá-lo até que esteja completamente correto. Isto exige tempo, persistência e disciplina. As etapas mais importantes do trabalho são exatamente as primeiras, onde se cria a solução; por isto os maiores amigos do programador são papel e lápis e não o computador. O mais importante, qualquer ação realizada em nossas vidas, terá melhor resultado se executada com vontade. Faça com prazer os exercícios, em ambientes propícios buscando concentração de zelo pelo aprendizado.

Pág. 02 Estrutura do Curso 2. Estrutura do Curso Ementa Desenvolver com o aluno tanto a capacidade de elaborar algoritmos estruturados por refinamentos sucessivos para a solução de problemas computacionais. Desenvolvimento do raciocínio lógico computacional. Objetivos O Objetivo do curso é agregar o conhecimento necessário básico na área de algoritmos de forma que permita ao aluno o desenvolvimento na área de programação com uma linguagem em específico. Metodologia A Aulas serão presenciais onde o aluno estará dispondo de materiais básicos para a especificação dos algoritmos em papel, tendo como auxílio software de desenvolvimento de lógica de programação. Planejamento de Aula Introdução à Lógica de Programação e as técnicas de especificação de algoritmos (Pseudocódigo e Fluxograma). Pseudocódigo e Fluxograma Variáveis e Constantes Operadores lógicos e aritméticos Estrutura condicional simples Estrutura condicional com seletor Laços de repetição (Enquanto) Laços de repetição (Faça - Enquanto) Laços de repetição (Para - Ate) Vetores Matrizes Funções Recursão. Projeto Integrado;

Pág. 03 Estrutura do Curso

Pág. 04 Introdução 3. Introdução O que é programação Entende-se como um conjunto de técnicas que envolvem o projeto de códigos de computador. É uma ciência vasta onde o processo de execução das técnicas de programação envolve fases bem determinadas. Dentre as fases podemse identificar: Especificação do programa Projeto do programa Codificação do programa Análise e testes do programa Manutenção e evolução do programa Retirada do programa de funcionamento. Dentro das etapas da programação, o foco do curso é trabalhar com a especificação e projeto do programa. Especificar um programa contempla o entendimento completo da real necessidade proposta. É muito comum se encontrar diversas soluções para o mesmo problema porque as identificações das soluções estão diretamente relacionadas a experiência na área da programação. Um bom exemplo é o fato de buscarmos resolver um problema de localização de um item no armário. Pessoas distintas terão visualizações bem peculiares do problema. Podemos chegar a mesma solução, mas com passos um pouco diferentes conforme exemplo: 1. Identifica a locação do armário 2. Identifica a Porta do armário 3. Abre a porta do armário 4. Verifica se o café encontra-se no local 5. Se o café for encontrado, retirase o café 6. Fecha a porta do armário 1. Abre a porta do armário 2. Retira-se o café 3. Fecha a porta do armário Analisando as duas soluções resolvem o mesmo problema da retirada de um item do armário, mas com percepções diferentes. Tais percepções é dado o nome de Abstração ; Algoritmo O primeiro termo técnico que surge na área é Algoritmo. Pode-se utilizar uma boa definição para o termo: Formalmente é uma sequência finita de passos que levam à execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica (FORBELLONE et al., 2005).

Pág. 05 Introdução Qualquer algoritmo pode ser expresso em muitas maneiras diferentes: em português ou em uma mistura de português e programação denominado pseudocódigo. Outra técnica utilizada na confecção de algoritmos são os diagramas de blocos, conhecidos também como Fluxogramas. Algoritmo NÃO É UM programa É importante ressaltar que existe uma diferença entre algoritmo e programa. Algoritmo define como resolver um determinado problema enquanto a programação nos diz como o a resolução do será expresso em termos computacionais (Implementada) tendo como produto final o programa. Pseudocódigos É uma forma genérica de escrever um algoritmo, utilizando uma linguagem simples (nativa a quem o escreve, de forma a ser entendida por qualquer pessoa) sem necessidade de conhecer a sintaxe de nenhuma linguagem de programação. Fluxogramas. Definem-se como a representação gráfica de um procedimento, problema ou sistema, cujas etapas ou módulos são ilustrados de forma encadeada por meio de símbolos geométricos interconectados. Um exemplo de Fluxograma Figura xx = Exemplo de Algoritmo

Pág. 06 Aula 1 Introdução à Lógica de Programação Lógica pode ser vista como a arte de pensar corretamente. A lógica visa a colocar ordem no pensamento (FARRER, 1999) 4. Aula 1 Introdução à Lógica de Programação Objetivos: Integrar o aluno no exercício da lógica de programação nivelando a condição de entendimento do grupo. O primeiro desafio, é a integração ao contexto de lógica de programação. Para isso utiliza-se a filosofia como um exemplo: Tomemos o seguinte raciocínio: Todos os homens são mortais. Sócrates é homem. Logo, Sócrates é mortal. Aplicando-se as palavras lógico e lógica, retorna-se inevitavelmente ao pensamento que se origina da Filosofia grega, quando a palavra logos significando linguagem-discurso e pensamento-conhecimento conduziu os filósofos a indagar se o logos obedecia ou não a regras, possuía ou não normas, princípios e critérios para seu uso e funcionamento. A lógica também é uma das disciplinas importantíssimas da filosofia, e pode ser considerada uma disciplina introdutória para qualquer estudo filosófico. Isso acontece porque a lógica lida com raciocínios e argumentos, e raciocínios e argumentos fazem parte de qualquer reflexão filosófica, seja ela no campo da teoria do conhecimento, da ética, da filosofia política ou da estética. Hoje em dia temos a lógica tradicional e a lógica matemática ou simbólica. A lógica tradicional é mais simples e mais acessível que a lógica matemática, mas nem por isso tem menos importância. Pelo contrário, a lógica matemática desenvolveu-se graças aos avanços da lógica tradicional. A base da lógica tradicional foi formulada pelo filósofo grego Aristóteles e foi reelaborada durante a Idade Média. Na segunda metade do século 19 a lógica teve um enorme desenvolvimento até chegar a seu estágio atual, a lógica matemática ou simbólica. Observe agora outros exemplos: Todos os professores estão cansados, O João é um professor Logo concluímos que João está cansado.

Entrada, Processamento Saída Pág. 07 Aula 1 Introdução à Lógica de Programação Um bom exemplo para treinar João corre muito toda a manha junto a uma equipe com todos os programadores. Marcos é um programador da equipe, portanto... A Lâmpada queimou, somente o nosso pai sabe trocá-la, estamos todos a noite do escuro e o nosso pai chegou, portanto... A Função da lógica de programação. O principal objetivo do pensamento lógico, é a resolutividade de problemas através de algoritmos. Para a construção de algoritmos é inevitável o desenvolvimento de um pensamento sistematizado e lógico. A observação e análise dos fatores com o pensamento estruturado levam sempre as melhores soluções. Desenvolvendo algoritmos. Como já dito, algoritmos é uma sequência de passos que nos leva a resolução de um problema. Um algoritmo quando programado num computador é constituído pelo menos 3 partes, sendo elas: 1. Entrada de dados; 2. Processamento de dados; 3. Saída de dados;. Figura xxx Funcionamento Algoritmo são fornecidas as informações necessárias para que o algoritmo possa ser executado. Estas informações podem ser fornecidas no momento em que o programa está sendo executado ou podem estar embutidas dentro do mesmo. são verificadas todas as expressões algébricas, relacionais e lógicas, assim como todas as estruturas de controle existentes no algoritmo (condição e/ou repetição) e tudo e processado. todos os resultados do processamento (ou parte deles) são enviados para um ou mais dispositivos de saída, como: monitor, impressora, ou até mesmo a própria memória do computador.

Pág. 08 Aula 1 Introdução à Lógica de Programação Para uma ótima ilustração um bom exemplo: Representação de algoritmos. Para o desenvolvimento de um algoritmo eficiente é necessário obedecermos algumas premissas básicas no momento de sua construção: Definir ações simples e sem ambiguidade. Organizar as ações de forma ordenada. Estabelecer as ações dentro de uma sequência finita de passos. Verificamos um bom exemplo: Problema: Trocar uma lâmpada. Sequência de Passos para Solução: 1. Pegue uma escada; 2.Coloque a escada embaixo da lâmpada; 3. Pegue uma lâmpada nova; 4. Suba na escada; 5. Retire a lâmpada velha; 6. Coloque a lâmpada nova O é um exemplo simples de algoritmo (sem condições ou repetições). Os algoritmos são capazes de realizar tarefas como: Ler e escrever dados; Avaliar expressões algébricas, relacionais e lógicas; Tomar decisões com base nos resultados das expressões avaliadas; Repetir um conjunto de ações de acordo com uma condição; Para o desenvolvimento de um algoritmo eficiente é necessário obedecermos algumas premissas básicas no momento de sua construção: Processo de construção de algoritmos. Para uma construção eficiente de algoritmos, pode-se utilizar um conjunto de perguntas que auxiliam na elaboração e organização da solução.

Pág. 09 Aula 1 Introdução à Lógica de Programação Situação inicial Objetivo Recursos Já temos todos os dados de entrada? Esses dados são específicos a uma única situação ou podemos generalizar? Existe alguma notação para representar de forma sucinta os dados e os estados intermediários? Quais são os objetivos? Há um único objetivo, ou são vários? Cada objetivo pode ser dividido em sub-objetivos, ou não? Os (sub-)objetivos são independentes, ou não? Há obstáculos a serem vencidos? Como podem ser vencidos? Há restrições na elaboração da solução? (tempo, espaço em memória, custo) Para cada recurso, há restrições ou pré-condições para sua aplicação? Há outros recursos mais simples que satisfaçam essas pré-condições? Quando você aplica um recurso, o que muda? (variantes) Quando você aplica um recurso, o que permanece igual? (invariantes) Há outros recursos mais poderosos para resolver esse problema? Resolvendo um Algoritmo. Dado um exemplo: Elabore um algoritmo que indique como fazer uma prova. Faça o algoritmo pensando que o aluno não deve deixar questões em branco; assim, deve continuar fazendo a prova enquanto existir questão em branco e o tempo de prova não tiver acabado. Além disso, o aluno só deve resolver uma questão se souber resolvê-la, senão pula para a próxima. 1- Primeiro Passo da resolução de um algoritmo Para resolver o algoritmo, o primeiro passo é lermos o problema, entendermos e isolarmos em parte: Entrada: Qual a informação de entrada? Prova Existe alguma situação adicional? Não

Pág. 10 Aula 1 Introdução à Lógica de Programação Processamento: O que deve ser feito? Resolver toda a prova Condições? Responde a pergunta se souber, senão pula. Quando finaliza? Quando todas as perguntas estiverem respondidas. Saída: Qual o resultado final? Avaliação resolvida. 2- Segundo Passo estruturação passo a passo Para resolver o algoritmo, o segundo passo é isolarmos os passos de cada etapa. Entrada: O aluno recebe a avaliação Processamento: Saída: Verifica se sabe responder a pergunta Caso sim, responde a pergunta. Verifica se ainda existe pergunta a responder. Caso sim verifica próxima pergunta. Caso não finaliza Avaliação totalmente respondida. Exercícios de Fixação Suponha que você tenha uma caixa cheia de bolas. Nessa caixa existem bolas azuis e bolas vermelhas. Além disso, você tem também duas caixas vazias. Vamos chamar a caixa que contém as bolas de caixa 1 e as duas caixas vazias de caixa 2 e caixa 3. Neste contexto, escreva um algoritmo que defina como tirar todas as bolas da caixa 1, colocando as bolas azuis na caixa 2 e as bolas vermelhas na caixa 3. José trabalha no departamento de recursos humanos de uma empresa. A empresa de José definiu que os salários dos empregados serão aumentados seguindo a seguinte regra: caso o salário seja menor que R$ 1.000,00, o aumento será de 10%; caso contrário, será de 8%. José recebeu uma lista contendo os nomes e salários de todos os funcionários da empresa e foi solicitado que calculasse o novo salário desses funcionários. Assim, escreva um algoritmo para que José calcule corretamente os novos salários. Desafio de lógica: Três missionários e três canibais encontram-se na margem esquerda de um rio. Nessa margem também existe um bote que pode transportar uma ou duas pessoas. As seis pessoas pretendem todas

Pág. 11 Aula 1 Introdução à Lógica de Programação passar para a margem direita (usando o bote). No entanto, os missionários têm de arranjar um plano para consegui-lo de modo que, em nenhuma circunstância, existam missionários numa margem em minoria.

Pág. 12 Aula 02 Variáveis Aula 02 Variáveis missionários numa margem em minoria.

Pág. 13 Aula 03 Estruturas Condicionais Aula 03 Estruturas Condicionais