Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes



Documentos relacionados
Algoritmos e Programação Parte Teórica

TÉCNICAS DE PROGRAMAÇÃO

Implementando uma Classe e Criando Objetos a partir dela

Organização de Computadores Software

Conceitos básicos da linguagem C

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Programação em papel quadriculado

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

1 INTRODUÇÃO 1.1 CONCEITO DE PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO PARADIGMAS DE LINGUAGEM DE PROGRAMAÇÃO

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

MANUAL DA SECRETARIA

Linguagens de. Aula 01. Profa Cristiane Koehler

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

Portal do Projeto Tempo de Ser

Desmistificando o Programa de Computador

SISTEMA MEDLINK E-TISS PASSO-A-PASSO (USE JUNTO COM A VÍDEO AULA)

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Programação de Computadores. Turma CI-180-B. Josiney de Souza.

ALGORITMOS E FLUXOGRAMAS

PROGRAMAÇÃO BÁSICA DE CLP

Como estudar o SIPIA CT

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Exercícios Teóricos Resolvidos

Orientação a Objetos

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Introdução a Computação

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

BSI Letramento Digital Prof. André Di Thommazo. Organização pessoal

Manual do Usuário - ProJuris Web - Biblioteca Jurídica Página 1 de 20

Dadas a base e a altura de um triangulo, determinar sua área.

Introdução à Engenharia de Computação

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

COMPUTAÇÃO APLICADA. Porém, é necessário considerar que ninguém ensina ninguém a pensar, pois todas as pessoas normais tem este dom.

Montagem e Manutenção. Luís Guilherme A. Pontes

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

Mas, como utilizar essa ferramenta tão útil e que está à sua disposição?

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

Aula 4 Estatística Conceitos básicos

O Planejamento Participativo

O Gerenciamento de Documentos Analógico/Digital

Computador Digital Circuitos de um computador (Hardware)

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Chegou a Hora da Nossa Feira Escolar de Matemática e Ciências

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

5 Considerações finais

Resolução de problemas e desenvolvimento de algoritmos

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Tópicos Avançados em Banco de Dados Gerenciamento de Transações em Banco de Dados. Prof. Hugo Souza

Descrição do Produto. Altus S. A. 1

Desenvolvimento de uma Etapa

Objetivo principal: aprender como definir e chamar funções.

4- PROJETO DE BANCO DE DADOS

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Especificação do Trabalho Prático

Cotagem de dimensões básicas

Lógica de Programação

COMO FUNCIONA NOSSA CONSULTORIA DE MARKETING DIGITAL ESPECIALIZADA EM VENDAS ONLINE

Figura 1: tela inicial do BlueControl COMO COLOCAR A SALA DE INFORMÁTICA EM FUNCIONAMENTO?

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Data 23/01/2008. Guia do Professor. Introdução

Definição de Programas de Computadores e Linguagem de Programação de Comutadores

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

Estruturas de Repetição

Projeto ECA na Escola - Plataforma de Educação à Distância

9 Comandos condicionais

Resolvendo problemas com logaritmos

Primeiros passos das Planilhas de Obra v2.6

Identificar as características de funcionamento do sistema operacional;

ICC Introdução para JavaScript

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Manual de Utilização do PDV Klavix

Tanto na visão semanal como diária você tem a sua disposição algumas opções uteis que facilitarão seu dia a dia.

Usando o do-file editor Automatizando o Stata

Professor: Venicio Paulo Mourão Saldanha Site:

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Desenvolvido por: Rafael Botelho

OBJETIVO VISÃO GERAL SUAS ANOTAÇÕES

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

X Encontro Nacional de Educação Matemática Educação Matemática, Cultura e Diversidade Salvador BA, 7 a 9 de Julho de 2010

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

INTERPRETANDO A GEOMETRIA DE RODAS DE UM CARRO: UMA EXPERIÊNCIA COM MODELAGEM MATEMÁTICA

UNIDADE 6 - PROGRAMAÇÃO MODULAR

Energia Eólica. Atividade de Aprendizagem 3. Eixo(s) temático(s) Ciência e tecnologia / vida e ambiente

Introdução às Bases de Dados

Q-Acadêmico. Módulo CIEE - Estágio. Revisão 01

MANUAL DE UTILIZAÇÃO DO SISTEMA HERMES

Plano de Aula de Matemática. Competência 3: Aplicar os conhecimentos, adquiridos, adequando-os à sua realidade.

Algoritmos e Programação de Computadores

