Algoritmos. Prof. Thiago Caproni Tavares. thiago.tavares@ifsuldeminas.edu.br. Última Atualização: 2 de outubro de 2014



Documentos relacionados
Lógica de Programação

Resolução de problemas e desenvolvimento de algoritmos

Programação para Computação

1.1. Organização de um Sistema Computacional

Algoritmos Computacionais ( Programas )

Introdução às Linguagens de Programação

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)

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

ICC Introdução para JavaScript

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

Estruturas de Repetição Parte I EXEMPLOS e EXERCÍCIOS

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

Introdução a Algoritmos Parte 04

Estruturas de Seleção Parte II Seleção Encadeada SOLUÇÃO DE EXERCÍCIO PROPOSTO

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

Bacharelado em Ciência e Tecnologia Processamento da Informação TESTE DE MESA TESTE DE MESA

CAPÍTULO 6 - ESTRUTURA DE SELEÇÃO

Interface Homem-Computador

5 Equacionando os problemas

Módulo 1: Contextualização

Aula 10 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Algoritmos e Pseudocódigo

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Cenários do CEL. Acessar ao sistema

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

ESTRUTURA CONDICIONAL

Problemas insolúveis. Um exemplo simples e concreto

Estruturas de Repetição Parte II PARA-ATÉ

VisuALG Estruturas de Repetição. Professores: Vilson Heck Junior Felipe Schneider Costa

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

ALGORITMOS E FLUXOGRAMAS

Estruturas de Controle A Tomada de Decisões

Introdução à Programação e Algoritmos. Aécio Costa

Introdução a UML. Hélder Antero Amaral Nunes haanunes@gmail.com

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

Algoritmo e Programação

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Sistemas Operacionais

Introdução à Lógica de Programação (cont.)

Especificação de Requisitos

Simulado OBM Nível 1. Gabarito Comentado

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Feature-Driven Development

Algoritmos com VisuAlg

Sistema de Numeração e Aritmética Básica

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Equações do primeiro grau

Curso Técnico em Redes

DICAS PARA CÁLCULOS MAIS RÁPIDOS ARTIGO 06

Programação I. Introdução a Lógica de Programação

Engenharia de Software I: Análise e Projeto de Software Usando UML

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

Lógica. Everson Santos Araujo

Só Matemática O seu portal matemático FUNÇÕES

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

EQUAÇÕES E INEQUAÇÕES DE 1º GRAU

UFRPE Prof. Gustavo Callou

APRENDER A LER PROBLEMAS EM MATEMÁTICA

Algoritmos e Programação de Computadores I. Prof. Eduardo

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 14 PROFª BRUNO CALEGARO

Introdução a Programação

9 Comandos condicionais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Processamento da Informação Teoria. Algoritmos e Tipos de dados

Revisão - Reveja os pontos principais, o Plano de Ação ou os tópicos da discussão do encontro anterior.

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

TOPICO 9 FUNÇÕES MATEMÁTICAS E SUAS REPRESENTAÇÕES

Sistemas Operacionais e Introdução à Programação. Vetores e matrizes

Sistemas de Informação I

Computabilidade 2012/2013. Sabine Broda Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto

Exercícios Teóricos Resolvidos

Definição. de solução de um problema passo-a-passo. Representa a lógica l. passo.

Comandos Sequenciais if else, e Switch

Fórmula versus Algoritmo

Como Montar Seu Negocio OnlineAltamente Lucrativo e Multiplicável Em 30 Dias Ou Menos A Partir Do Zero!Garantido...

A4 Projeto Integrador e Lista de Jogos

SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2

Programação em papel quadriculado

Para que o NSBASIC funcione corretamente em seu computador, você deve garantir que o mesmo tenha as seguintes características:

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

MATEMÁTICA BÁSICA. Operações

Teoria para IHC: Engenharia Semiótica

1.2. Sistemas de Programação

