Algoritmos Aula 1

Post on 26-Jul-2015

88 views 4 download

Transcript of Algoritmos Aula 1

1

Algoritmos

Reinaldo Saraivareinaldo.saraiva@gmail.com

2

Objetivos da Disciplina: Apresentar os fundamentos básicos de programação de

computadores, com ênfase especial na modelagem de problemas através de algoritmos computacionais e na manipulação de dados na memória principal do computador.

Abordar o projeto e o desenvolvimento de programas utilizando a técnica Português Estruturado, a partir do método de refinamentos sucessivos e da utilização das estruturas básicas da Programação Estruturada.

Utilizar os conceitos básicos de programação procedimental. Descrever os métodos de representação e manipulação de

estruturas de dados lineares. Utilizar a linguagem de programação Ruby como uma ferramenta

para codificação

3

Conteúdo:

O Conceito de Algoritmo e formas de representação. Técnicas de Refinamentos sucessivos e Programação Estruturada;

Tipos primitivos de dados; Constantes e variáveis; Operadores básicos;

Expressões aritméticas, relacionais e lógicas; Comando de atribuição; Comando de desvio condicional; Comandos de repetição; Comando de seleção. Vetores.

4

Bibliografia

MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos - Lógica para Desenvolvimento de Programação de Computadores. 22. ed. São Paulo: Érica, 2009.

Flanaga, David. Yukihiro Matsumoto. A linguagem de programação Ruby. 1 ed. Altabooks. 2008.

Vamos começar a trabalhar então???

Algoritmos – Aula 01

5

6

Sumário

Conceito de Algoritmo Formas de Representação do Algoritmo Descrevendo um ambiente para a execução

do algoritmo Exercícios Conceitos Básicos de Linguagem de

Programação Compiladores

Exercícios

7

Você já executou um algoritmo hoje? Algoritmo para sacar dinheiro no Banco 24 Horas

Passo 1: Ir até um banco 24 horasPasso 2: Inserir o cartãoPasso 3: Digitar a senhaPasso 4: Solicitar a quantia desejadaPasso 5: Retirar o cartãoPasso 6: Pegar o dinheiroPasso 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 haverdiferentes algoritmos para atingir o mesmo objetivo.

8

Vamos escrever algoritmos?

Você percebeu que executa algoritmos diariamente. Agora, comece a escrevê-los:

Algoritmo para trocar uma lâmpada: Algoritmo para fazer um churrasco: Algoritmo para somar os inteiros menores

que 10:

9

Então, o que é um algoritmo?

“Algoritmo é um conjunto finito de regras, bem definidas, que nos levam a solução de um problema em um tempo finito”

“Algoritmo é a descrição de um conjunto de ações que, obedecidas, resultam numa sucessão finita de passos, atingindo o objetivo”

10

Algoritmos

Perguntar não ofende Professor, “Escrever todos os termos da seqüência 1, 3, 5,

7, 9,...” é um algoritmo?

Como escrever bons algoritmos? Ler atentamente o enunciado, destacando os pontos mais

importantes. Definir quais serão os dados fornecidos para a execução do

algoritmo. Definir quais serão os cálculos a serem executados. Definir quais serão os dados gerados pela execução do

algoritmo. Construir o algoritmo. Testar o algoritmo realizando simulações

11

Para que se tenha um algoritmo é preciso: Ter fim; Não dar margem à dupla interpretação (não

ambíguo); Capacidade de receber dado(s) de entrada do

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

externo ao do ambiente do algoritmo; Ser efetivo (todas as etapas especificadas no

algoritmo devem ser alcançáveis em um tempo finito).

12

Formas de Representação dos Algoritmos Descrição Narrativa

Faz-se uso do português para descrever algoritmos

EXEMPLO: Receita de Bolo:Providencie manteiga, ovos, 2 Kg de massa, etc.Misture os ingredientesDespeje a mistura na fôrma de boloLeve a fôrma ao fornoEspere 20 minutosRetire a fôrma do fornoDeixe esfriarProve

Vantagens:-o português é bastante conhecido por nós;

Desvantagens- imprecisão;- pouca confiabilidade (a imprecisão acarreta a desconfiança);- extensão (normalmente, escreve-se muito para dizer pouca coisa).

13

Formas de Representação dos Algoritmos Fluxograma

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

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.Símbolos

Padronizados

14

Formas de Representação dos Algoritmos Linguagem Algorítmica

Consiste na definição de uma pseudolinguagem de programação EXEMPLO: Algoritmo CALCULA_DOBRO

NUM,DOBRO : inteiro

início

Leia NUM

DOBRO 2 * NUM

Escreva DOBRO

fim

VANTAGENS:- 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.

15

Meu primeiro algoritmo

É hora de começar a conhecer o mundo dos algoritmos. Você deverá empregar as três técnicas apresentadas para resolver o seguinte problema: Narrativa, Fluxograma, Pseudocódigo. Fazer um algoritmo para calcular e mostrar

o resultado da soma de 3 números fornecidos pelo usuário.