Áudio GUIA DO PROFESSOR. Idéias evolucionistas e evolução biológica

Observação das aulas Algumas indicações para observar as aulas

Conhecendo o Decoder

Organização de programas em Python. Vanessa Braganholo

Introdução à Computação: Sistemas de Computação

Themis Serviços On Line - Publicações

SISTEMA DE BIBLIOTECAS DO IFRS

Manual do Teclado de Satisfação Online WebOpinião

Transcrição:

Pág 4 Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes 1 APRESENTAÇÃO DA UNIDADE CURRICULAR A unidade curricular de Lógica para a programação tem como objetivo promover o estudo dos principais conceitos de construção de algoritmos, através da utilização de uma linguagem de programação como estudo de caso. A lógica para programação será estudada juntamente com o uso da linguagem Python para a abordagem a construção de algoritmos juntamente com a abordagem das características da linguagem adotada. 2 UMA ABORDAGEM INICIAL O computador está em todos os lugares diariamente para as mais variadas tarefas. Ele executa instruções com linguagem de máquina, fornecendo como resultado informações processadas. Para tanto, existem dois elementos marcantes no processamento de informações: Dados considerados como todas as entradas no computador que não tem sentido sem o processamento; Informação considerados como os dados processados, reorganizados de maneira significativa sobre uma empresa, uma pessoa, etc. 2.1 LÓGICA As pessoas utilizam a lógica no seu cotidiano sem perceber; chegam mesmo a citá-la, sem entender direito o seu significado. Segundo o dicionário Aurélio, a lógica significa coerência de raciocínio, de ideias, ou ainda a sequência coerente, regular e necessária de acontecimentos, de coisas. Podemos perceber isto através dos seguintes exemplos: O número 3 é menor do que o número 5. O número 7 é maior do que o número 5. Logo, o número 3 é menor do que os números 5 e 7. Quando chove, não é preciso regar as plantas do jardim. Hoje choveu. Logo, não é preciso regar as plantas do jardim. Às vezes, o raciocínio funciona desordenadamente. Quantas vezes já foi ouvida a seguinte frase: E se acontecer aquilo?, ou É, mas eu não tinha pensado nisso. 2.2 LINGUAGENS DE PROGRAMAÇÃO EM USO Linguagem de máquina: Onde a representação simbólica de ligado (1) e desligado (0) especifica as ações a serem tomadas. Linguagem Assembly: Onde a representação simbólica de instrução na CPU especifica as ações. Linguagens de Alto nível: Consiste na linguagem mais próxima do homem. Necessitam de interpretadores e compiladores.

Pág 5 Existem linguagens que são consideradas como procedimentais e não procedimentais, como procedimentais temos: o o o Pascal, Cobol, C, C++: Linguagem de programação estruturada; Visual Basic, Delphi: linguagem de programação orientada a eventos; Java, Phyton, PHP: linguagem de programação orientada a objetos; Como exemplo de linguagens não procedimentais temos: SQL o Utilizada em aplicações para banco de dados para especificar os resultados desejados em uma busca. 2.3 PROGRAMA Consiste no conjunto de instruções feitas para serem executadas por um computador, que passam por algumas fases antes de sua forma final em linguagem de alto nível(pascal, C, Fortran, etc). A tarefa do Programador é elaborar um programa em linguagem de alto nível (programa fonte) e submetê-lo a um processo de compilação (transformação do programa em linguagem de alto nível para a linguagem de máquina). 2.3.1 ETAPAS DE UM PROGRAMA Normalmente um programa passa por várias etapas, e simplificando podemos destacar as etapas de levantamento e análise de dados, projeto lógico e projeto físico Levantamento e análise de dados: Como o nome explica, sugere a etapa de conhecimento de campo. Onde o programador ou a equipe de analistas determina quais serão as necessidades para que possam ser automatizadas por computador e prevê como poderão ser feitas antecipadamente. Projeto Lógico: Normalmente é um detalhamento do processo de análise e especificação de como será o fluxo dos dados. Todas as tarefas que o sistema deve automatizar são detalhadas e divididas para um melhor entendimento do programador. É um esboço de como o programa ficará no futuro. Projeto Físico: É a etapa de criação da lógica do programa e também de sua real construção com uso de uma linguagem de programação. Uma das técnicas mais utilizadas é chamada de português estruturado, onde as etapas lógicas são descritas em uma linguagem mais amigável ao ser humano e depois passadas realmente a linguagem de programação de fato. 3 INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO Pode considerar-se como lógica de programação em processamento de dados como a maneira pela qual se representa em linguagem corrente, ou por meio de símbolos que expressam esta linguagem, instruções que compõem um programa a ser executado por computador. Existem algumas formas para se representar a lógica de programação atualmente, e a mais utilizada é o algoritmo e suas formas de representação. 3.1 ALGORITMO Pode ser considerado uma sequência de procedimentos finitos que, se forem executados em um determinado período de tempo chegará ao seu objetivo. Os algoritmos independem da linguagem de programação utilizada. O objetivo da construção de Algoritmos é que eles possam ser adaptados a qualquer linguagem de programação. Como exemplo, tomemos uma sequência como fazer café, por exemplo: 1. Encher a chaleira de água;

