Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1.

Post on 07-Apr-2016

224 views 0 download

Transcript of Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1.

Programação IAula 01

Autor: Francisco AirtonProfessor: André Didier

1

Objetivos

• Apresentar a disciplina• Apresentar o conceito de “Algoritmo“ • Fazer com que o aluno conheça a importância

dos algoritmos• Apresentar os tipos de algoritmos existentes

2

• Apresentação

3

Apresentação

• Professor: Andre Luís Ribeiro Didier– Doutorando em Ciência da Computação pela UFPE– Mestre em Ciência da Computação pela UFPE (2012)– Graduado em Sistemas de Informação pelo UFPE (2006)– Experiência de 9 anos como engenheiro de sistemas– Mais informações: http://cin.ufpe.br/~alrd

4

Apresentação

• Foco da disciplina– Ensino dos conceitos básicos de algoritmos

estruturados envolvendo tipos de dados e formas de representação de algoritmos;

– Fundamentos e técnicas estruturadas de programação para o desenvolvimento de software;

5

Avaliação• Avaliação

– Três provas escritas (0 a 10 pontos)– Papel e caneta

• Listas– Lista Prática

• Uma lista de questões para fazer no computador• Valerá 2 pontos na última prova

– Mini-listas• Resolver questões extra-sala e entregues manuscritos• Pontuação adicional acrescida na última prova para quem resolvê-

las

6

Informações

• https://sites.google.com/site/prog1atuariais• https://cin.ufpe.br/~faps

• Calendário...

7

• Para ter sucesso na disciplina:– Fique ligado

Procure estar presente em todas as aulas – Se faltou, visite o site da disciplina pra

verificar o material da aula;– Dúvidas técnicas? Envie email para monitoriamonit-if968@googlegroups.com

8

9

Motivação para o curso...

O que tenho que fazer pra aprender a programar?

Aprender a resolver problemas...

Praticar...

• Afinal o que é um algoritmo?

13

Pera aí...

• O que é um computador? Para que serve?

14

Pera aí...

• O que é um computador? Para que serve?• “Um computador é uma coleção de componentes

que realizam operações lógicas e aritméticas sobre um grande volume de dados.” (Miyazawa, 2001)”

• Computador é ferramenta de trabalho (ex. editores de textos, planilhas, sistemas de informação, etc).

• Computador é mídia: serve como canal na comunicação humana (ex. Web, apresentação multimídia, etc).

15

Afinal o que é um algoritmo?

• Sequência finita de instruções, ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema;

• Não envolve apenas aspectos computacionais;–Exemplos

– Uma receita de bolo;– Manual de instruções;

16

Como funciona um computador?

17

Como programar algo que o computador entenda?

18

Tarefa 1Tarefa 2 Tarefa 3...

“O tal do Algoritmo”

Compilador

@#$%&¨&¨$%¨&*$%¨&¨%$¨#$%¨&¨%$#&¨%$%$¨&

“O Transformador”

“Isso o computador entende”

• Compilador: tradutor de programas escritos em uma linguagem de programação para programas em linguagem de máquina (ex. GCC).

19

Etapas para execução de um programa compilado (Miyazawa, 2001:3)

20

Existe o “primo” do Compilador

• O Interpretador

21

• Voltando ao algoritmo....

22

Afinal o que é um algoritmo?Exemplo: Sequência para fritar um ovo:

1)Retirar o ovo da geladeira; 2) Colocar a frigideira no fogo;3) Colocar óleo; 4) Esperar até o óleo ficar quente;5) Quebrar o ovo separando a casca;6) Colocar o conteúdo do ovo na frigideira;7) Esperar um minuto;8) Retirar o ovo da frigideira;9) Apagar o fogo;

23

Afinal o que é um algoritmo?

Tal sequência é um algoritmo? Vejamos...– A sequência anterior possui instruções finitas e ordenadas?

• SIM, 9 instruções ordenadas; SIM. 9 instruções ordenadas;• O início de uma instrução depende da conclusão de uma

instrução anterior; – O objetivo da sequência foi atingido?

• SIM. O ovo foi frito;Logo,a sequência anterior é um algoritmo

24

Afinal o que é um algoritmo?

• Exercício – Ordene e estruture uma sequência para a realização

de uma ligação telefônica em um orelhão.

25

Afinal o que é um algoritmo?

Uma possível solução:1)Tirar o telefone do gancho;2) Ouvir o sinal de linha;3) Introduzir o cartão no orelhão;4)Teclar o número desejado;5) Conversar;6) Desligar;7)Tirar o cartão;

26

Afinal o que é um algoritmo?A solução anterior... mais robusta:

