Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

Documentos relacionados
Introdução aos Algoritmos

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

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

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

ALGORITMOS AULA 1. Profª Amanda Gondim

#Conceituação. Algoritmos. Eliezio Soares

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos

Projeto de Algoritmos

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

CONCEITOS DE ALGORITMOS

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

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

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

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

Computadores = cérebros eletrônicos?

Algoritmos e Fluxogramas

Algoritmos Estrutura Condicional

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

Algoritmos Computacionais

Noções de algoritmos - Aula 1

Português Estruturado

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

Conceitos Básicos de Algoritmos

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

Introdução a Computação

Algoritmos e Técnicas de Programação

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

ESTRUTURA CONDICIONAL E SELEÇÃO

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Programação de Computadores:

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

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

Subalgoritmos. algoritmo completo é dividido num algoritmo principal e em diversos subalgoritmos (tantos quantos forem necessários ou convenientes).

Fundamentos de Programação

Fábio Rodrigues / Israel Lucania

Métodos de Representação de Algoritmos

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

Universidade Federal de Uberlândia Faculdade de Computação. Estruturas de repetição

Algoritmo e Programação Matemática

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

Revisão Histórico das Linguagens de Programação

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

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

Pseudocódigo e visualg

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

CONCEITO DE COMPUTADOR. O que é um computador?

AULA 02. Lógica de Programação. Centro Educação Profissional Ezequiel Ferreira Lima CEPEF. Curso Técnico em Eletrônica.

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

Noções de algoritmos - Aula 1

Algoritmos e Estruturas de Dados

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

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

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE DEPARTAMENTO DE INFORMÁTICA E MATEMÁTICA APLICADA. DIM0320 Algoritmos e Programação de Computadores

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

Programação de Computadores III

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

<identificador>[<tamanho>]: <tipo>;

1 ESTRUTURA SEQUENCIAL

Introdução a Programação de Jogos

Programação em C. Victor Amorim dos Santos

Programação de Computadores III

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

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

Disciplina de Algoritmos e Programação

Fundamentos de Programação Introdução

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

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

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

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

Introdução a Computação

Apêndice A. Pseudo-Linguagem

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

Linguagem de Descrição de algoritmos

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

Algoritmos e Programação

FERRAMENTAS BÁSICAS DA PROGRAMAÇÃO

Fundamentos de Programação 1

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

Linguagem de Programação 1. Introdução

Algoritmos e Programação de Computadores Disciplina:

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Conceitos básicos de algoritmos

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

AULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa

OFICINA DA PESQUISA. Prof. Msc. Carlos José Giudice dos Santos

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

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Parte I - Expressões lógicas e operadores

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

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

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage Algoritmos- continuação

FIC Introdução à Programação de Computadores

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

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

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

CAPÍTULO 3 INSTRUÇÕES BÁSICAS

Capítulo 1 - Lógica e Algoritmos

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

Transcrição:

Universidade Federal de Uberlândia Faculdade de Computação Conceitos básicos de algoritmos Prof. Renato Pimentel 1 Computação Dados Informações vindas de usuários ou de outras máquinas; Processamento transformação dos dados, de acordo com os desejos do usuário ou de outra máquina; Resultados aquilo que vem do processamento, e que servirá aos propósitos do usuário. Dados Processamento Resultados 2 Prof. Renato Pimentel 1

Computação Objetivo básico auxiliar os seres humanos em trabalhos repetitivos e braçais, diminuindo esforços e economizando tempo; O computador é capaz de auxiliar em qualquer coisa que lhe seja solicitada; Entretanto: Não tem iniciativa; Nenhuma independência; Não é criativo nem inteligente. Por isso, é necessário que ele receba suas instruções nos mínimos detalhes, para que tenha condições de realizar suas tarefas Programação. 3 Programação Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento de dados: Escrever um programa (ou vários programas interligados); Devemos escrever o programa usando uma linguagem que tanto o computador quanto o criador de software entendam linguagem de programação. 4 Prof. Renato Pimentel 2

Etapas envolvidas no processo de programação Análise: enunciado do problema: Dados de entrada; Processamento (resolução); Dados de saída. Algoritmo descrever o problema, com suas soluções; Codificação algoritmo é transformado em códigos da linguagem de programação escolhida para se trabalhar. 5 Programa Nada mais é do que a codificação de um algoritmo em uma linguagem de programação. Uma definição mais formal: Conjunto de instruções passo a passo que orientam o computador a fazer as tarefas necessárias e produzir o(s) resultado(s) desejado(s) 6 Prof. Renato Pimentel 3

