34
1 Algoritmos Reinaldo Saraiva [email protected]

Algoritmos Aula 1

Embed Size (px)

Citation preview

Page 1: Algoritmos Aula 1

1

Algoritmos

Reinaldo [email protected]

Page 2: Algoritmos Aula 1

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

Page 3: Algoritmos Aula 1

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.

Page 4: Algoritmos Aula 1

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.

Page 5: Algoritmos Aula 1

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

Algoritmos – Aula 01

5

Page 6: Algoritmos Aula 1

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

Page 7: Algoritmos Aula 1

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.

Page 8: Algoritmos Aula 1

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:

Page 9: Algoritmos Aula 1

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”

Page 10: Algoritmos Aula 1

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

Page 11: Algoritmos Aula 1

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

Page 12: Algoritmos Aula 1

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

Page 13: Algoritmos Aula 1

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

Page 14: Algoritmos Aula 1

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.

Page 15: Algoritmos Aula 1

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.

Page 16: Algoritmos Aula 1

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

Page 17: Algoritmos Aula 1

17

Solução utilizando fluxograma:

Page 18: Algoritmos Aula 1

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

Page 19: Algoritmos Aula 1

19

Um Ambiente para descrever Algoritmos

Page 20: Algoritmos Aula 1

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.

Page 21: Algoritmos Aula 1

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.

Page 22: Algoritmos Aula 1

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

Page 23: Algoritmos Aula 1

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ê?

Page 24: Algoritmos Aula 1

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

Page 25: Algoritmos Aula 1

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

Page 26: Algoritmos Aula 1

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

Page 27: Algoritmos Aula 1

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

Page 28: Algoritmos Aula 1

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

Page 29: Algoritmos Aula 1

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)

Page 30: Algoritmos Aula 1

30

Exemplos de Linguagens de Programação

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

Page 31: Algoritmos Aula 1

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?

Page 32: Algoritmos Aula 1

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

Page 33: Algoritmos Aula 1

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?

Page 34: Algoritmos Aula 1

34

Dúvidas

Obrigado pela atenção!