Aula 4 Lógica de Programação

Documentos relacionados
Apostila de Portugol

Algoritmos e Programação

Algoritmos Computacionais

Noções de algoritmos - Aula 1

Lógica de Programação Teoria. rogerioaraujo.wordpress.com - 1

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

CURSO TÉCNICO EM PROCESSAMENTO DE DADOS

Português Estruturado

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

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

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

Noções de algoritmos - Aula 1

PSEUDO-CÓDIGO. Nickerson Fonseca Ferreira

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

Algoritmo e Programação Matemática

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

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

Conceitos Básicos de Algoritmos

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

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

CONCEITOS DE ALGORITMOS

ALGORITMOS AULA 1. Profª Amanda Gondim

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

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

Introdução a Computação

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

Conceitos básicos de algoritmos

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

01/08/2011. Tipos de dados Numéricos Alfanuméricos Lógicos. Numéricos. Tipos de dados. Dados Numéricos Inteiros. Dados Numéricos Reais.

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

TIPOS DE DADOS E VARIÁVEIS

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

Disciplina: Introdução a Programação. IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer. Índice: Aula1 - Introdução Programa Algoritmo

Material Didático Unificado. Variáveis correspondem a nomes para endereços de memória que são gerenciados pelo Scilab.

Conceitos Básicos de Programação

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

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

Teoria da Computação e Algoritmos. Introdução à Linguagem Pascal. ALGORITMO <Nome do algoritmo>; <definições>; INÍCIO <Comandos>; FIM.

Definições de Algoritmos. Algoritmos e Programação I. Conceitos Básicos de Algoritmos. Relação entre Algoritmos e Programação

Algoritmos. Prof. Jonatas Bastos Site:

Programação de Computadores:

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

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

Ambiente Scilab Variáveis, expressões, comando de atribuição Entrada e Saída básica

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

Introdução aos Algoritmos

UNIDADE 2 ALGORITMOS E PSEUDOCÓDIGO

Lógica de Programação, Algoritmos e Estruturas de Dados

INTRODUÇÃO A ALGORITMOS

11 - Estrutura de um programa em C

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução ao Scilab. Comandos de entrada e saída de dados.

Entrada/Saída, Operadores. Curso: Técnico em Informática Disciplina: Algoritmos Prof. Abrahão Lopes

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Professora Martha Spalenza Professora de Informática da Faetec

Lógica de Programação: aula 2. Dariel Mazzoni Maranhão. Uninove: Universidade Nove de Julho. 22 de agosto de 2010

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

Pseudocódigo e visualg

ALGORITMOS VARIÁVEIS E OPERADORES. Prof. Angelo Augusto Frozza, M.Sc.

Método para Construção de Algoritmos

Programação de Computadores:

Introdução à Programação. 2ª aula. Prof. José Honorato F. Nunes

Ambiente de desenvolvimento

Métodos de Representação de Algoritmos

EXPRESSÕES ARITMÉTICAS PARTE 1

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

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

Projeto de Algoritmos

Algoritmos e Programação

Aula 5 -Algoritmos Estruturas de Controle (Estruturas de Seleção)

Unidade 3: Linguagem de programação

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Constantes, Variáveis, tipos de dados e expressões

Linguagem de Descrição de algoritmos

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

Algoritmos e Programação

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Introdução a Programação de Jogos

Fundamentos de Programação

Computadores = cérebros eletrônicos?

Algoritmos e Fluxogramas

ESTRUTURA CONDICIONAL E SELEÇÃO

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA PRÉ AULA 31/08/2015

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

Variáveis, Tipos de Dados e Operadores

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Algoritmos Estrutura Condicional

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Tipos de Dados e Expressões

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Transcrição:

UEM Universidade Estadual de Maringá DIN - Departamento de Informática Disciplina: Fundamentos da Computação Profª Thelma Elita Colanzi Lopes thelma@din.uem.br Aula 4 Lógica de Programação O objetivo principal da Lógica de Programação é demonstrar técnicas para resolução de problemas e conseqüentemente automatização de tarefas. O aprendizado da Lógica é essencial para formação de um bom programador, servindo como base para o aprendizado de todas as linguagens de programação, estruturadas ou não. De um modo geral esses conhecimentos serão importantes, pois nos ajudarão no cotidiano, desenvolvendo um raciocínio rápido. Algoritmos Um Algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema. Os algoritmos surgiram no século IX, muito antes dos computadores, com o matemático Árabe de sobrenome Al-Khowarizmi, que desenvolveu um conjunto de regras para efetuar operações aritméticas com números decimais. Pode-se ainda descrever algoritmos como uma descrição de um procedimento padrão, passo a passo, de forma detalhada e sem ambigüidade devendo ainda ter execução finita para quaisquer valores de dados. Os algoritmos são aplicados em várias áreas, como a física e a matemática. Um relatório de física, por exemplo, pode ser visto como um algoritmo, do ponto de vista que a intenção de um relatório é permitir que alguém repita a experiência relatada e obtenha os mesmos resultados. A programação de computadores é apenas um dos campos de aplicação dos algoritmos. Sendo assim, um algoritmo pode ser computacional quando é representado por uma linguagem de programação e pode ser executado no computador (chamamos de programa); ou não computacional quando somente uma seqüência de instruções é descrita de forma lógica mais não totalmente formal. A formulação de um algoritmo geralmente consiste em um texto contendo comandos (instruções) que devem ser executados numa seqüência prescrita (receita). A seguir apresenta-se um algoritmo não computacional para fritar batatas: Início Recolha as batatas na geladeira; Coloque as batatas em uma bacia; Descasque as batatas; Lave as batatas; Fatie as batatas; Coloque o óleo na panela para esquentar; Enxugue as batatas; Jogue as batatas na panela com óleo, com cuidado; Mexa as batatas até ficarem fritas; Retire as batatas; Escorra o óleo; Coloque as batatas em um recipiente com toalha de papel; Fim.

Abaixo é apresentado um Algoritmo não computacional cujo objetivo é usar um telefone público. Início Tirar o fone do gancho; Ouvir o sinal de linha; Introduzir o cartão; Teclar o número desejado; Se der o sinal de chamar 5.1 Conversar; 5.2 Desligar; 5.3 Retirar o cartão; 6. Senão 6.1 Repetir; Fim. Computacionalmente falando, um algoritmo não é uma solução para um problema, mas um caminho para obtê-la. Sendo assim, podem existir vários caminhos para uma mesma solução, e conseqüentemente, vários algoritmos diferentes para o mesmo problema. Como um exemplo, podemos destacar os vários métodos de multiplicação existentes: método americano (resolução direita para a esquerda), método inglês (resolução da esquerda para a direita) e o método russo (dividir o multiplicando por 2 e multiplicar o multiplicador por 2 até que o multiplicando se torne 1 somar os multiplicadores onde o multiplicando é impar). Outro exemplo seria a rotina que cada pessoa segue para tomar banho, trocar um pneu ou executar uma receita de bolo. Representação de Algoritmos Desvio Os algoritmos podem ser representados de forma gráfica ou textual. Na forma gráfica, utilizamos principalmente os fluxogramas convencionais. Na forma textual, podemos utilizar uma linguagem de programação, ou uma pseudolinguagem. início N1, N2 Media <= (N1 + N2)/2 Algoritmo calc_media; variáveis n1, n2, media: real; início leia(n1, n2); media := (n1 + n2)/2; se media >= 6 então escreva( Aprovado ) senão escreva( Reprovado ); fim. Media >= 6? Aprovado Reprovado fim 2

Durante nosso curso iremos aprender inicialmente a desenvolver nossos algoritmos em uma pseudolinguagem conhecida como Portugol ou Português Estruturado. Portugol é derivado da aglutinação de Português + Algol. Algol é o nome de uma linguagem de programação estruturada usada no final da década de 50 que influenciou muito a construção da linguagem Pascal. Vamos conhecer então, a sintaxe da linguagem que utilizaremos: Operadores aritméticos: + Adição - Subtração * Multiplicação / Divisão Operadores relacionais: > Maior que < Menor que >= Maior ou Igual <= Menor ou Igual = Igual <> Diferente Escrevendo Expressões Para a construção de Algoritmos todas as expressões aritméticas devem ser linearizadas, ou seja, colocadas em linhas. É importante também ressalvar o uso dos operadores correspondentes da aritmética tradicional para a computacional. Exemplo: 2 3 + 1 ( 5 3) + = Tradicional (2/3+(5-3))+1= Computacional Modularização de Expressões A modularização é a divisão da expressão em partes, proporcionando maior compreensão e definindo prioridades para resolução da mesma. Como pode ser observado no exemplo anterior, em expressões computacionais usamos somente parênteses ( ) para modularização. Na informática podemos ter parênteses dentro de parênteses. Exemplos de prioridades: (2+2)/2=2 2+2/2=3 Operadores Especiais (Mod e Div) MOD Retorna o resto da divisão inteira entre 2 números inteiros. DIV Retorna o valor inteiro que resulta da divisão entre 2 números inteiros. 3

