Algoritmo e Pseudo-código

Documentos relacionados
Aula 1 Algoritmo e Pseudo-código

Estruturas de Repetição

1. Noção de algoritmo

INF1005: Programação I. Algoritmos e Pseudocódigo

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Introdução à Algoritmos. Aula 11

Metodologias de Programação

Algoritmos. Prof. Jonatas Bastos

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

Aula 4 Estruturas Condicionais

Programação de Computadores I. Linguagem C Função

OBSERVAÇÕES: EXERCÍCIOS

Aula 5 Estrutura de Repetição e Vetores

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

Algoritmos APRENDENDO A PROGRAMAR COM C#

Comandos de Desvio 1

TUTORIAL MATLAB Victor Breder 2016

MC Teste de Mesa e Comandos Repetitivos

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

FRAÇÃO. Número de partes pintadas 3 e números de partes em foi dividida a figura 5

Unidade 10 Análise combinatória. Introdução Princípio Fundamental da contagem Fatorial

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Modelando sistemas em UML - Casos de uso.

Avaliação e Desempenho Aula 1 - Simulação

Introdução aos Algoritmos

Nº horas ESTRATÉGIAS RECURSOS AVALIAÇÃO

1. Estrutura de Dados

Estruturas de controlo condicional

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

Exercícios: Vetores e Matrizes

Introdução aos Algoritmos

1 Cálculo do valor à vista

Exercícios de Fixação Aulas 05 e 06

Representações de caracteres

Lista 4 Introdução à Programação Entregar até 07/05/2012

Aula 01 Introdução Custo de um algoritmo, Funções de complexidad e Recursão

Introdução a Funções

Admistração de Redes de Computadores (ARC)

Primeiro Passo. Na sequência, surgirá a tela de Login, onde você poderá realizar uma das seguintes tarefas:

ALGORITMOS AULA 1. Profª Amanda Gondim

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

Algoritmos e Técnicas de Programação

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

PLANEJAMENTO ACADÊMICO. Carga Horária: Presencial Distância Total PROFESSOR (A): MAT. SIAPE

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Processo de Desenvolvimento de Software

Professor: André Rabelo Curso: Engenharia da Computação Disciplina: Lógica Digital Período: 3º Data Entrega: 21/03/2012 Valor: 15 pts Objetivos:

Primeira Prova de Análise e otimização de Código - DCC888 -

Algoritmos & Programação

Linguagens de Programação:

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Informação-Prova de Equivalência à disciplina de: Aplicações Informáticas B. 1. Introdução. Ensino Secundário. Ano letivo de 2011/12

Apontamentos de matemática 5.º ano - Múltiplos e divisores

Potenciação e radiciação

Orientação a Objetos

2ª Lista de Exercícios

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação

Programação de Computadores - I. Profª Beatriz Profº Israel

Controle de Fluxo Comandos de repetição: while e do-while

EXPLORANDO A RESOLUÇÃO DE PROBLEMAS COM O MAPLE

FESP FACULDADE DE ENGENHARIA SÃO PAULO DISCIPLINA BP1: PROCESSAMENTO DE DADOS

Conjuntos mecânicos I

Até o momento, vimos que a estrutura de um computador segue uma seqüência: ENTRADA => PROCESSAMENTO => SAÍDA

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Exercícios: comandos de repetição

POTENCIAÇÂO. A potenciação é uma forma de representar uma multiplicação de fatores iguais.

#Conceituação. Algoritmos. Eliezio Soares

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Unidade 3 Função Afim

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

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

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Lógica Aula 3. Definição. Estrutura de decisão

CAPÍTULO 2 SISTEMAS DE NUMERAÇÃO E CÓDIGOS

Computação Gráfica Aula 0. Alexandre de Barros Barreto - Ms

Universidade Paulista

SOFTWARE PARA O ENSINO DE POLINÔMIO

INCLUSÃO NO ENSINO DE FÍSICA: ACÚSTICA PARA SURDOS

Usando potências de 10

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

2. Tipos Abstratos de Dados

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Em linguagem matemática, essa proprieade pode ser escrita da seguinte maneira: x. 1 = x Onde x representa um número natural qualquer.

Lista de Exercícios - Adição

Guia de qualidade de cores

Computação I (MAB120) DCC/UFRJ

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Exercícios (if/ if else/ if elseif else)

LINGUAGEM JAVA - RESUMO

Welcome the programmation Linux with shell script!!! Seja bem vindo a programação Linux com shell script!!!

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Introdução à Programação

PROGRAMAÇÃO ORIENTADA A OBJETO INTRODUÇÃO

Transcrição:

Departamento de Sistemas de Computação Universidade de São Paulo Algoritmo e Pseudo-código Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)

Objetivos do Curso Desenvolver o Pensamento Computacional

Pensamento Computacional Técnicas específicas de pensamento computacional incluem: Decomposição do problema Reconhecimento de padrões Generalização de padrões para definir abstrações ou modelos Projeto de algoritmos Análise de dados e visualização

Suponha que você tenha um amigo estrangeiro que quer fazer o bolo de chocolate que você preparou no dia anterior? Como você o ajudaria?

Entrada Passos E a saída?

Decomposição de problemas Seu amigo estrangeiro se ofereceu a ir ao supermercado para fazer as compras. Como você explicaria o procedimento para passar no caixa?

Decomposição de problemas Você tem dois programas de computador que fazem a mesma coisa e precisa indicar ao gestor o melhor dentre eles, o que você faria?

Pensamento Computacional Técnicas específicas de pensamento computacional incluem: Decomposição do problema Reconhecimento de padrões Generalização de padrões para definir abstrações ou modelos Projeto de algoritmos Análise de dados e visualização