1) Tirar o telefone do gancho;2) Ouvir o sinal de linha;3) Introduzir o cartão no orelhão;4) Teclar o número desejado;5) Se chamar e alguém atender...

1)Conversar;2) Desligar;3)Retirar o cartão;

6) Senão...1)Desligar;2) Voltar para a instrução 1;

27

Desafio!Escreva um algoritmo que ajude o homem do barco a levar o

lobo, a ovelha e a caixa de verduras para o outro lado do lago. Utilize a descrição narrativa para representar o algoritmo. Lembre‐se:

Lobos comem ovelhas e ovelhas comem as verduras quando o homem está na outra margem!

28

Desafio1. Pega a ovelha Pega a ovelha2. Vai para a outra margem3. Deixa a ovelha4. Volta a margem inicial5. Pega a caixa de verduras6. Vai para a outra margem7. Deixa a caixa de verduras e pega a ovelha8. Volta a margem inicial9. Deixa a ovelha e pega o lobo10. Vai para a outra margem11. Deixa o lobo Deixa o lobo12. Volta a margem inicial13. Pega a ovelha14. Vai para a outra margem15. Deixa a ovelha

29

O que podemos concluir sobre algoritmos?

30

O que podemos concluir sobre algoritmos?

• Algoritmo é uma espécie de passo a passo de ações (instruções);

• Algoritmos retornam uma saída (ex.: um ovo frito) a partir de uma determinada entrada através de uma sequência de passos;

• Os passos são executados um após o outro (de forma sequencial);

31

O que podemos concluir sobre algoritmos?

• Um algoritmo está correto quando sua sequência de instruções retorna uma saída esperada;

• Podem existir um ou mais algoritmos que retornam uma saída esperada;– Mas podem existir algoritmos mais eficientes que

outros– Um algoritmo não é a solução do problema, mas o caminho que busca a solução do problema;

32

• Por que criamos algoritmos?

33

Por que criamos algoritmos?

• A linguagem natural não pode ser interpretada por computadores;

• Computadores são projetados para executar tarefas bem definidas a partir de instruções;• Para desenvolver software, utilizamos linguagens de

programação... • Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de programação;

34

• Tipos de algoritmos

35

Tipos de algoritmos

• DescriçãoNarrativa;• Fluxograma;• Pseudocódigo, Português Estruturado ou Portugol;

36

Tipos de algoritmos

• Descrição Narrativa• Utiliza‐se preferencialmente um verbo por

frase;• Formada por frases curtas e simples;• É objetiva;• Evita palavras com sentido dúbio;

37

Tipos de algoritmos

• Descrição Narrativa –Exemplo:– Dobro de um número (dobro = número x 2)– Digitar um número;– Gravar em uma variável;– Multiplicar o número digitado por 2; – Gravar o resultado em outra variável;– Mostrar o resultado da operação;

38

Tipos de algoritmos

• Descrevem o fluxo de ação de um determinado trabalho lógico;• Usa símbolos convencionais, permitindo poucas variações;• Representados por símbolos geométricos;

39

Tipos de algoritmos

• Fluxograma –Conjunto de Símbolos:

40

Tipos de algoritmos

• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.

41

Tipos de algoritmos

• Fluxograma –Exemplo:

42

Tipos de algoritmos

• Exemplo 2: Faça um algoritmo que calcula e apresenta a divisão entre dois números.

43

Tipos de algoritmos

• Fluxograma –Exemplo 2:

44

Tipos de algoritmos

• Exercício: Faça um algoritmo (fluxograma) que calcula a média de três notas de um determinado aluno e informa se o aluno está aprovado ou reprovado.

• – O aluno estará aprovado se sua média for maior ou igual a 7;

45

Tipos de algoritmos

• Fluxograma –Exercício:

46

Tipos de algoritmos

• Português Estruturado (Portugol)– Linguagem mais restrita que o português em

linguagem natural;– Simplificação extrema do português;– Significados bem definidos para todos os termos utilizados nas instruções;– Possui um conjunto de palavras e regras

específicas (sintaxe da linguagem);

47

Tipos de algoritmos

• Português Estruturado (Portugol)• Normalmente as implementações são feitas em papel escritas a mão; papel, escritas a mão;

48

Tipos de algoritmos

• Forma básica de um algoritmo em portugol:

49

Tipos de algoritmos

• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.

50

Tipos de algoritmos

51

• Explore o assunto, vá lá no nosso site....

52

Grupo de Email

• Vá no meu site e lá você encontra um link para pedir para participar do grupo– cin.ufpe.br/~faps

• IMPORTANTE: Quando eu aceitar você, configure para receber sempre os emails.

54