programação i aula 01 autor: francisco airton professor: andré didier 1
TRANSCRIPT
![Page 1: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/1.jpg)
Programação IAula 01
Autor: Francisco AirtonProfessor: André Didier
1
![Page 2: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/2.jpg)
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
![Page 3: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/3.jpg)
• Apresentação
3
![Page 4: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/4.jpg)
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
![Page 5: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/5.jpg)
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
![Page 6: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/6.jpg)
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
![Page 7: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/7.jpg)
Informações
• https://sites.google.com/site/prog1atuariais• https://cin.ufpe.br/~faps
• Calendário...
7
![Page 8: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/8.jpg)
• 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 [email protected]
8
![Page 9: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/9.jpg)
9
Motivação para o curso...
![Page 10: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/10.jpg)
O que tenho que fazer pra aprender a programar?
![Page 11: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/11.jpg)
Aprender a resolver problemas...
![Page 12: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/12.jpg)
Praticar...
![Page 13: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/13.jpg)
• Afinal o que é um algoritmo?
13
![Page 14: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/14.jpg)
Pera aí...
• O que é um computador? Para que serve?
14
![Page 15: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/15.jpg)
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
![Page 16: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/16.jpg)
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
![Page 17: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/17.jpg)
Como funciona um computador?
17
![Page 18: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/18.jpg)
Como programar algo que o computador entenda?
18
Tarefa 1Tarefa 2 Tarefa 3...
“O tal do Algoritmo”
Compilador
@#$%&¨&¨$%¨&*$%¨&¨%$¨#$%¨&¨%$#&¨%$%$¨&
“O Transformador”
“Isso o computador entende”
![Page 19: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/19.jpg)
• Compilador: tradutor de programas escritos em uma linguagem de programação para programas em linguagem de máquina (ex. GCC).
19
![Page 20: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/20.jpg)
Etapas para execução de um programa compilado (Miyazawa, 2001:3)
20
![Page 21: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/21.jpg)
Existe o “primo” do Compilador
• O Interpretador
21
![Page 22: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/22.jpg)
• Voltando ao algoritmo....
22
![Page 23: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/23.jpg)
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
![Page 24: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/24.jpg)
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
![Page 25: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/25.jpg)
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
![Page 26: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/26.jpg)
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
![Page 27: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/27.jpg)
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
![Page 28: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/28.jpg)
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
![Page 29: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/29.jpg)
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
![Page 30: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/30.jpg)
O que podemos concluir sobre algoritmos?
30
![Page 31: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/31.jpg)
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
![Page 32: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/32.jpg)
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
![Page 33: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/33.jpg)
• Por que criamos algoritmos?
33
![Page 34: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/34.jpg)
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
![Page 35: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/35.jpg)
• Tipos de algoritmos
35
![Page 36: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/36.jpg)
Tipos de algoritmos
• DescriçãoNarrativa;• Fluxograma;• Pseudocódigo, Português Estruturado ou Portugol;
36
![Page 37: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/37.jpg)
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
![Page 38: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/38.jpg)
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
![Page 39: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/39.jpg)
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
![Page 40: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/40.jpg)
Tipos de algoritmos
• Fluxograma –Conjunto de Símbolos:
40
![Page 41: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/41.jpg)
Tipos de algoritmos
• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.
41
![Page 42: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/42.jpg)
Tipos de algoritmos
• Fluxograma –Exemplo:
42
![Page 43: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/43.jpg)
Tipos de algoritmos
• Exemplo 2: Faça um algoritmo que calcula e apresenta a divisão entre dois números.
43
![Page 44: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/44.jpg)
Tipos de algoritmos
• Fluxograma –Exemplo 2:
44
![Page 45: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/45.jpg)
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
![Page 46: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/46.jpg)
Tipos de algoritmos
• Fluxograma –Exercício:
46
![Page 47: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/47.jpg)
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
![Page 48: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/48.jpg)
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
![Page 49: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/49.jpg)
Tipos de algoritmos
• Forma básica de um algoritmo em portugol:
49
![Page 50: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/50.jpg)
Tipos de algoritmos
• Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números.
50
![Page 51: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/51.jpg)
Tipos de algoritmos
51
![Page 52: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/52.jpg)
• Explore o assunto, vá lá no nosso site....
52
![Page 53: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/53.jpg)
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.
![Page 54: Programação I Aula 01 Autor: Francisco Airton Professor: André Didier 1](https://reader030.vdocuments.pub/reader030/viewer/2022033101/5706384f1a28abb8238f7b01/html5/thumbnails/54.jpg)
54