16

Solução utilizando a descrição narrativa: Passo 1: Receber os três números que serão

somados Passo 2: Calcular a soma dos três números Passo 3: Mostrar o resultado obtido para a

soma

17

Solução utilizando fluxograma:

18

Solução utilizando pseudocódigo:VARIAVEISNUMERICO N1,N2,N3,SINICIOESCREVER "INFORME O PRIMEIRO NÚMERO"LER N1ESCREVER "INFORME O SEGUNDO NÚMERO"LER N2ESCREVER "INFORME O TERCEIRO NÚMERO"LER N3S := N1 + N2 + N3ESCREVER "SOMA = ",SFIM

Você pode observar que este pseudocódigo utiliza algumas palavras reservadas, que deverá aprender, ao longo do curso.

VARIAVEIS, NUMERICO, INICIO ESCREVER, LER, FIM são palavras reservas em pseudocódigo

19

Um Ambiente para descrever Algoritmos

20

Um Ambiente para descrever Algoritmos (1) Dispositivo de entrada (o teclado):

É o meio pelo qual os dados que serão trabalhados pelo algoritmo vão ser introduzidos em nosso computador hipotético

(2) Unidade Lógica e Aritmética (ULA): Parte responsável pelas operações matemáticas e avaliações lógicas

(3) Unidade de Controle: Exerce controle sobre as demais partes do nosso computador.

(4) Memória: Guarda o algoritmo a ser executado e os dados a serem utilizados pelo

mesmo.

(5) Dispositivo de Saída (vídeo e impressora): É o meio que se dispõe para apresentação dos resultados obtidos.

21

Resolvendo um Problema

A partir de dois números que serão informados, calcular a adição dos mesmos a) saber quais são os números; b) calcular a soma dos números; c) responder à questão com o valor do resultado.

22

Exemplo: Resolvendo um Problema Vejamos como seria resolvido esse mesmo

problema em termos das operações básicas a) operação de entrada de dados dos números b1) movimento do valor dos números entre a

memória e a ULA b2) operação aritmética de somar os 2 números b3) movimentação do resultado da ULA para

guardar na memória c) operação de saída do resultado, que está

guardado na memória, para o dispositivo de saída desejado

23

Exercícios

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 característica mais importante em um algoritmo? Justifique a sua resposta.

04. Um algoritmo não pode conter um comando como “Escreva todos os números inteiros positivos”. Por quê?

24

Conceitos Básicos de Programação Para armazenar um algoritmo na memória de

um computador e para que ele possa, em seguida, comandar as operações a serem executadas, é necessário que ele seja programado, isto é, que seja transcrito para uma linguagem que o computador possa entender, direta ou indiretamente

25

Linguagens de Programação

Linguagem é uma maneira de comunicação que segue uma forma e uma estrutura com significado interpretável

Portanto, linguagem de programação é um conjunto finito de palavras, comandos e instruções, escritos com o objetivo de orientar a realização de uma tarefa pelo computador

26

Conceitos Básicos de Programação Logicamente, a linguagem que nós

utilizamos em nosso cotidiano é diferente da linguagem utilizada pela máquina

A máquina trabalha somente com códigos numéricos (linguagem de máquina), baseados nos números 0 e 1 (sistema binário), que representam impulsos elétricos, ausente e presente

27

Conceitos Básicos de Programação Assim, qualquer linguagem de programação

deve estar situada entre dois extremos: o da linguagem natural do homem (muito clara, porém lenta) e o da linguagem de máquina (muito rápida, porém complexa)

Este é o conceito de nível de linguagem: alto nível para as mais próximas da linguagem humana; baixo nível para as mais semelhantes à linguagem de máquina

28

Tradutores

Para que um computador possa "entender" um programa escrito em uma linguagem de alto nível, torna-se necessário um meio de tradução entre a linguagem utilizada no programa e a linguagem de máquina. compilador

29

Compilador

traduz o programa escrito em linguagem de alto nível (programa-fonte) para um programa equivalente escrito em linguagem de máquina (programa-objeto)

30

Exemplos de Linguagens de Programação

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

31

Com que pseudocódigo eu vou? Você já sabe que ao formular um algoritmo usando

pseudocódigo, deve obedecer uma convenção, que emprega palavras reservadas e regras de escrita

O problema é que não existe padronização para pseudocódigo. Cada autor, em sua respectiva obra sobre introdução à programação, adota um modelo diferente de portugol

Perguntar não ofende

Professor, já que existem vários pseudocódigos diferentes, qual devo usar nas aulas de Algoritmos?

32

Visualg Visualg - Editor e Interpretador de Algoritmos Criado por Cláudio Morgado de Souza é

programador/analista e professor universitário no Rio de Janeiro

33

Exercícios

05. Defina, com suas palavras, os seguintes termos: a) programa b) linguagem de programação c) Compilador

06. Qual a diferença entre linguagem de baixo nível e linguagem de alto nível?

34

Dúvidas

Obrigado pela atenção!