Programação I
Aula 01
Autor: Francisco Airton
Professor: 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 monitoria
monit-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 1
Tarefa 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
Desafio
1. Pega a ovelha Pega a ovelha
2. Vai para a outra margem
3. Deixa a ovelha
4. Volta a margem inicial
5. Pega a caixa de verduras
6. Vai para a outra margem
7. Deixa a caixa de verduras e pega a ovelha
8. Volta a margem inicial
9. Deixa a ovelha e pega o lobo
10. Vai para a outra margem
11. Deixa o lobo Deixa o lobo
12. Volta a margem inicial
13. Pega a ovelha
14. Vai para a outra margem
15. 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

Programacao-1-Aula-01.pptx Programacao-1-Aula-01.pptx

  • 1.
    Programação I Aula 01 Autor:Francisco Airton Professor: André Didier 1
  • 2.
    Objetivos • Apresentar adisciplina • Apresentar o conceito de “Algoritmo“ • Fazer com que o aluno conheça a importância dos algoritmos • Apresentar os tipos de algoritmos existentes 2
  • 3.
  • 4.
    Apresentação • Professor: AndreLuí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
  • 5.
    Apresentação • Foco dadisciplina – 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
  • 6.
    Avaliação • Avaliação – Trêsprovas 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
  • 7.
  • 8.
    • Para tersucesso 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 monitoria monit-if968@googlegroups.com 8
  • 9.
  • 10.
    O que tenhoque fazer pra aprender a programar?
  • 11.
  • 12.
  • 13.
    • Afinal oque é um algoritmo? 13
  • 14.
    Pera aí... • Oque é um computador? Para que serve? 14
  • 15.
    Pera aí... • Oque é 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
  • 16.
    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
  • 17.
    Como funciona umcomputador? 17
  • 18.
    Como programar algoque o computador entenda? 18 Tarefa 1 Tarefa 2 Tarefa 3 . . . “O tal do Algoritmo” Compilador @#$%&¨& ¨$%¨&*$%¨&¨%$ ¨#$%¨&¨%$# &¨%$%$¨& “O Transformador” “Isso o computador entende”
  • 19.
    • Compilador: tradutorde programas escritos em uma linguagem de programação para programas em linguagem de máquina (ex. GCC). 19
  • 20.
    Etapas para execuçãode um programa compilado (Miyazawa, 2001:3) 20
  • 21.
    Existe o “primo”do Compilador • O Interpretador 21
  • 22.
    • Voltando aoalgoritmo.... 22
  • 23.
    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
  • 24.
    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
  • 25.
    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
  • 26.
    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
  • 27.
    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
  • 28.
    Desafio! Escreva um algoritmoque 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
  • 29.
    Desafio 1. Pega aovelha Pega a ovelha 2. Vai para a outra margem 3. Deixa a ovelha 4. Volta a margem inicial 5. Pega a caixa de verduras 6. Vai para a outra margem 7. Deixa a caixa de verduras e pega a ovelha 8. Volta a margem inicial 9. Deixa a ovelha e pega o lobo 10. Vai para a outra margem 11. Deixa o lobo Deixa o lobo 12. Volta a margem inicial 13. Pega a ovelha 14. Vai para a outra margem 15. Deixa a ovelha 29
  • 30.
    O que podemosconcluir sobre algoritmos? 30
  • 31.
    O que podemosconcluir 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
  • 32.
    O que podemosconcluir 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
  • 33.
    • Por quecriamos algoritmos? 33
  • 34.
    Por que criamosalgoritmos? • 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
  • 35.
    • Tipos dealgoritmos 35
  • 36.
    Tipos de algoritmos •DescriçãoNarrativa; • Fluxograma; • Pseudocódigo, Português Estruturado ou Portugol; 36
  • 37.
    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
  • 38.
    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
  • 39.
    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
  • 40.
    Tipos de algoritmos •Fluxograma –Conjunto de Símbolos: 40
  • 41.
    Tipos de algoritmos •Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números. 41
  • 42.
    Tipos de algoritmos •Fluxograma –Exemplo: 42
  • 43.
    Tipos de algoritmos •Exemplo 2: Faça um algoritmo que calcula e apresenta a divisão entre dois números. 43
  • 44.
    Tipos de algoritmos •Fluxograma –Exemplo 2: 44
  • 45.
    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
  • 46.
    Tipos de algoritmos •Fluxograma –Exercício: 46
  • 47.
    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
  • 48.
    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
  • 49.
    Tipos de algoritmos •Forma básica de um algoritmo em portugol: 49
  • 50.
    Tipos de algoritmos •Exemplo: Faça um algoritmo que calcula e apresenta a multiplicação entre dois números. 50
  • 51.
  • 52.
    • Explore oassunto, vá lá no nosso site.... 52
  • 53.
    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.

Notas do Editor

  • #10 http://olimpiada.ic.unicamp.br/info_geral/programacao/programacao_nivel1/dicas