Algoritmos Aula 1

  • View
    60

  • Download
    4

Embed Size (px)

Transcript

Algoritmos

Reinaldo Saraiva reinaldo.saraiva@gmail.com

1

Objetivos da Disciplina:

Apresentar os fundamentos bsicos de programao de computadores, com nfase especial na modelagem de problemas atravs de algoritmos computacionais e na manipulao de dados na memria principal do computador. Abordar o projeto e o desenvolvimento de programas utilizando a tcnica Portugus Estruturado, a partir do mtodo de refinamentos sucessivos e da utilizao das estruturas bsicas da Programao Estruturada. Utilizar os conceitos bsicos de programao procedimental. Descrever os mtodos de representao e manipulao de estruturas de dados lineares. Utilizar a linguagem de programao Ruby como uma ferramenta para codificao

2

Contedo:

O Conceito de Algoritmo e formas de representao. Tcnicas de Refinamentos sucessivos e Programao Estruturada; Tipos primitivos de dados; Constantes e variveis; Operadores bsicos; Expresses aritmticas, relacionais e lgicas; Comando de atribuio; Comando de desvio condicional; Comandos de repetio; Comando de seleo. Vetores.3

Bibliografia

MANZANO, Jos Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos - Lgica para

Desenvolvimento de Programao de Computadores. 22. ed. So Paulo: rica,2009.

Flanaga, David. Yukihiro Matsumoto. A linguagem de programao Ruby. 1 ed. Altabooks. 2008.

4

Vamos comear a trabalhar ento???Algoritmos Aula 01

5

Sumrio

Conceito de Algoritmo Formas de Representao do Algoritmo Descrevendo um ambiente para a execuo do algoritmo Exerccios Conceitos Bsicos de Linguagem de Programao

Compiladores

Exerccios6

Voc j executou um algoritmo hoje?

Algoritmo para sacar dinheiro no Banco 24 HorasPasso 1: Ir at um banco 24 horas Passo 2: Inserir o carto Passo 3: Digitar a senha Passo 4: Solicitar a quantia desejada Passo 5: Retirar o carto Passo 6: Pegar o dinheiro Passo 7: Sair do banco 24 horas

Voc pode estar pensando: Mas eu realizo esse algoritmo de maneira diferente! timo. Voc acaba de entender que pode haver diferentes algoritmos para atingir o mesmo objetivo.

7

Vamos escrever algoritmos?

Voc percebeu que executa algoritmos diariamente. Agora, comece a escrev-los: Algoritmo para trocar uma lmpada: Algoritmo para fazer um churrasco: Algoritmo para somar os inteiros menores que 10:

8

Ento, o que um algoritmo?

Algoritmo um conjunto finito de regras, bem definidas, que nos levam a soluo de um problema em um tempo finito

Algoritmo a descrio de um conjunto de aes que, obedecidas, resultam numa sucesso finita de passos, atingindo o objetivo

9

Algoritmos

Perguntar no ofende

Professor, Escrever todos os termos da seqncia 1, 3, 5, 7, 9,... um algoritmo?

Como escrever bons algoritmos?

Ler atentamente o enunciado, destacando os pontos mais importantes. Definir quais sero os dados fornecidos para a execuo do algoritmo. Definir quais sero os clculos a serem executados. Definir quais sero os dados gerados pela execuo do algoritmo. Construir o algoritmo. Testar o algoritmo realizando simulaes10

Para que se tenha um algoritmo preciso:

Ter fim; No dar margem dupla interpretao (no ambguo); Capacidade de receber dado(s) de entrada do mundo exterior; Poder gerar informaes de sada para o mundo externo ao do ambiente do algoritmo; Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcanveis em um tempo finito).11

Formas de Representao dos Algoritmos

Descrio Narrativa

Faz-se uso do portugus para descrever algoritmos

Vantagens: -o portugus etc. Providencie manteiga, ovos, 2 Kg de massa, bastante conhecido por ns; Misture os ingredientes Desvantagens Despeje a mistura na frma de bolo - impreciso; Leve a frma ao forno - pouca confiabilidade (a impreciso Espere 20 minutos acarreta a desconfiana); Retire a frma do forno - extenso (normalmente, escreveDeixe esfriar se muito para dizer pouca coisa). EXEMPLO: Receita de Bolo:

Prove12

Formas de Representao dos Algoritmos

Fluxograma

Utilizao de smbolos algoritmos

Smbolos Padronizados

VANTAGENS: - Uma das ferramentas mais conhecidas; grficos para representar - Figuras dizem muito mais que palavras; - Padro mundial DESVANTAGENS: - Pouca ateno aos dados, no oferecendo recursos para descrev-los ou representlos; - Complica-se medida que o algoritmo cresce.

13

Formas de Representao dos Algoritmos

Linguagem Algortmica

Consiste na definio de uma pseudolinguagem de programao

VANTAGENS: EXEMPLO: Algoritmo CALCULA_DOBRO como base; - Usa o portugus NUM,DOBRO : inteiro - Pode-se definir quais e como os dados vo estar estruturados; incio - Passagem quase imediata do algoritmo para uma linguagem de Leia NUM programao qualquer. DOBRO 2 * NUM DESVANTAGENS: - Exige a definio de uma Escreva DOBRO linguagem no real para trabalho; fim - No padronizado.14