Pág 6 2. Colocar a chaleira para ferver; 3. Preparar o porta-filtro com o filtro sobre o bule; 4. Colocar duas colheres de pó de café no filtro; 5. Se a água estiver fervendo, acrescentar meio litro de água ao filtro; Senão continue esperando; 6. Aguardar coar; 7. Adoçar a gosto; Provavelmente, se pensar um pouco poderemos elaborar maneiras mais eficientes de fazer o café, como por exemplo: 1. Encher a chaleira de água; 2. Colocar a chaleira para ferver; 3. Enquanto a chaleira estiver no fogo; 4. Preparar o porta-filtro com o filtro sobre o bule; 5. Se houver café, coloque duas colheres de sopa de pó no filtro; 6. Senão, desligue a chaleira, vá até o mercado comprar café; 7. Repita os itens 2, 3 e 5; 8. Após a água ter fervido, acrescente aos poucos meio litro de água sobre o filtro; 9. Aguarde coar; 10. Adoce a gosto; OBSERVAÇÕES IMPORTANTES: Todo algoritmo é composto por instruções finitas e bem definidas, com o objetivo de resolver um problema proposto. É um caminho para a solução de um problema. Sabemos que os caminhos que levam a uma solução são muitos, alguns mais curtos, outros mais longos, mas o importante é chegar ao objetivo; A Instrução nada mais é do que um comando. As instruções escritas em linguagem de programação são chamadas de programas. A diferença é que utilizam linguagens de programação com formas de escrita diferentes; Não existe apenas um algoritmo para a solução de um problema;

Pág 7 3.2 FORMAS DE REPRESENTAÇÃO DE UM ALGORITMO Existem 3 formas de representar um algoritmo: Forma de Representação Significado Exemplo VARIAVEIS PSEUDOCÓDIGO (Ou português estruturado); As estruturas lógicas são escritas em uma linguagem próxima ao português, na sequência em que são executadas. Características: Fácil de aprender; Fácil de converter para programação; Melhor de representar programas maiores; IDADE, ANO, TEMPO TEMPO = 0 INÍCIO FACA ENQUANTO TEMPO<10 LEIA IDADE TEMPO = TEMPO + 1 FIM ENQUANTO ESCREVER TEMPO FLUXOGRAMA DIAGRAMA DE CHAPIN; É estruturado. As estruturas lógicas são expressas através de figuras geométricas, interligadas por setas que indicam o caminho a ser seguido Características: Fácil de compreender; Bom para construir e visualizar pequenos programas; Difícil quando o algoritmo fica grande; Não é estruturado. As estruturas lógicas são representadas por figuras representadas, colocadas uma após a outra, de cima para baixo. Características: Fácil de compreender ler e converter para linguagem de programação; ESCREVER IDADE + TEMPO