Algoritmo Sequência finita e não ambígua* de instruções ou operações (passos), cuja execução, em um tempo finito, resolva um problema * cada instrução deve ser precisamente definida, sem permitir mais de uma interpretação. 7 Algoritmo IMPORTANTE para a grande maioria dos problemas, é possível haver mais de um algoritmo de resolução Algoritmos não são operações exclusivas de um computador: A grande maioria das coisas que fazemos no dia a dia, fazemos por via de algoritmos. 8 Prof. Renato Pimentel 4

Exemplos cotidianos de algoritmos 9 Algoritmo 1 somar três números Passo 1 receber três números. Passo 2 somar os três números. Passo 3 mostrar o resultado obtido. 10 Prof. Renato Pimentel 5

Algoritmo 3 sacar dinheiro no caixa eletrônico Passo 1 ir até um caixa eletrônico Passo 2 colocar o cartão Passo 3 digitar a senha Passo 4 solicitar a quantia desejada Passo 5 se saldo for maior ou igual à quantia desejada, realizar o saque; caso contrário, não realizar o saque ou sacar uma quantia menor Passo 6 retirar o cartão Passo 7 sair do caixa eletrônico 11 Note pelos exemplos que podem existir maneiras diferentes de se resolver determinados problemas, de maneira que ao final o resultado seja o mesmo 12 Prof. Renato Pimentel 6

Método para construção de algoritmos (a) Compreender completamente o problema a ser resolvido, destacando pontos mais importantes e objetos que o compõem; (b) Definir os dados de entrada, isto é, quais dados serão fornecidos e quais objetos fazem parte do problema; (c) Definir o processamento, isto é, quais cálculos serão efetuados; quais as restrições para estes cálculos; Processamento: responsável pela transformação de dados de entrada em dados de saída. Deve-se também verificar quais objetos são responsáveis por cada atividade de processamento. 13 Método para construção de algoritmos (d) Definir os dados de saída, isto é, quais dados são gerados após o processamento; (e) Construir o algoritmo; (f) Testar o algoritmo, através de simulações. 14 Prof. Renato Pimentel 7

Dicas Precisa-se descrever a sequência de instruções, de maneira simples e objetiva: Somente um verbo por frase; Frases curtas e simples; Ser objetivo; Evitar frases com sentido dúbio. 15 Representação de algoritmos 1. Descrição narrativa Escrever, utilizando uma linguagem natural (exemplo: língua portuguesa), os passos a serem seguidos para resolução do problema. Vantagem: nenhum conceito novo necessário Desvantagem: pode abrir espaço para interpretações Dificultará transcrição deste algoritmo para um programa 16 Prof. Renato Pimentel 8

Exemplo de descrição narrativa Exemplo: fazer um sanduíche Passo 1 pegar o pão Passo 2 cortar o pão ao meio Passo 3 pegar a maionese Passo 4 passar a maionese no pão Passo 5 pegar e cortar alface e tomate Passo 6 colocar alface e tomate no pão Passo 7 Pegar o hambúrguer Passo 8 fritar o hambúrguer Passo 9 colocar o hambúrguer no pão 17 Representação de algoritmos 2. Fluxograma Escrever, usando símbolos gráficos predefinidos, os passos a serem seguidos para a resolução do problema. Diagrama: representação visual dos algoritmos Também utilizado em outras áreas: Exemplo: processos dentro de uma linha de produção Vantagem: entendimento mais simples. Útil nas fases iniciais de aprendizado de programação Desvantagem: algoritmo resultante com poucos detalhes; aprendizado da simbologia necessário. 18 Prof. Renato Pimentel 9

Exemplo de fluxograma Imprimir maior dentre dois números, A e B. Início Leia A e B Sim A > B? Não Escreva A Escreva B Fim 19 Exemplo de fluxograma Representação alternativa: Início Leia A e B A > B? Sim Não A B Escreva A 20 Prof. Renato Pimentel 10

Representação de algoritmos 3. Pseudocódigo Linguagem intermediária entre linguagem natural e linguagem de programação Escrever, por meio de regras predefinidas, os passos a serem seguidos para resolução do problema Vantagem: codificação em linguagem de programação é quase imediata Desvantagem: é necessário aprender as regras do pseudocódigo será apresentado nas próximas aulas 21 Exemplo de pseudocódigo Como seria o pseudocódigo do algoritmo dado no fluxograma do slide anterior? Declare A, B numérico Escreva Digite dois valores Leia A, B Se A < B Então A B Escreva A 22 Prof. Renato Pimentel 11