Exemplo: MOD 13 2 1 6 DIV 13 DIV 2 = 6 13 MOD 2 = 1 Prioridade entre os operadores aritméticos e os operadores Mod e Div Na resolução de uma expressão computacional os operadores aritméticos são resolvidos com as mesmas prioridades atribuídas a eles na matemática. Assim, sempre resolvemos os operadores de divisão e multiplicação (inclusive os operadores mod e div) antes de resolvermos os operadores de soma e subtração. Funções Uma função é um instrumento (Sub algoritmo) que tem como objetivo retornar um valor ou uma informação. A chamada de uma função é feita através da citação do seu nome seguido opcionalmente de seu argumento inicial entre parênteses. As funções podem ser predefinidas pela linguagem ou criadas pelo programador de acordo com o seu interesse. Exemplos: Valor Inicial X X=9 Processamento x Valor Final Y Y=3 Funções Pré-Definidas ABS( ) VALOR ABSOLUTO SQRT( ) RAIZ QUADRADA SQR( ) ELEVA AO QUADRA- DO TRUNC( ) VALOR TRUNCADO ROUND( ) VALOR ARREDONDA- DO LOG( ) LOGARITMO SIN( ) SENO COS( ) COSENO TAN( ) TANGENTE As funções apresentadas anteriormente são as mais comuns e importantes para nosso desenvolvimento lógico, entretanto, cada linguagem possui suas funções próprias. As funções podem ser aritméticas, temporais, de texto e etc. 4

Operadores Lógicos Atuam sobre expressões retornando sempre valores lógicos como Falso ou Verdadeiro. E OU NÃO Retorna verdadeiro se ambas as partes forem verdadeiras. Basta que uma parte seja verdadeira para retornar verdadeiro. Inverte o estado, de verdadeiro passa para falso e vice-versa. Tabela Verdade A B A E B A OU B NÃO (A) V V V V F V F F V F F V F V V F F F F V Expressões Lógicas As expressões compostas de relações sempre retornam um valor lógico. Exemplos: 2+5>4 Verdadeiro 3<>3 Falso De acordo com a necessidade, as expressões podem ser unidas pelos operadores lógicos. Exemplos: 2+5>4 E 3<>3 Falso 2+5>4 OU 3<>3 Verdadeiro V F V F E OU F V NÃO(3<>3) Verdadeiro F NÃO V 5

Variáveis Variáveis são endereços de memória destinados a armazenar informações temporariamente. As variáveis de um algoritmo representam os dados que devem ser armazenados na memória do computador para posterior processamento durante a execução do algoritmo. Para o armazenamento desses dados é preciso saber qual o seu tipo e como eles poderão ser identificados para viabilizar a sua utilização e manipulação a qualquer momento. Para que a programação se torne mais fácil podemos colocar nomes legíveis (que nós podemos entender) nesses endereços de memória e utiliza-los no algoritmo. Uma variável sempre está associada a 4 características: O nome da variável: necessário para diferencia-la das demais; O endereço da variável: necessário para localizar a variável na memória principal; O tipo de dado associado à variável: indica o tipo de informação que pode ser armazenada naquela área de memória e é necessário para que o compilador trate cada variável de acordo com o seu tipo; O conteúdo da variável: é a informação efetivamente guardada na variável; A declaração em pseudolinguagem das variáveis utilizadas em um algoritmo e seus respectivos tipos é sempre precedida pela palavra variáveis, e é feita logo no início do algoritmo. Exemplo: Variáveis Salário: real; Idade: inteiro; Nome: cadeia; Sexo: caracter; Variáveis de Entrada e Saída Variáveis de entrada armazenam informações fornecidas por um meio externo (normalmente usuários ou discos). No exemplo da média, as variáveis N1 e N2 são variáveis de entrada. Variáveis de saída armazenam dados processados como resultados. No exemplo da média a variável media é uma variável de saída. Constantes Constantes são endereços de memória destinados a armazenar informações fixas, inalteráveis durante a execução do programa. Exemplo: PI = 3.1416 A declaração em pseudolinguagem das constantes utilizadas em um algoritmo sempre precedida pela palavra constantes, e é feita logo no início do algoritmo, antes da declaração das variáveis. Exemplo: Constantes pi=3.1416; Variáveis Salário: real; Idade: inteiro; 6