Pág 8 É estruturado; Bom para pequenos programas; Difícil de desenhar quando o programa fica grande. 3.2.1 PASSOS PARA A CONSTRUÇÃO DE UM ALGORITMO Com base nos conceitos abordados, podemos então definir alguns passos para a construção de algoritmos quando na sua construção: 1) Identificar o problema (objetivo) mediante leitura atenta de seu enunciado; 2) Identificar os dados que devem ser fornecidos e, a partir deles, verificar se desenvolverão os cálculos/processamento; 3) Identificar a saída de dados, que devem ser gerados como o resultado da solução; 4) Determinar o que deve ser feito para transformar as entradas de dados em saídas de dados desejadas, observando todas as regras e limitações do agente executante do algoritmo (computador); 5) Construir o algoritmo, utilizando uma forma de representação de algoritmos; 6) Testar a solução. Esta etapa se refere a execução de todas as ações do algoritmo, seguindo o fluxo estabelecido para verificar se ele está realmente gerando os resultados esperados ou detectar possíveis erros no seu desenvolvimento; OBSERVAÇÕES IMPORTANTES: Quando falamos de algoritmos para solucionar problemas, estamos na verdade nos referindo a uma codificação organizada, mais simples, sem nos atermos às formas rígidas das linguagens e também de forma clara e lógica; É possível também afirmar que um algoritmo consiste em um conjunto de procedimentos para resolver um problema de processamento de dados; Também vimos que a representação de soluções com uso do português estruturado podem facilitar a composição de algoritmos complexos, tornando-os em problemas mais fáceis de serem resolvidos. Esta forma de representação será descrita com detalhes a seguir. 3.3 ELEMENTOS UTILIZADOS EM ALGORITMOS A seguir são listados os principais elementos que podem ser utilizados na elaboração de um algoritmo. Elemento Constantes Componentes Númérico Data Lógica

Pág 9 Caracter (texto, literal, string) Númérico Variáveis Data Lógica Caracter (texto, literal, string) Expressões Operandos Operadores Comando de Atribuição Sequencial Estruturas Seleção Repetição 3.4 VARIÁVEIS E CONSTANTES Quando você estiver escrevendo seus programas, precisaremos armazenar informações para utilizar posteriormente durante a execução do programa. Para isso usamos os termos de declarar variáveis e constantes. 3.4.1 VARIÁVEIS NA MEMÓRIA A memória do computador é utilizada para trafegar todas as informações utilizadas em dado momento no computador, para tanto, é normalmente comparada a um grande armário com gavetas identificadas uma a uma. Quando uma gaveta guarda uma informação a identificação da gaveta é armazenada e utilizada para acessar esta informação. Esta identificação permite que possamos utilizar nomes dentro do programa em questão identificando as variáveis pelo nome e alterar, alocar novamente, excluir valores ao longo do programa. Com isso, temos a definição: Variável: é um endereço de memória de Acesso Randômico (RAM) representada por um nome (rótulo) simbólico, criado pelo usuário, cujo conteúdo é alterado no decorrer do programa. Elas armazenam valores temporariamente, de forma que cada vez que é utilizado o nome da variável, é manipulado o seu conteúdo. Pode-se dizer que a memória é composta por dois elementos básicos: Conteúdo: valor atual da variável; Identificador: nome dado a variável (ou constante) para possibilitar sua manipulação. No exemplo anterior feito em português estruturado criamos os seguintes elementos: Nota_1: identificador de nota fornecido pelo aluno;

Pág 10 Nota_2: identificador de nota fornecido pelo aluno; Media: identificador da média que terá como conteúdo o resultado do cálculo da média das duas notas. Os valores das variáveis permanecem na memória até que: O computador seja desligado, visto que são armazenados na memória RAM; Por término do programa ou rotina onde foram criadas; Seja atribuído um novo valor para a mesma variável; 3.4.2 DECLARAÇÃO DE CONSTANTES Declarar constantes significa reservar uma área da memória RAM, que irá receber um nome (rótulo) cujo conteúdo vai permanecer constante durante toda a execução do programa. Alguns programadores preferem colocar em programas simples o valor da constante diretamente no programa. No entanto em programas complexos é recomendável utilizá-las, principalmente quando há a possibilidade de se alterar em determinado de tempo este valor (manutenção do programa), é aconselhável a criação de identificadores do tipo constante. As constantes podem ser dos seguintes tipos: Numérico: quando começam por um número, um sinal, ou parêntese. Data: quando tiver um formato conhecido de data. Os mais conhecidos são dd/mm/aaaa, dd/mm, mm/aa, mm/aaaa, etc. Lógica (Booleanas): quando são valores que correspondem às quatro letras ou palavras lógicas correspondentes: T (true), F (false), Y (yes), N (no). Caracter: (Texto, Literal ou String): São reconhecidas pela exclusão, ou seja, tudo que não for conhecido como número, data ou lógico, é do tipo caracter. 3.4.3 DETALHANDO O PORTUGUÊS ESTRUTURADO Consiste em uma forma de representação de algoritmos para solucionar problemas de processamento de dados na linguagem corrente. O formato de português estruturado utiliza uma estrutura própria para a representação de algoritmos, obedecendo a algumas regras para sua elaboração: Programa nome do programa; Variáveis; Constantes; Início 5 - Iniciar as variáveis de controle ou que receberão cálculos 6 - Solicitar entrada de dados do usuário 7 - Entradas de dados 8 - Processamento/Cálculos 1 - Denominação do programa 2 Declaração de variáveis 3 Declaração de constantes; 4 - Início do bloco principal do programa

