30
TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva [email protected] Fev/2011

TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva [email protected] Fev/2011

Embed Size (px)

Citation preview

Page 1: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

TÉCNICAS DE PROGRAMAÇÃO

Prof. Fernando Marcos Souza Silva

[email protected]

Fev/2011

Page 2: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

UNIDADE I (a)Algoritmos

Page 3: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Objetivos

• Introduzir a Tecnologia de Algoritmos• Apresentar as Formas de

Notação/Representação de Algoritmos• Apresentar uma Metodologia para

Desenvolvimento de Algoritmos• Introduzir o Português Estruturado com

sua edição apoiada pelo software Visualg• Introduzir comandos de saída em

Português Estruturado

Page 4: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Introdução

• Desde o início de sua existência, o homem procurou criar máquinas para auxiliá-lo em seu trabalho, diminuindo o esforço físico e economizando tempo

• Hardware x Software

Page 5: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Introdução

• Usamos algoritmos muitas vezes no nosso dia-dia e nem nos damos conta disso:– Manuais de aparelhos eletrodomésticos;– Uma receita para o preparo de um prato;– O cálculo de contas de água e luz

ENTÃO, O QUE SÃO ALGORITMOS?

Page 6: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Conceitos de Algoritmos

• “Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH]

• “Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY]

Page 7: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Conceitos de Algoritmos

• “Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

Page 8: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Por que precisamos de Algoritmos

• “A noção de algoritmo é básica para toda a programação de computadores”.

[KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”]

Page 9: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Por que precisamos de Algoritmos

• “O conceito central da programação e da ciência da computação é o conceito de algoritmo”.

[WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]

Page 10: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Características

• Todo algoritmo deve apresentar algumas características básicas:– ter fim;– não dar margem a dupla interpretação (não

ambíguo);– capacidade de receber dados de entrada do

mundo exterior;– poder gerar informações de saída para o

ambiente externo ao mundo do algoritmo;– ser efetivo (eficiente)

Page 11: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Metodologia para desenvolvimento

• Ler atentamente o enunciado, destacando os pontos mais importantes;

• Definir os dados de entrada;

• Definir o processamento;

• Definir os dados de saída;

• Construir o algoritmo utilizando uma das ferramentas descritas na próxima seção;

• Testar o algoritmo realizando simulações.

Page 12: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Metodologia para desenvolvimento

• A metodologia utilizada se orienta pela sequência de aprendizado descrita na figura a seguir:

Page 13: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Formas de Representação

• Definem regras para a forma em que os algoritmos devem ser “escritos”

• Algoritmos podem ser representados, dentre outras maneiras por:– Descrição narrativa;– Fluxograma;– Linguagem algorítimica.

Page 14: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Descrição Narrativa

• Faz uso do português para descrever algoritmos• Exemplo:

Receita de Bolo• Providencie manteiga, ovos, 2 Kg de massa, etc.• Misture os ingredientes• Despeje a mistura na fôrma de bolo• Leve a fôrma ao forno• Espere 20 minutos• Retire a fôrma do forno• Deixe esfriar• Prove

Page 15: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Descrição Narrativa

• Vantagens– O português é bastante conhecido por nós

• Desvantagens– imprecisão (ambiguidade);– pouca confiabilidade (a imprecisão acarreta a

desconfiança);– extensão (normalmente, escreve-se muito

para dizer pouca coisa).

Page 16: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Exercícios de Aprendizagem

1. Faça um algoritmo, usando Descrição Narrativa, para trocar uma lâmpada.

2. Faça um algoritmo, usando Descrição Narrativa, para fritar um ovo.

3. Em uma FOLHA SEPARADA faça um algoritmo, usando Descrição Narrativa, para calcular o Mínimo Múltiplo Comum (MMC) entre dois números.

Page 17: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Fluxograma

• Utilização de símbolos gráficos para representar algoritmos

ps. Existem vários símbolos e notações para esta notação

Page 18: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Fluxograma

• Exemplo: Um algoritmo recebe como entrada 1 número, calcula e dá como saída o dobro deste número

Page 19: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Fluxograma

• Vantagens– Uma das ferramentas mais conhecidas; – Figuras dizem muito mais que palavras;– Padrão mundial

• Desvantagens– Pouca atenção aos dados, não oferecendo recursos

para descrevê-los ou representá-los;– Complica-se à medida que o algoritmo cresce.

Page 20: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Exercícios de Aprendizagem

4. Faça um algoritmo, usando Fluxograma, que receba como entrada, dois números. O algoritmo computará e dará como saída a soma dos dois números.

Page 21: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Exercícios de Aprendizagem

5. Faça um algoritmo, usando Fluxograma, que receba como entrada 3 números, calcule e dê como saída a média aritmética destes 3 números.

Page 22: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Exercícios de Aprendizagem

6. Faça um algoritmo, usando Fluxograma, que receba como entrada, as 4 notas do bimestre de um aluno. O algoritmo computará a soma destas notas, e dará como saída “APTO”, caso a nota do aluno seja maior ou igual a 60 pontos e “EM CONSTRUÇÃO” caso a nota do aluno seja menor que 60 pontos.

Page 23: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Português Estruturado

• Conhecido como Portugol ou Linguagem Algorítmica. Consiste na definição de uma pseudolinguagem de programação

• Exemplo:algoritmo "calc_dobro"var a : inteiro dobro : inteiroinicio leia (a) dobro <- 2 * a escreva (dobro)fimalgoritmo

Page 24: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Português Estruturado

Page 25: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Português Estruturado

• Vantagens– Independência física da solução (solução lógica apenas);– Usa o português como base;– Pode-se definir quais e como os dados vão estar estruturados;– Passagem quase imediata do algoritmo para uma linguagem de

programação qualquer.

• Desvantagens– Exige a definição de uma linguagem não real para trabalho;– Não padronizado.

Page 26: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Formas de Representação

• Sintaxe:– 2 tipos de regras:

• As regras lexicas descrevem as combinações válidas de caracteres que formam os tokens (palavras reservadas,identificadores, operadores, etc).

• As regras sintáticas descrevem como os tokens podem ser combinados para formar instruções válidas (comandos, expressões, subrotinas, etc)

Page 27: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Formas de Representação

• Semântica:– Descreve o significado de construções

sintáticas válidas

Page 28: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Exercícios de Aprendizagem

7. [COMANDOS DE SAÍDA] Construa um algoritmo em Português Estruturado, que dê como saída o seu nome completo

Page 29: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

Exercícios de Aprendizagem

8. [COMANDOS DE SAÍDA] Construa um algoritmo em Português Estruturado, que dê como saída o seguinte texto (com as devidas quebras de linha):

INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DO NORTE DE MINAS GERAIS – IFNMGCAMPUS ARAÇUAÍDISCIPLINA: TÉCNICAS DE PROGRAMAÇÃOPROFESSOR: FERNANDO MARCOS SOUZA SILVAALUNO: <SEU NOME>

Page 30: TÉCNICAS DE PROGRAMAÇÃO Prof. Fernando Marcos Souza Silva fernando.silva@ifnmg.edu.br Fev/2011

FIM