Resolução de problemas e desenvolvimento de algoritmos



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

1.1. Organização de um Sistema Computacional

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

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

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

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

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

Algoritmo e Programação

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

Algoritmos e Programação de Computadores

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

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

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

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

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

Algoritmos e Programação Conceitos e Estruturas básicas (Variáveis, constantes, tipos de dados)

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

ICC Introdução para JavaScript

Linguagem algorítmica: Portugol

Programação para Computação

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

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

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Algoritmos com VisuAlg

Algoritmos e Programação Parte Teórica

A FÓRMULA DE CONVERSÃO ENTRE AS UNIDADES É: F = 1.8 C

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

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

Algoritmos e Programação. Prof. Tarcio Carvalho

Aluísio Eustáquio da Silva

AMBIENTE DE PROGRAMAÇÃO PYTHON

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

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

Introdução a Algoritmos Parte 04

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

Algoritmos e Programação _ Departamento de Informática

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Capítulo 2: Introdução à Linguagem C

EXERCÍCIOS. 2. Faça um algoritmo que receba dois números e ao final mostre a soma, subtração, multiplicação e a divisão dos números lidos.

Conceitos Importantes:

Componentes da linguagem C++

ESTRUTURA CONDICIONAL

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

Lógica de Programação

UFRPE Prof. Gustavo Callou

Algoritmos. Cláudio Barbosa

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Lógica. Everson Santos Araujo

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

Programação Estruturada

Linguagens de Programação Algoritmos. Introdução à Programação. Graduação em Ciência da Computação - CIn/UFPE - Introdução à Programação

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

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Tutorial de Matlab Francesco Franco

LÓGICA DE PROGRAMAÇÃO Prof. José Geraldo

INF 1005 Programação I

ULA Sinais de Controle enviados pela UC

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Algoritmos: Lógica para desenvolvimento de programação de computadores. Autor: José Augusto Manzano. Capítulo 1 Abordagem Contextual

23/02/ NOME João CPF SALARIO 3000,00 VARIÁVEL VARIÁVEIS

Estruturas de Controle A Tomada de Decisões

MC102 Algoritmos e Programação de Computadores 1ª Aula Introdução à Programação de Computadores

10/02/2015. As linguagens. Algoritmos e Lógica de programação. Os produtos. Os ingredientes. Introdução. Atuais:.Net Java Delphi PHP

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Introdução à Computação para o Ensino Médio. Centro Técnico Científico

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

TÉCNICAS DE PROGRAMAÇÃO

BC0501 Linguagens de Programação

Introdução aos cálculos de datas

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

CURSO BÁSICO DE PROGRAMAÇÃO AULA 7

Algoritmos Computacionais ( Programas )

Introdução. INF1005 Programação I 33K Prof. Gustavo Moreira gmoreira@inf.puc-rio.br

JSP - ORIENTADO A OBJETOS

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Introdução. Introdução. Introdução. Organização Estruturada de Computadores. Introdução. Máquinas Multiníveis

Orientação a Objetos

UNIDADE 6 - PROGRAMAÇÃO MODULAR

Tecnologia da Informação. Visão Geral sobre Informática

Introdução ao Processamento de Dados (IPD)

Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Sistemas de Numerações.

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

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

Algoritmo para converter uma temperatura em Fahrenheit para Celsius

Universidade Federal do Vale do São Francisco - UNIVASF Colegiado de Engenharia de Computação CECOMP

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

Curso Técnico em Redes

3. Tipos de Dados, Constantes e Variáveis.

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

Organização de programas em Python. Vanessa Braganholo

Lógica de Programação

Introdução à Computação

2. Representação Numérica

Transcrição:

SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo

Sumário Análise e solução de problemas Representação Documentação

Análise e solução de problemas Um algoritmo é um conjunto ordenado de passos executáveis não ambíguos, definindo um processo que tem término. O algoritmo é abstrato e distinto de suas representações. Um único algoritmo pode ser representado de diversas formas. Por exemplo: F = (9/5)C + 32. Multiplicar a temperatura, lida em graus Celsius, por 9/5, e então somar 32 ao produto assim obtido. Algoritmo x Programa x Processo. Um programa é uma das possíveis representações de um algoritmo. Processo é a atividade de executar um programa e, conseqüentemente, também é a atividade de executar um algoritmo.

Análise e solução de problemas Um algoritmo é um conjunto ordenado de passos. Um algoritmo deve ter uma estrutura bem estabelecida, quanto à ordem em que seus passos são executados. Não significa necessariamente execução em uma seqüência preestabelecida, onde o primeiro passo é seguido por um segundo, e assim por diante. Os passos de um algoritmo não podem ser ambíguos. As instruções devem ser claras o bastante para determinar de forma única e completa as ações necessária em cada passo do algoritmo. Passo1: Converta a leitura da temperatura de graus Celsius para Fahrenheit. A instrução pode ser clara para um especialista, mas ambígua para um leigo. O problema reside na representação, mas não no algoritmo. Algoritmos devem sempre levar o processamento a um estado de término.

Análise e solução de problemas Delineamento de algoritmos Descobrir um método para solucionar um problema. É o passo que mais desafios apresenta no processo de desenvolvimento de softwares. O matemático G. Polya apresenta fases para o processo de resolução de problemas. Fase 1. Entender o problema Fase 2. Construir um plano para solucionar o problema. Fase 3. Colocar o plano em funcionamento. Fase 4. Avaliar a solução quanto à precisão e quanto ao seu potencial como ferramenta para solucionar outros problemas.

