algoritmos aula 1
TRANSCRIPT
![Page 2: Algoritmos Aula 1](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/2.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/3.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/4.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/5.jpg)
Vamos começar a trabalhar então???
Algoritmos – Aula 01
5
![Page 6: Algoritmos Aula 1](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/6.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/7.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/8.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/9.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/10.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/11.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/12.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/13.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/14.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/15.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/16.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/17.jpg)
17
Solução utilizando fluxograma:
![Page 18: Algoritmos Aula 1](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/18.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/19.jpg)
19
Um Ambiente para descrever Algoritmos
![Page 20: Algoritmos Aula 1](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/20.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/21.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/22.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/23.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/24.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/25.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/26.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/27.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/28.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/29.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/30.jpg)
30
Exemplos de Linguagens de Programação
PASCAL, VISUALG, C, CLIPPER, COBOL, HTML, JAVA, DELPHI, PHP, etc.
![Page 31: Algoritmos Aula 1](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/31.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/32.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/33.jpg)
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](https://reader034.vdocuments.pub/reader034/viewer/2022052311/557203014979599169a468e9/html5/thumbnails/34.jpg)
34
Dúvidas
Obrigado pela atenção!