Simbologia de fluxogramas Início e fim Podem ser círculos ou formas ovais Normalmente contêm a palavras Início, Fim, ou alguma expressão sinalizando o início ou fim do processo. Início Fim Escreva A 23 Simbologia de fluxogramas Processo e operações Representação por retângulos. Indica uma tarefa a ser executada pelo algoritmo. Usado para cálculos e atribuições de valores. Leia A e B M = N + P Escreva B 24 Prof. Renato Pimentel 12

Simbologia de fluxogramas Condição ou decisão Representação por losangos. Normalmente contém uma pergunta do tipo Sim/Não ou um teste de Verdadeiro/Falso. Mudanças no fluxo possibilidade de desvios. A > B? 25 Simbologia de fluxogramas Setas Conectam dois símbolos quaisquer. Indicam o fluxo de dados ordem das operações a serem realizadas. A > B? Sim Escreva A Não A B 26 Prof. Renato Pimentel 13

Outro exemplo de algoritmo Faça um algoritmo para calcular a média aritmética entre duas notas de um aluno e mostrar sua situação, que pode ser aprovado ou reprovado. Descrição narrativa Pseudocódigo Fluxograma 27 Descrição narrativa Passo 1: receber duas notas Passo 2: calcular a média aritmética Passo 3: mostrar média aritmética Passo 4: se média for maior ou igual a 7, então situação do aluno é aprovado; caso contrário, a situação é reprovado. 28 Prof. Renato Pimentel 14

Pseudocódigo Declare N1, N2, M numérico Escreva digite as duas notas Leia N1, N2 M (N1+N2)/2 Escreva Média =, M Se M >= 7 Então escreva aprovado Senão escreva reprovado 29 Fluxograma Início Leia N1, N2 M = (N1 + N2)/2 Escreva M Sim Escreva aprovado M >= 7? Fim Não Escreva reprovado 30 Prof. Renato Pimentel 15

Testando o algoritmo: teste de mesa Consiste do acompanhamento manual (linha a linha) da execução do algoritmo, visando: Avaliar se os resultados obtidos correspondem àqueles esperados/desejados. Detectar, se existentes, os erros de comandos e/ou fluxo de execução. Durante os testes, deve-se definir os valores de entrada, visando avaliar as seguintes situações: Casos extremos (valores limítrofes da validade); Exceções do problema (valores inválidos). 31 Teste de mesa: exemplo Declare P1, P2, P3, P4 inteiro media real inicio leia P1, P2, P3, P4 media (P1+P2+P3+P4)/4 escreva(media) se media < 6 entao escreva REPROVADO senao escreva APROVADO fim-se fim 32 Prof. Renato Pimentel 16

Teste de mesa: exemplo Declare P1, P2, P3, P4 inteiro media real inicio leia P1, P2, P3, P4 media (P1+P2+P3+P4)/4 escreva(media) se media < 6 entao escreva REPROVADO senao escreva APROVADO fim-se fim 33 Tipos de dados e variáveis 34 Prof. Renato Pimentel 17

Variáveis Todo algoritmo e, consequentemente, todo programa recebem dados. Dados são armazenados no computador, para posteriormente serem processados. Armazenamento durante a execução do programa: memória primária (RAM). Representação de dados na memória: bits e bytes. Porções de memória (sequências de bits / bytes) que armazenam os dados são identificadas e acessadas através de endereços. 35 Índice de pagamento: localização 3 Horas trabalhadas: localização 6 Resultado (Salário): localização 8 Exemplo: programa para folha de pagamento Escolha arbitrária: qualquer localização pode ser usada; Programador não precisa se preocupar com endereço: cada endereço pode receber um nome, chamado endereço simbólico. Ex.: índice, horas, salário 36 Prof. Renato Pimentel 18

Variável Endereço simbólico: variável Possui um nome (identificador) e um tipo; Representa uma posição de memória, onde é guardado um dado ou valor; Seu conteúdo pode ser alterado durante a execução do programa, mas não sua posição; Pode assumir valores distintos, mas somente um único valor a cada instante da execução do programa/algoritmo. Exemplos (slide anterior): Horas, Salario, Indice. 37 Tipos de dados Toda variável possui um determinado tipo. Tipo de uma variável: determina o conjunto de valores (e operações) que a variável pode aceitar. Tipos de dados primitivos (básicos): Numéricos; Inteiros; Reais. Lógicos; Literais ou de texto. 38 Prof. Renato Pimentel 19