Identificadores São os nomes dados a variáveis, constantes e algoritmos. Regras para construção de Identificadores: Não podem ter nomes de palavras reservadas (comandos da linguagem); Devem possuir como 1º caractere uma letra ou Underscore ( _ ); Ter como demais caracteres letras, números ou Underscore; Ter no máximo 127 caracteres; Não possuir espaços em branco; A escolha de letras maiúsculas ou minúsculas é indiferente. Exemplos: nome telefone idade_filho nota1 salario pi umnomemuitocompridoedificildeler um_nome_muito_comprido_e_facil_de_ler Tipos de Dados Todas as variáveis devem assumir um determinado tipo de informação. O tipo de dado pode ser: Primitivo Pré-definido pela linguagem; Sub-Faixa É uma parte de um tipo já existente; Escalar Definidos pelo programador. Exemplos: PRIMITIVO A : INTEIRO SUB - FAIXA TIPO NOTA = [1..10] DE INTEIRO TIPO SEMANA = (Segunda-feira, Terça-feira, Quarta-feira, Quinta-feira, Sexta-feira, Sábado, Domingo) ESCALAR Tipos Primitivos de Dados Inteiro: Admite somente números inteiros. Geralmente é utilizado para representar uma contagem (quantidade). Real: Admite números reais (com ou sem casas decimais). Geralmente é utilizado para representar uma medição. Caractere: Admite caracteres alfanuméricos. (0..9, A..Z, a..z,!, @, #, $, %,, &, *, (, ), _, +, {, }, [, ]...) Os números quando declarados como caracteres tornam se representativos e perdem a atribuição de valor. Cadeia: Admite uma seqüência de caracteres. Lógico: Admite somente valores lógicos (verdadeiro/falso). Comandos de Entrada e Saída LEIA Comando de entrada que permite a leitura de Variáveis de Entrada. Exemplo: leia(n1, n2); ESCREVA Comando de saída que exibe uma informação na tela do monitor. Exemplo: escreva(media); 7

Sinal de Atribuição Uma Variável nunca é eternamente igual a um valor, seu conteúdo pode ser alterado a qualquer momento. Portanto para atribuir valores a variáveis devemos usar o sinal de :=. Exemplos: A := 2; B := 3; C := A + B; D := pi; Corpo Geral de um Programa PROGRAMA <<identificador>>; CONST <<identificador>> = <<dado>>; VAR <<identificador>> : <<tipo>>; ÍNICIO { COMANDOS DE ENTRADA,PROCESSAMENTO E SAÍDA <<comando1>>; <<comandon>> } FIM. Estruturas Seqüenciais Como pode ser analisado no tópico anterior, todo programa possui uma estrutura seqüencial determinada por um ÍNICIO e FIM. Ponto e vírgula ; O sinal de ponto e vírgula ; indica a existência de um próximo comando (passa para o próximo). Na estrutura ÍNICIO não se usa ;. Primeiro Algoritmo Segue um Algoritmo que lê o nome e as 4 notas bimestrais de um aluno. Em seguida o Algoritmo calcula e escreve a média obtida. programa media_final; var nota1, nota2, nota3, nota4, media: inteiro; nome : caractere [35]; inicio leia (nome); leia (nota1, nota2, nota3, nota4); media := (nota1 + nota2 + nota3 + nota4) / 4; escreva (nome, media); fim. 8

Segundo Algoritmo Segue um Algoritmo que lê o raio de uma circunferência e calcula sua área. programa area_circunferencia; const pi = 3.1416; var raio, area : real; inicio leia (raio); {processamento} area := pi * sqr(raio); {entrada} escreva ( area =, area) {saída} fim. {Linhas de Comentário} Podemos inserir em um Algoritmo comentários para aumentar a compreensão do mesmo, para isso basta que o texto fique entre Chaves {}. Exemplo: ler (raio); {entrada} Aspas simples Quando queremos exibir uma mensagem para a tela ela deve estar contida entre aspas simples, caso contrário, o computador irá identificar a mensagem como Variável Indefinida. Exemplo: escrever ( area obtida =, area) {comando de saída} area obtida = x.xx {resultado gerado na tela} Texto baseado na apostila do professor Alysson Paradzinski 9