Meu primeiro algoritmo

hora de comear a conhecer o mundo dos algoritmos. Voc dever empregar as trs tcnicas apresentadas para resolver o seguinte problema: Narrativa, Fluxograma, Pseudocdigo.

Fazer um algoritmo para calcular e mostrar o resultado da soma de 3 nmeros fornecidos pelo usurio.

15

Soluo utilizando a descrio narrativa:

Passo 1: Receber os trs nmeros que sero somados Passo 2: Calcular a soma dos trs nmeros Passo 3: Mostrar o resultado obtido para a soma

16

Soluo utilizando fluxograma:

17

Soluo utilizando pseudocdigo:VARIAVEIS NUMERICO N1,N2,N3,S INICIO ESCREVER "INFORME O PRIMEIRO NMERO" LER N1 ESCREVER "INFORME O SEGUNDO NMERO" LER N2 ESCREVER "INFORME O TERCEIRO NMERO" LER N3 S := N1 + N2 + N3 ESCREVER "SOMA = ",S FIM

VARIAVEIS, NUMERICO, INICIO ESCREVER, LER, FIM so palavras reservas em pseudocdigo

Voc pode observar que este pseudocdigo utiliza algumas palavras reservadas, que dever aprender, ao longo do curso.

18

Um Ambiente para descrever Algoritmos

19

Um Ambiente para descrever Algoritmos

(1) Dispositivo de entrada (o teclado):

o meio pelo qual os dados que sero trabalhados pelo algoritmo vo ser introduzidos em nosso computador hipottico

(2) Unidade Lgica e Aritmtica (ULA):

Parte responsvel pelas operaes matemticas e avaliaes lgicas

(3) Unidade de Controle:

Exerce controle sobre as demais partes do nosso computador.

(4) Memria:

Guarda o algoritmo a ser executado e os dados a serem utilizados pelo mesmo.

(5) Dispositivo de Sada (vdeo e impressora):

o meio que se dispe para apresentao dos resultados obtidos.20

Resolvendo um Problema

A partir de dois nmeros que sero informados, calcular a adio dos mesmos

a) saber quais so os nmeros; b) calcular a soma dos nmeros; c) responder questo com o valor do resultado.

21

Exemplo: Resolvendo um Problema

Vejamos como seria resolvido esse mesmo problema em termos das operaes bsicas

a) operao de entrada de dados dos nmeros b1) movimento do valor dos nmeros entre a memria e a ULA b2) operao aritmtica de somar os 2 nmeros b3) movimentao do resultado da ULA para guardar na memria c) operao de sada do resultado, que est guardado na memria, para o dispositivo de sada desejado22

Exerccios

01. Defina, com suas palavras, o que algoritmo. 02. Cite alguns algoritmos que podemos encontrar na vida quotidiana.

03. De acordo com seu entendimento, qual a caracterstica mais importante em um algoritmo? Justifique a sua resposta. 04. Um algoritmo no pode conter um comando como Escreva todos os nmeros inteiros positivos. Por qu?23

Conceitos Bsicos de Programao

Para armazenar um algoritmo na memria de um computador e para que ele possa, em seguida, comandar as operaes a serem executadas, necessrio que ele seja programado, isto , que seja transcrito para uma linguagem que o computador possa entender, direta ou indiretamente

24

Linguagens de Programao

Linguagem uma maneira de comunicao que segue uma forma e uma estrutura com significado interpretvel Portanto, linguagem de programao um conjunto finito de palavras, comandos e instrues, escritos com o objetivo de orientar a realizao de uma tarefa pelo computador

25

Conceitos Bsicos de Programao

Logicamente, a linguagem que ns utilizamos em nosso cotidiano diferente da linguagem utilizada pela mquina A mquina trabalha somente com cdigos numricos (linguagem de mquina), baseados nos nmeros 0 e 1 (sistema binrio), que representam impulsos eltricos, ausente e presente

26

Conceitos Bsicos de Programao

Assim, qualquer linguagem de programao deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porm lenta) e o da linguagem de mquina (muito rpida, porm complexa) Este o conceito de nvel de linguagem: alto nvel para as mais prximas da linguagem humana; baixo nvel para as mais semelhantes linguagem de mquina27

Tradutores

Para que um computador possa "entender" um programa escrito em uma linguagem de alto nvel, torna-se necessrio um meio de traduo entre a linguagem utilizada no programa e a linguagem de mquina.

compilador

28

Compilador

traduz o programa escrito em linguagem de alto nvel (programa-fonte) para um programa equivalente escrito em linguagem de mquina (programa-objeto)

29

Exemplos de Linguagens de Programao

PASCAL, VISUALG, C, CLIPPER, COBOL, HTML, JAVA, DELPHI, PHP, etc.

30

Com que pseudocdigo eu vou?

Voc j sabe que ao formular um algoritmo usando pseudocdigo, deve obedecer uma conveno, que emprega palavras reservadas e regras de escrita O problema