Para resolver os problemas apresentados você precisa pelo menos: Indicar quais são as entradas esperadas Indicar quais são as saídas produzidas Um conjunto de passos não ambíguos para transformar as entradas nas saídas. Isso é um algoritmo

Algoritmo Um algoritmo é uma conjunto de atividades que podem ser executadas passo a passo para resolver problemas Outras definições: - http://en.wikipedia.org/wiki/algorithm - Robert Sedgewick Algorithms in C, 3rd Ed, Addison Wesley

Mas peraí professor... Um algoritmo então é um programa de computador? Não. Um programa de computador é uma das possíveis representações de um algoritmo. Um algoritmo então é um processo? Não, processo é a atividade de executar sequência bem definidas e, consequentemente, também é a atividade de executar um algoritmo.

Algoritmos estão em toda a parte

Não adianta fugir

Imagine que você queira dar escalabilidade para realizar atividades em sua escola Um algoritmo pode analisar as atividades dos alunos e recomendar material de reforço Um algoritmo pode avaliar as provas dos alunos Um algoritmo pode identificar a maneira mais eficiente de dar apoio ao professor para criar material didático Em Educação a Distância (EAD): Existem algoritmos para personalizar a aprendizagem colocando as atividades no ar de maneira diferenciada Em computação tudo vira algoritmos

Se não é possível fugir, então junte-se a ele. Seja um criador de algoritmo de primeira linha! Como?

Como criar algoritmos? Para se tornar um bom cozinheiro, você não memoriza livros e livros de receitas. Você estuda receitas existentes. Você pratica fazê-los. Você experimenta com suas próprias variações. Até que possa inventar suas próprias receitas.

Como criar algoritmos? Para se tornar um bom profissional em exatas, você não deve memorizar livros e livros de algoritmos. Você estuda algoritmos famosos. Você pratica implementá-los e executá-los. Depois passa a reconhecer padrões mais gerais, e a experimentar implementações com suas próprias variações. Até que, finalmente, você irá inventar seus próprios algoritmos.

OK. Agora eu sei o que é um algoritmo! Mas como escrever ou representar um algoritmo? Descrição Narrativa Fluxograma Pseudocódigo

E como representar um algoritmo? Descrição narrativa: consiste em analisar o enunciado do problema e escrever, utilizando linguagem natural, os passos a serem seguidos para sua resolução (receita de bolo). Ponto positivo: Não é necessário aprender novos conceitos, pois a língua natural já é bem conhecida. Ponto negativo: A língua natural abre espaço para várias interpretações, dificultando a transcrição desse algoritmo para programa

E como representar um algoritmo? Fluxograma: consiste em analisar o enunciado do problema e escrever, utilizando símbolos gráficos, os passos a serem seguidos para sua resolução Ponto positivo: O entendimento de elementos gráficos é mais simples que o entendimento de textos. Ponto negativo: Os fluxogramas devem ser entendidos e o algoritmo resultante não é detalhado. Isso dificulta sua transcrição para um programa

Fonte: http://wiki.icmc.usp.br/index.php/scc-101(2011101) Aula 2

E como representar um algoritmo? 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 Ponto positivo: Representação clara sem as especificações de linguagem de programação. A passagem do algoritmo para qualquer linguagem de programação é mais simples. Ponto negativo: As regras do pseudocódigo devem ser aprendidas

Exemplos Crie um algoritmo para exibir o resultado da multiplicação de dois números utilizando as três formas de representação

Exemplo Descrição Narrativa 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.

Exemplo - Fluxograma

Exemplo - Pseudocódigo Existem várias formas de escrever o pseudocódigo. Exemplos: Multplicacao (n1, n2) m n1*n2 RETORNE m FIM ALGORITMO DECLARE n1, n2, m LEIA n1, n2 m n1*n2 ESCREVA m FIM

Exemplo código C Código C #include<stdio.h> void main() { int n1, n2, m; scanf("%d %d", &n1, &n2); m = n1*n2; printf("\n %d", m); } ALGORITMO DECLARE n1, n2, m LEIA n1, n2 m n1*n2 ESCREVA m FIM

Representação de Algoritmos Leitura/Escrita Leitura de dados: LEIA Escrita de dados: IMPRIMA Estrutura Condicional Simples: SE-ENTAO Composta: SE-ENTAO-SENAO Estrutura de Repetição PARA ENQUANTO REPITA

Durante as aulas utilizaremos pseudocódigo (e scratch) como forma de representar um algoritmo

Representação de Algoritmos Declaração de variáveis: DECLARE Leitura/Escrita Leitura de dados: LEIA Escrita de dados: IMPRIMA Estrutura Condicional Simples: SE-ENTAO Composta: SE-ENTAO-SENAO Estrutura de Repetição PARA ENQUANTO REPITA

Estrutura Condicional Simples SE <Decisão> ENTÃO Instrução 1... Instrução N

Estrutura Condicional Composta SE <Decisão> ENTÃO Instrução 1 Instrução N SENÃO Instrução 1 Instrução N

Exemplos Dado dois inteiros crie um algoritmo para retornar o maior deles

Estrutura Condicional Composta Entrada: inteiros i e j Saída: um inteiro, maior valor entre i e j SE i < j ENTÃO IMPRIMA j SENÃO IMPRIMA i

Exemplos Dado três inteiros crie um algoritmo para retornar o menor deles

Tarefa para Sábado Dado três inteiros crie um algoritmo para imprimi-los em ordem crescente Atividade deve ser feita em duplas. Entregue o arquivo do scratch