Dados numéricos Positivos ou negativos; Dois grupos: Inteiros; Reais. Inteiros: Sem parte fracionária; Exemplos: -23, 98, 0, -357, 237, -2 Reais: Possuem parte fracionária; Exemplos: 23.45, -34.88, -247.0, -346.89 39 Dados numéricos Observação: notação de dados reais no computador: língua inglesa (ponto, e não vírgula, separa parte inteira da parte fracionária 40 Prof. Renato Pimentel 20

Dados lógicos Podem assumir somente dois valores: Verdadeiro Falso Também chamados de booleanos (álgebra de Boole). 41 Dados literais ou caracteres Formados por um único caractere ou uma cadeia de caracteres. Caractere: Letras maiúsculas; Letras minúsculas; Algarismos (não podem ser utilizados para cálculos); Caracteres especiais (ex.: &, #, @,?, +, etc.) Exemplos: aluno, 1234, 0.34, 1+2, 1ab, 0, x, etc. 42 Prof. Renato Pimentel 21

Identificando variáveis Toda variável, além de um tipo, deve possuir um nome (identificador). Algumas regras para identificar uma variável: Podem ser utilizados algarismos, letras maiúsculas, letras minúsculas; No início: somente uma letra ou símbolo _ ; Não permitidos: espaço em branco, caracteres especiais (@, $, +, -, %, etc.); Não permitidos: palavras reservadas da linguagem de programação em uso. Exemplos: x, y, salario, _horas, N1, n2 43 Programação estruturada 44 Prof. Renato Pimentel 22

Programação estruturada Questão: como resolver um determinado problema? Paradigma de programação Relacionado à forma de pensar do programador; Como ele busca a solução para o problema; Mostra como o programador analisou e abstraiu o problema a ser resolvido. 45 Paradigmas de programação Paradigmas Estruturado; Orientado a objetos; Lógico; Funcional; Etc... 46 Prof. Renato Pimentel 23

Paradigma estruturado Também chamado imperativo; Utilização de 3 estruturas: Sequencial; Condicional; Repetição ou iterativa. Busca quebrar um problema complexo em partes menores; Programador: Analisa o problema; Tenta relacionar ações que deverão ser executadas. 47 Estrutura sequencial de um algoritmo A estrutura sequencial de um algoritmo é dada como segue: Algoritmo Declaração de variáveis Comandos (atribuição, entrada / saída, processamento) Fim do algoritmo 48 Prof. Renato Pimentel 24

Declaração de variáveis Na declaração de variáveis, criamos as mesmas, definindo um identificador (nome) válido, e seu tipo Quando a variável é criada durante a execução do programa, uma posição de memória é atribuída à mesma Exemplo (pseudocódigo): Declare x numérico Declare y,z literal Declare teste lógico 49 Atribuição Comandos de atribuição são usados para conceder (atribuir) valores ou operações às variáveis. Exemplos (pseudocódigo): x 4 y x + 2 M (N1 + N2)/2 teste falso 50 Prof. Renato Pimentel 25

Comandos de entrada Comandos de entrada são utilizados para receber dados de entrada do usuário (via teclado ou outro dispositivo de entrada), e armazená-los em variáveis. São representados pela palavra leia. Exemplos: Leia x Leia y Se x é numérico: um valor digitado pelo usuário será armazenado na variável x; Se y é literal: um ou mais caracteres digitados pelo usuário serão armazenados na variável y. 51 Comandos de saída Comandos de saída são utilizados para mostrar ao usuário dados na tela (ou outro dispositivo de saída): Dados podem ser simplesmente o conteúdo de variáveis ou mensagens. Exemplos: Escreva X Escreva conteúdo de Y =, Y 52 Prof. Renato Pimentel 26

Exercícios 1.Escreva um algoritmo que execute a soma de dois números inteiros fornecidos pelo usuário, usando: Declaração de variáveis Comandos de entrada (leitura) e saída de dados 2.Faça um programa que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de 25%. 3.Escreva um algoritmo que lê o nome de um vendedor, o seu salário fixo, o total de vendas por ele efetuadas e o percentual que ganha sobre o total de vendas. Calcular o salário total do vendedor. Escrever o nome do vendedor e seu salário total. 53 Referências ASCENCIO, A. F. G., CAMPOS, E. A. V. Fundamentos da Programação de Computadores. São Paulo: Prentice Hall, 2007. PIMENTEL, R. Notas de aula de Introdução à Computação. PAIVA, J. G. S. Notas de aula de algoritmos e programação de computadores. MARTINS, L. G. A. e SILVA, A. J. Notas de aula de Introdução a algoritmos. 54 Prof. Renato Pimentel 27