• Nenhum resultado encontrado

Aula 1 - Apresentação da disciplina e introdução algoritmos

N/A
N/A
Protected

Academic year: 2021

Share "Aula 1 - Apresentação da disciplina e introdução algoritmos"

Copied!
41
0
0

Texto

(1)

Algoritmos e Programação

Aula 1 – Apresentação da Disciplina

Introdução a Algoritmos

Profa. Marina Gomes

(2)
(3)

Atividades

• Plano de Ensino

- Conteúdos da disciplina, definição das

datas, critérios de avaliação e bibliografia.

• Moodle: Algoritmos e Programação

• Site da Profa. Marina:

https://sites.google.com/site/marinagomesunipampa

• Qualquer dúvida:

(4)

Avaliações

• 3 Provas Teóricas Sem Consulta

- P1 – 25% - P2 – 30% - P3 – 40%

• Para ser aprovado:

- 75% de Frequência e Média >= 6.0

- Avaliações de recuperação poderão ocorrer durante o semestre, quando verificado a necessidade pelo professor (trabalhos, listas de exercícios, correção

(5)

Introdução a Algoritmos e

Programação

(6)

Algoritmo

• Matemática

- Descreve o processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, regras formais para a obtenção do resultado, ou da solução do problema

• Computação

- Descreve o conjunto pré-determinado e bem definido

de regras e processos destinados à solução de um

(7)

Lógica de Programação

• Técnica de desenvolver algoritmos (sequências

lógicas) para atingir determinados objetivos dentro de

certas regras baseadas na Lógica matemática

• Estes algoritmos depois são adaptados para a

Linguagem de Programação utilizada pelo programador para construir seu software

(8)

Algoritmo

• Um algoritmo é uma sequência não ambígua de

instruções que é executada até que determinada

condição se verifique

• Mais especificamente, em matemática, constitui o

conjunto de processos (e símbolos que os

(9)

Algoritmo

• Utilizamos

constantemente algoritmos

em

nosso cotidiano:

- Instruções para se utilizar um aparelho eletrodoméstico

- Uma receita para preparo de algum prato

- Guia de preenchimento para declaração do

imposto de renda

- A regra para determinação de máximos e mínimos de funções por derivadas sucessivas

- A maneira como as contas de água, luz e telefone são calculadas mensalmente

(10)

Algoritmo

• Um algoritmo poderia ser grosseiramente comparado à uma receita culinária

• Uma receita é um programa de atividades que deve

ser respeitada e cumprida passo-a-passo

- Caso um dos passos seja desconsiderado, a receita não dará certo

(11)

Algoritmo

• Eles podem repetir passos (fazer iterações) ou necessitar de decisões (tais como comparações ou lógica) até que a tarefa seja completada

• Um algoritmo não representa, necessariamente, um

programa de computador, e sim os passos necessários para realizar uma tarefa

• Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferente de instruções em mais ou menos tempo, espaço ou esforço do que os outros

(12)

Algoritmo

• Algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo

• Algoritmo é um caminho para a solução de um problema:

- Em geral, os caminhos que levam a uma solução são muitos

(13)

Algoritmo

• Para o desenvolvimento de um algoritmo eficiente, é necessário obedecermos algumas premissas básicas no momento de sua construção:

- Definir ações simples e sem ambiguidade - Organizar as ações de forma ordenada

- Estabelecer as ações dentro de uma sequência

(14)

Algoritmo

• Os algoritmos são capazes de realizar tarefas como:

1. Ler e escrever dados

2. Avaliar expressões algébricas, relacionais e

lógicas

3. Tomar decisões com base nos resultados das

expressões avaliadas

4. Repetir um conjunto de ações de acordo com

(15)

Algoritmo

• A importância do algoritmo está no fato de termos que especificar uma sequência de passos lógicos para

que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade

própria, faz apenas o que mandamos.

• Com uma ferramenta algorítmica, podemos conceber

uma solução para um dado problema, não dependendo de uma linguagem específica e até

(16)

Por que precisamos de Algoritmos?

• Abstração

- Todo esforço é concentrado na resolução do

problema e não em detalhes computacionais

que

podem

ser

acrescentados

posteriormente

• Portabilidade

(17)

Características

• Ser finito

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

(18)

Representação de Algoritmos

• Existem diversas formas de representação de algoritmos, mas não há consenso com relação à melhor delas

• Algumas formas de representação de algoritmos tratam

dos problemas apenas em nível lógico, abstraindo-se de

detalhes de implementação muitas vezes relacionados com alguma linguagem de programação específica

• Por outro lado, existem formas de representação de algoritmos que possuem uma maior riqueza de detalhes e

(19)

Representação de Algoritmos

• Dentre as formas de representação de

algoritmos mais conhecidas, sobressaltam:

- Descrição Narrativa

- Fluxograma Convencional

- Pseudocódigo, também conhecido como Português Estruturado ou Portugol

(20)

Descrição Narrativa

• Nesta forma de representação os algoritmos são

expressos diretamente em linguagem natural

• Exemplo

Receita de Bolo:

Providencie manteiga, ovos, farinha, etc Misture os ingredientes

Despeje a mistura na fôrma de bolo Leve a fôrma ao forno

Espere 30 minutos

(21)

Descrição Narrativa

• Desvantagens

- Imprecisão

- Pouca confiabilidade (a imprecisão acarreta a desconfiança)

- extensão( (normalmente, escreve-se muito para dizer pouca coisa)

• Esta representação é pouco usada na prática

porque o uso de linguagem natural muitas

vezes dá oportunidade a más interpretações,

(22)

Descrição Narrativa

• Problema: Calcular a média final dos alunos. Os alunos realizarão quatro provas: P1, P2, P3 e P4, onde

MF = (P1 + P2 + P3 + P4)/4 • Algoritmo:

1. Receba a nota da prova 1 2. Receba a nota de prova 2 3. Receba a nota de prova 3 4. Receba a nota de prova 4

(23)

Descrição Narrativa

• Algoritmo Trocar uma lâmpada queimada:

1. Pegar uma escada

2. Posicionar a escada debaixo da lâmpada

3. Buscar uma lâmpada nova

4. Subir na escada

5. Retirar a lâmpada queimada

6. Colocar a lâmpada nova

(24)

Descrição Narrativa - Problemas

• O algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva)

• Pegar uma escada

• Posicionar a escada debaixo da lâmpada • Buscar uma lâmpada nova

• Subir na escada

• Retirar a lâmpada queimada • Colocar lâmpada nova

• Se a lâmpada nova não acender, então:

• Retirar a lâmpada queimada • Colocar lâmpada nova

• Se a lâmpada nova não acender, então:

• Retirar a lâmpada queimada • Colocar lâmpada nova

• Se a lâmpada nova não acender, então: • Retirar a lâmpada queimada

(25)

Descrição Narrativa - Problemas

• O algoritmo não atingirá seu objetivo se a lâmpada nova estiver queimada. Para tal, acrescentamos um teste condicional (estrutura seletiva)

• Pegar uma escada

• Posicionar a escada debaixo da lâmpada • Buscar uma lâmpada nova

• Subir na escada

• Retirar a lâmpada queimada • Colocar lâmpada nova

• Se a lâmpada nova não acender, então:

• Retirar a lâmpada queimada • Colocar lâmpada nova

• Se a lâmpada nova não acender, então:

• Retirar a lâmpada queimada • Colocar lâmpada nova

• Se a lâmpada nova não acender, então: • Retirar a lâmpada queimada

• Colocar lâmpada nova ....

Por isso é necessário

utilizar algumas

estruturas próprias

de algoritmos para

facilitar a descrição

(26)

Descrição Narrativa - Problemas

• Algoritmo Trocar uma lâmpada queimada com o uso de

estruturas de repetição:

1. Pegar uma escada

2. Posicionar a escada debaixo da lâmpada 3. Buscar uma lâmpada nova

4. Subir na escada

5. Retirar a lâmpada queimada 6. Colocar lâmpada nova

7. Enquanto lâmpada nova não acender, faça: 1. Retirar a lâmpada queimada

(27)

Descrição Narrativa

• Exercícios

1. Escreva uma sequência de passos (descrição

narrativa) para escovar os dentes.

2. Escreva uma sequência de passos (descrição

narrativa) para efetuar um saque em um

caixa eletrônico

(28)

Fluxograma

• É uma representação gráfica de algoritmos

onde

formas

geométricas

diferentes

implicam ações distintas

• Objetivo: facilitar o entendimento das ideias

contidas nos algoritmos

(29)
(30)

Fluxograma

Cálculo da média de um aluno:

- Obter as notas da primeira e da segunda prova

- Calcular a média aritmética entre as duas

- Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado

(31)

Linguagem Algorítmica (pseudocódigo)

• Também conhecida como português estruturado ou

portugol

• Bastante rico em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos, encontra muita aceitação

• Representação suficientemente geral para permitir que

a tradução de um algoritmo nela representado para uma

(32)

Linguagem Algorítmica (pseudocódigo)

Algoritmo

<nome_do_algoritmo>

<declaração_de_variáveis>

<subalgoritmos>

Início

<corpo_do_algoritmo>

Fim

(33)

Linguagem Algorítmica

• Exemplo

Algoritmo Media

Var N1, N2, Media : real Início Leia N1, N2 Media = (N1+N2)/2 Se Media >= 7 Entao Escreva “Aprovado” Senao Escreva “Reprovado”

(34)

Linguagem Algorítmica

• Vantagens

- Independência física da solução (solução lógica apenas)

- 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

(35)

Algoritmo

• Recapitulando:

- Um Algoritmo é uma sequência de

instruções ordenadas de forma lógica para

a resolução de uma determinada tarefa ou

problema

(36)

Construção de Algoritmos

• Ex: construir um algoritmo para fazer suco de laranja: Entrada: - laranja

Processamento: - cortar a laranja - espremer a laranja

(37)

Construção de Algoritmos

• Ex: Identificar dados de entrada, processamento e saída 1. Receber código da peça

2. Receber valor da peça

3. Receber quantidade de peças

4. Calcular valor total da peça = (quantidade *valor da peça)

(38)

Programa

• Um Programa é um Algoritmo escrito em

uma Linguagem de Programação

(39)

Linguagens de Programação

• São Softwares que permitem o desenvolvimento de programas

• Possuem um poder de criação ilimitado, desde jogos, editores e texto, sistemas empresariais até sistemas operacionais

• Existem várias Linguagens de Programação, cada uma com suas características próprias

(40)

Exercícios

1. Calcular a área de um triângulo. Recebe o valor da base. Recebe o valor da altura. Calcula a área. Mostra a área.

2. Descobrir quais os números adjacentes. Recebe um valor digitado pelo usuário. Mostra o seu sucessor. Mostra o seu antecessor.

3. Mostrar o quadrado de um número. Recebe o numero. Calcula o seu quadrado. Mostra seu quadrado.

4. Mostrar o cubo de um numero. Recebe o número. Calcula seu cubo. Mostra seu cubo.

5. Calculo percentual. Recebe o peso de uma pessoa. Recebe o percentual de emagrecimento. Calcula o novo peso. Mostra seu novo peso.

6. Conversão Celsius em Fahrenheit. Recebe a temperatura em Celsius. Converte a temperatura em Fahrenheit (celsius*1,8 + 32). Mostra a Temperatura convertida.

(41)

Exercícios

8. Calcular o IMC. Recebe o valor do peso. Recebe

o valor da altura. Calcule o IMC. Mostre o IMC.

9. Calcule o consumo médio do seu carro. Recebe

a quantidade de quilômetros rodados. Recebe a

quantidade de litros gastos. Calcule e o mostre o

consumo médio.

10. Solicitar o valor do salário e o valor da

prestação. Se a prestação for maior que 20% do

salário, mostrar “Empréstimo não pode ser

concedido”. Senão mostrar “Empréstimo

concedido”.

Referências

Documentos relacionados

Os substratos que demonstraram maiores IVG foram vermiculita e papel filtro, sendo que a vermiculita também propiciou maior porcentagem de germinação, indicando que esse substrato

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Foi membro da Comissão Instaladora do Instituto Universitário de Évora e viria a exercer muitos outros cargos de relevo na Universidade de Évora, nomeadamente, o de Pró-reitor (1976-

Local de realização da avaliação: Centro de Aperfeiçoamento dos Profissionais da Educação - EAPE , endereço : SGAS 907 - Brasília/DF. Estamos à disposição

Para esse fim, analisou, além do EVTEA, os Termos de Referência (TR) do EVTEA e do EIA da Ferrogrão, o manual para elaboração de EVTEA da empresa pública Valec –

e) Anunciar que o Senhor Jesus está vivo no meio de Seu povo fiel e que em breve ele retornará para arrebatar Sua Igreja. As Igrejas Maranata realizam cultos regulares em cada

A pesquisa pode ser caracterizada como exploratória e experimental em uma primeira etapa (estudo piloto), na qual foram geradas hipóteses e um conjunto de observáveis, variáveis