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

Preview:

Citation preview

TÉCNICAS DE PROGRAMAÇÃO

Prof. Fernando Marcos Souza Silva

fernando.silva@ifnmg.edu.br

Fev/2011

UNIDADE I (a)Algoritmos

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

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

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?

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]

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]

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”]

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]

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)

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.

Metodologia para desenvolvimento

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

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.

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

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).

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.

Fluxograma

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

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

Fluxograma

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

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.

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.

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.

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.

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

Português Estruturado

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.

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)

Formas de Representação

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

sintáticas válidas

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

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>

FIM

Recommended