Análise e solução de problemas Traduzindo para o contexto do desenvolvimento de programas: Fase 1. Compreender o problema. Fase 2. Adquirir uma idéia da forma como um procedimento algorítmico poderia resolver o problema. Fase 3. Formular o algoritmo e representá-lo na forma de um programa. Fase 4. Avaliar o programa quanto à precisão e quanto ao seu potencial como ferramenta para resolver outros problemas.

Descrição narrativa: consiste em analisar o enunciado do problema e escrever, utilizando linguagem natural, os passos a serem seguidos para sua resolução. Não é necessário aprender novos conceitos, pois a língua natural já é bem conhecida. A língua natural abre espaço para várias interpretações, dificultando a transcrição desse algoritmo para programa. Fluxograma: consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos, os passos a serem seguidos para sua resolução. O entendimento de elementos gráficos é mais simples que o entendimento de textos. Os fluxogramas devem ser entendidos e o algoritmo resultante não é detalhado. Isso dificulta sua transcrição para um programa

Pseudocódigo: consiste em analisar o enunciado do problema e escrever, por meio de regras predefinidas, os passos a serem seguidos para sua resolução. A passagem do algoritmo para qualquer linguagem de programação é quase imediata. As regras do pseudocódigo devem ser aprendidas.

EXEMPLO: Algoritmo para exibir o resultado da multiplicação de dois números. Algoritmo em descrição narrativa PASSO 1 Receber os dois números que serão multiplicados. PASSO 2 Multiplicar os números. PASSO 3 Mostrar o resultado obtido da multiplicação. Algoritmo em fluxograma Início N1, N2 M = N1*N2 M FIM

Algoritmo em pseudocódigo ALGORITMO DECLARE N1, N2, M NUMÉRICO ESCREVA Digite dois números LEIA N1, N2 M N1*N2 ESCREVA Multiplicação =, M FIM_ALGORITMO

Os comandos nas linguagens de programação pertencem a três categorias. Comandos declarativos: definem uma terminologia personalizada a ser utilizada no programa. Por exemplo, nomes associados aos dados. Comandos imperativos: descrevem os passos dos algoritmos subjacentes. Comentários: facilitam a leitura de um programa.

Parte declarativa de um programa: são usados comandos declarativos para descrever a terminologia. Parte processual (procedimental): são utilizados comandos imperativos para descrever ações a serem executadas. Parte declarativa Módulo de programa Parte procedimental

Variáveis Representação e documentação São identificadores de posições de memória cujo valor armazenado está sujeito a alterações. Possui nome (ou identificador) e tipo (numéricos, lógicos, literais ou caracteres). Identificadores Nomes das variáveis, constantes, rotinas, programas, etc. Podem ser formados utilizando caractere sublinhado, números e letras (maiúsculas ou minúsculas). Uma letra ou o caractere sublinhado podem ser o primeiro caractere em um identificado. Espaços em branco e caracteres especiais (@,$,+, -, %,!) não podem ser utilizados em um identificador. Também não podem ser utilizadas palavras reservadas. 14

Tipo de dados Podem ser numéricos, literal ou lógico. Um tipo define determinado dado, permitindo saber quais operações podem ser executadas sobre determinado tipo de dado. Por exemplo, é possível somar dois valores numéricos, mas não é possível somar um número e uma frase (cadeia de caracteres). O tipo de dado adequado deve ser manipulado pelo algoritmo. Por exemplo, não podemos utilizar um tipo inteiro para tratar valores reais.

Tipos de Dados Numéricos Podem ser inteiros ou reais. Exemplo: Inteiros Reais -23 23.45 98 346.89 0 0.0 237-34.88-2 -247.0 16

Tipos de Dados Lógicos Também chamados booleanos. Assumem valores verdadeiro ou falso. Tipos de Dados Literais ou Caracteres Formados por um único caractere ou por uma cadeia de caracteres. Os caracteres podem ser letras maiúsculas, minúsculas, números e caracteres especiais (&, #, @,?, +). Os números, enquanto caracteres, não podem ser usados para cálculos. Exemplo: aluno, 123, @ internet, 0.34, 1+2. 17

Comentários Representação e documentação Formas sintáticas que permitem a inserção de textos explicativos no programa. A documentação resultante é chamada documentação interna que é ignorada pelo tradutor, ou seja, não afeta o programa do ponto de vista da máquina. Sem essa documentação, programas grandes e complexos podem facilmente ultrapassar os limites da capacidade humana de compreensão. São utilizados para descrever um algoritmo ou parte dele. São importantes para aumentar a legibilidade ou entendimento da solução expressa por um algoritmo. Podem ser usados para indicar o significado das variáveis e constantes utilizadas. 18

Estrutura Condicional Simples Algoritmo em pseudocódigo SE <Decisão> ENTÃO Instrução 1 Instrução2 Falso Algoritmo em fluxograma Verdadeiro Decisão Instrução 1 Instrução 2 19

Estrutura Condicional Composta Algoritmo em pseudocódigo SE <Decisão> ENTÃO Instrução 1 SENÃO Instrução2 Instrução 3 Algoritmo em fluxograma Falso Verdadeiro Decisão Instrução 2 Instrução 1 Instrução 3 20

Exercício Resolva os seguintes exercícios utilizando a representação narrativa, fluxograma e pseudocódigo: Faça um algoritmo que exiba o resultado da divisão de dois números. 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. Faça um algoritmo para calcular o novo salário de um funcionário. Sabe-se que os funcionários que recebem atualmente salário de até R$500 terão aumento de 20%; os demais terão aumento de 10%.