Ajuda ao SciEn-Produção O Artigo Científico da Pesquisa Experimental

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

Introdução a Algoritmos Parte 07

Algoritmos e Programação. Prof. Tarcio Carvalho

Aula 1: Demonstrações e atividades experimentais tradicionais e inovadoras

www. inf.br Outubro/2008 5www.habisp.inf.br TREINAMENTO HABISP VERBA DE ATENDIMENTO

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

- Versão 1.0 Página 1

Tópicos Especiais em Sistemas de Telecomunicações IV

Algoritmos e Programação I

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA DISCUSSÃO DOS EXERCÍCIOS E CONSTRUÇÃO DE PROGRAMAS SEQUENCIAIS. Prof. Dr. Daniel Caetano

Linguagem algorítmica: Portugol

Transcrição:

Algoritmos Recuperação Prova Prof. Thiago Caproni Tavares thiago.tavares@ifsuldeminas.edu.br Última Atualização: 2 de outubro de 2014 (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 1 / 24

Conteúdo 1 A análise de síntese de um algoritmo 2 Modelagem de Problemas 3 O papel da lógica em Programação (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 2 / 24

Conteúdo 1 A análise de síntese de um algoritmo 2 Modelagem de Problemas 3 O papel da lógica em Programação (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 3 / 24

Descrição Narrativa A resolução de problemas envolve duas grandes fases: Análise; Síntese. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 4 / 24

Análise Na fase de análise, o problema é entendido de forma que se descubra o que deve ser feito: Quais dados são necessários? Quais condições? Modelagem: Equações; Gráficos; Desenhos. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 5 / 24

Análise O resultado da fase de análise deve ser um plano de ação: A experiência em problema similares vistos anteriormente; Pode ser necessário a utilização de problemas similares. Processos de abstração: Elaborar modelos mentais do problema; Encaminhamento da solução. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 6 / 24

Síntese Executa-se o plano definido na fase de análise: Representa-se os passos por meio de um algoritmo; Utiliza-se a representação formal. Verifica-se a solução está correta: Percorrer o algoritmo do seu início até seu fim Caso ocorra alguma discrepância: Verificar a causa e analisar novamente o problema; Repete-se esse processo até que a solução tenha sido obtida. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 7 / 24

Conteúdo 1 A análise de síntese de um algoritmo 2 Modelagem de Problemas 3 O papel da lógica em Programação (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 8 / 24

Modelagem de Problemas Modelagem (geralmente desprezada): dificuldade ou facilidade de resolver o problema: Matemática e engenharia utilizam linguagem matemática; Computação utiliza algoritmos (fluxogramas e linguagens de programação) Exemplo: Compram-se 30 canetas iguais, que foram pagas com uma nota de R$100,00, obtendo-se R$67,00 como troco. Quanto custou cada caneta? (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 9 / 24

Modelagem de Problemas Problema da Caneta: Se eu tinha R$100,00 e recebi R$67,00 de troco, o custo total de canetas é a diferença entre os R$100,00 que eu tinha e os R$67,00 do troco. Ora, isto vale R$33,00; portanto; esse valor foi o total pago pelas canetas. Para saber quanto custou cada caneta, basta dividir os R$33,00 por 30, resultando no preço de cada caneta. Assim, cada caneta custou o equivalente a R$1,10 (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 10 / 24

Modelagem de Problemas Problema da caneta, matematicamente falando: 30x + 67 = 100 30x = 100 67 x = 33/30 x = 1, 1 (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 11 / 24

Modelagem de Problemas Algoritmo 1: Problema da caneta, algoritmo (Instância Particular): início Pegar os valores 30, 100 e 67 Subtrair 67 de 100 e dividir o resultado por 30 Mostrar o resultado final fimalgoritmo (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 12 / 24

Modelagem de Problemas Caso geral: Compraram-se N canetas iguais, que foram pagas com uma nota de Z reais, obtendo-se Y reais como troco. Quanto custou cada caneta? (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 13 / 24

Modelagem de Problemas Caso geral: Compraram-se N canetas iguais, que foram pagas com uma nota de Z reais, obtendo-se Y reais como troco. Quanto custou cada caneta? Algoritmo 3: Problema da caneta, algoritmo: Entrada: Ler os valores de N, Y e Z início Pegar os valores N,Y e Z Subtrair Y de Z e dividir o resultado por N Mostrar o resultado final fimalgoritmo (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 13 / 24

Modelagem de Problemas Caso geral: possui restrições! E se alguém pensar comprar 0 ou -3 canetas? Faz sentido? Sim. Para alguém que não possua a forma de interpretar o resultado: N=10, Z=10 e Y=15. Cada caneta: -R$0,05 (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 14 / 24

Modelagem de Problemas Caso geral: possui restrições! Pré-condições: Valor pago deve ser maior que o troco recebido; Valor pago e quantidade de canetas maior que 0; Troco maior ou igual a zero Matematicamente falando: Z > Y, N > 0, Z > 0 e Y 0 (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 15 / 24

Modelagem de Problemas Algoritmo 4: Problema da caneta, algoritmo (caso geral): Entrada: Ler os valores de N, Y e Z início se Z > Y e N > 0 e Y 0 e Z 0 então Subtrair Y de Z e dividir o resultado por N.; Mostrar o resultado final.; senão Exibir a mensagem: Erro: os valores são inconsisentes! ; fimse fimalgoritmo (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 16 / 24

Fluxograma Problema da caneta, algoritmo (fluxograma): Início N,Y,Z Valores inconsisentes F Z > Y e N > 0 e Y 0 e Z 0 V Q = (Z Y )/N) Q Fim (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 17 / 24

Conteúdo 1 A análise de síntese de um algoritmo 2 Modelagem de Problemas 3 O papel da lógica em Programação (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 18 / 24

O papel da lógica em Programação Imagine as seguintes proposições: 1 Se estiver chovendo, eu pegarei meu guarda-chuva. 2 Eu peguei meu guarda-chuva. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 19 / 24

O papel da lógica em Programação Imagine as seguintes proposições: 1 Se estiver chovendo, eu pegarei meu guarda-chuva. 2 Eu peguei meu guarda-chuva. Conclui-se É plausível que esteja chovendo! (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 19 / 24

O papel da lógica em Programação Os exemplo anteriores fornecem uma idéia do que a lógica se preocupa em estudar; Toda lógica proposta devem ser formalizadas em: Elementos Sintáticos: especificam como escrever suas proposições; Elementos Semânticos: avaliam o significado das proposições - suas interpretações. O papel da lógica está relacionado com a correta sequência de instruções: funcionamento correto do programa. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 20 / 24

O papel da lógica em Programação Em um algoritmo em execução, o valor das variáveis representa um estado; Com a execução do algoritmo, esses estados vão sendo modificados; Algoritmo correto: Estado inicial (variáveis) instruções Estado Final (variáveis) (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 21 / 24

O papel da lógica em Programação Algoritmo 5: Problema da caneta, algoritmo (caso geral): Entrada: Ler os valores de N, Y e Z início se Z > Y e N > 0 e Y 0 e Z 0 então Subtrair Y de Z e dividir o resultado por N.; Mostrar o resultado final.; senão Exibir a mensagem: Erro: os valores são inconsisentes! ; fimse fimalgoritmo Lógica de programação: Prova que um algoritmo está correto. Simulação (execução com dados reais): Verifica se o algoritmo está correto e leva a valores consistentes. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 22 / 24

Obrigado pela atenção!!! thiago.tavares@ifsuldeminas.edu.br (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 23 / 24

Referências I SOUZA, M. A. F. d. et al. Algoritmos e Lógica de Programação. second. [S.l.]: Cengage Learning. (thiago.tavares@ifsuldeminas.edu.br) Algoritmos 24 / 24