Pág 11 9 - Saída de informações Fim. OBSERVAÇÕES: Os textos numerados são apenas informações dos passos seguidos; Deve-se colocar no final de cada instrução um ponto-e-vírgula (;) para avisar o computador de que a instrução acabou e haverá outra em seguida; Note que após a palavra FIM existe um ponto (.), isto indica o final do bloco principal do programa e que o algoritmo está terminado; Exemplo 1: escrevendo o primeiro algoritmo em português estruturado Em uma cidade do interior X existe um índice de natalidade de n% ao ano, enquanto na cidade vizinha Y existe um índice 30% a mais. Dado: natalidade da cidade X. Objetivo: construa um algoritmo para calcular e mostrar o valor estimado de natalidade da cidade Y. As variáveis utilizadas são Nat_X representando a natalidade da cidade X e Nat_Y, representando a natalidade da cidade Y que queremos descobrir. Exemplo 2: Calculando a média de notas Programa Natalidade; Variáveis Nat_X, Nat_Y: Real; Início Nat_Y 0; Escreva( Digite a natalidade da cidade X: ); Leia(Nat_X); Nat_Y Nat_X * 1,30; Escreva( A natalidade da Cidade Y é, Nat_Y); Fim Construir um algoritmo para calcular e mostrar o valor da média de um aluno. O programa deve receber duas notas e calcular a média das duas e em seguida informar na tela o resultado. Programa Notas; Variáveis Nota_1, Nota_2, Media: Real; Início Nota_1 0; Nota_2 0; Media 0; Escreva( Digite a nota 1 do aluno: ); Leia(Nota_1); Escreva( Digite a nota 2 do aluno: ); Leia(Nota_2); Media (Nota_1 + Nota_2)/2; Escreva( A média final do aluno é, Media); Fim.

Pág 12 4 UMA INTRODUÇÃO AO AMBIENTE DE PROGRAMAÇÃO PYTHON Para executar e escrever programas em Python, podemos simplesmente digitar o código e diretamente o executar. Não existem etapas de compilação e ligações intermediárias, como acontece em outras linguagens populares. O Python executa os programas imediatamente, o que favorece uma experiência de programação interativa e um retorno rápido após alterações no programa. 4.1 EXECUTANDO O PYTHON Para executar o ambiente Python (Windows), considerando que tenhamos o aplicativo instalado necessitamos apenas acessar o menu iniciar do Windows e navegar até a listagem de programas localizando o grupo de programa Python, conforme a figura: Após localizar, execute o IDLE (Python GUI), que será o ambiente utilizado em nossas aulas: A tela acima é considerada como sendo o ambiente de programação da linguagem. Podem-se executar todas as tarefas desejadas no ambiente desde a elaboração de programas e a execução dos mesmos. Existem normalmente duas visões de execução da linguagem, a visão de Programador e a visão de Interpretador, que serão detalhadas em seguida. Por ora faremos alguns testes com os principais comandos para podermos reproduzir os códigos que foram elaborados em português estruturado anteriormente. 4.2 DESENVOLVENDO ALGUNS COMANDOS SIMPLES Alguns comandos simples podem ser executados diretamente no interpretador Python, até mesmo os códigos que elaboramos anteriormente na visão de português estruturado, para tanto, vamos ao IDLE (Python Shell): Reproduziremos o primeiro exemplo que fizemos anteriormente, porém agora utilizando a linguagem e suas características.

Pág 13 EXEMPLO 1: reescrevendo o exemplo do português estruturado O código ao lado demonstra um código compatível com o português estruturado que foi elaborado anteriormente. Note que aqui estamos apenas visualizando o que deve ser digitado, pois o que você verá realmente será as respostas em tempo real do interpretador Python. OBSERVAÇÕES: Ainda que faltem alguns itens a serem explorados, podemos ver que a forma de programar do Python é bastante simples e possui a característica de responder imediatamente aos comandos feitos pelo programador; A resposta imediata se deve ao uso do interpretador Python que estamos utilizando, existem outras formas de executar o código sem que seja necessário fazê-lo diretamente no interpretador. Como podemos perceber, a atribuição de valores as variáveis é bastante simples, e não há a necessidade de declararmos quais tipos estão sendo utilizados dentro da linguagem;