algoritmos aula 1
TRANSCRIPT
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!