introdução à programaçãograc/ip/aula01 - apresentacao.pdf · 2017. 5. 9. · sebesta, robert...

43
Introdução à Programação Prof. Gustavo Callou [email protected] [email protected]

Upload: others

Post on 25-Aug-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Introdução à Programação

Prof. Gustavo Callou

[email protected]

[email protected]

Page 2: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Apresentações;

A disciplina:

Objetivos;

Cronograma;

Avaliação;

O que é Computação;

Breve histórico.

Gustavo Callou DEINFO/UFRPE 2

Roteiro

Page 3: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Nos conhecendo

3

Quem são vocês?

Experiências?

Expectativas?

Page 4: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Apresentação

Disciplina: Introdução à Programação

Professor: Gustavo Callou

Carga Horária: 90h

Horário:

Seg 20h 10

Qua 18h 30

Sex 18h 30

Site:

Site: www.cin.ufpe.br/~grac/ip

AVA

4

Page 5: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Do que se trata esta

disciplina?

5

Page 6: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Ementa

Fundamentos da construção de algoritmos e programas;

Ambientes de programação: uso de uma linguagem de programação;

Conceitos básicos: variáveis, operadores e expressões, estruturas de controle (atribuição, seleção, repetição);

Dados estruturados;

Subprogramas: funções, procedimentos;

Parâmetros locais e globais;

Recursão;

Ponteiro; e

Manipulação de Arquivos.

Page 7: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Ementa

Algoritmos Pesquisa sequencial e binária

bublesort

inserção

shellsort

heapsort

quicksort.

Noções de Complexidade e Paradigmas de Programação Notação o, O, Ω e Ө.

Introdução a programação orientada a objetos.

Projeto de Implementação

18:37 Gustavo Rau de Almeida Callou 7

Page 8: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Capacitar o aluno a projetar e implementar soluções

que envolvam os elementos básicos da construção

de algoritmos e programas de computador.

Ajudar os alunos a desenvolver os conhecimentos,

habilidades e atitudes necessárias para as futuras

disciplinas.

Gustavo Callou DEINFO/UFRPE 8

Objetivos da Disciplina

Page 9: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

ConteúdoData Conteúdo

1 Apresentação da disciplina e Introdução a algoritmos

2 Algoritmos - Ling de Programação

3 Comandos Básicos

4 Estrutura de controle IF e exercícios

5 Laço While

6 Exercícios While

7 Laço For

8 Exercícios de For e While

9 Array unidimensional (vetor)

10 Exercícios de vetor

11 Array bidimensional (matriz)

12 Exercícios de Arrays Bidimensionais

13 lista de exercícios

14 Exercícios

15 Exercícios

16 Arquivos

17 Exercício de Arquivos

18 Lista de exercícios9

Cronograma

Page 10: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

19 Exercícios

20 Revisão

21 Primeira Avaliação22 Resolução da prova

23 Definição de Subprogramas

24 Exercícios de subprogramas

25 Regras de Escopo e Escopo em Funções Aninhadas

26 Exercícios

27 Passagem de Argumentos e exercícios

28 Definição dos projetos

29 Acompanhamento projeto

30 Pesquisa sequencial e binária

31 Ordenação por Inserção e Seleção

32 Acompanhamento projeto

33 Bublesort

34 Shellsort

35 Quicksort

10

Cronograma(cont.)

Page 11: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

36 Acompanhamento projeto

37 Introdução a Orientação a Objetos

38 Introdução a Orientação a Objetos

39 Orientação a Objetos e Exercícios

40 Exercícios

41 Acompanhamento projeto

42 Acompanhamento projeto

43 Apresentação dos Projetos

44 Apresentação dos Projetos

45 Segunda Avaliação

Terceira Avaliação

Final

11

Cronograma(cont.)

Page 12: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Provas discursivas e listas de exercício. Avaliação

individual.

Primeira Avaliação: 1VA = Prova + 1 ponto extra de listas

de exercício;

Segunda Avaliação: 2VA = 0,7.Prova + 0,3.Lista de

Exercicios (Projeto);

Terceira Avaliação: 3VA = Prova (todo o conteúdo).

Gustavo Callou DEINFO/UFRPE 12

Avaliação (1/2)

Page 13: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Média Parcial (MP): média aritmética entre as duas maiores notas entre 1VA, 2VA e 3VA

Verificação Final: VF = Prova (todo conteúdo)

Média Final (MF): MF = (MP + VF)/2

Serão realizadas provas discursivas, individuais e semconsulta, em sala de aula abordando os tópicos relativosàs 1VA, 2VA e 3VA. Na Final será apenas realizada provadiscursiva em sala de aula.

Gustavo Callou DEINFO/UFRPE 13

Avaliação (2/2)

Page 14: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Presença;

Horários;

Avaliações;

Fila.

Gustavo Callou DEINFO/UFRPE 14

Compromissos

Page 15: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

BIBLIOGRAFIA

ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programação de Computadores. 2. ed. Editora Pearson, 2008.

Lopes, Anita e Garcia, Guto. Introdução à Programação. Editora Campus, 2002.

Albano, R., Albano, S. Programação em Linguagem C. Editora Ciência Moderna.

Lopes, Anita e Garcia, Guto. Introdução à Programação: 500 Algoritmos Resolvidos. Editora Campus, 2002.

SCHILD, Herbert. C, completo e total. 3. ed. rev. e atual. Tradução Roberto Carlos Mayer. S334c. São Paulo: Makron, c1996;

Cormen, Thomas H. et. al. Algoritmos: Teoria e Prática. Editora Campus, 2002.

Ziviani, Nivio. Projeto de Algoritmos. Editora Nova Fronteira, 2004.

Sebesta, Robert W. Conceitos de Linguagens de Programação.Bookman, 2001.

Page 16: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Contato

Comunicações durante a disciplina:

Materiais:

Site: www.cin.ufpe.br/~grac/ip

Grupo do Facebook: IPUFRPE2017.1

Contato com o professor:

email: [email protected]

[email protected]

Skype: gustavo.callou

16

Page 17: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Dúvidas? Sugestões?

17

Page 18: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Introdução a algoritmos

18

Page 19: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Algoritmos

Representação

Exercícios

Linguagens de Programação

Compilador

Interpretador

Ambiente de Desenvolvimento

Tópicos

19

Page 20: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Conjunto finito de regras que provê uma seqüência de

operações para resolver um tipo de problema específico.

Knuth, 1972.

Seqüencia ordenada, e não ambígua, de passos que levam à

solução de um dado problema. Tremblay, 1983.

Processo de cálculo, ou de resolução de um grupo de

problemas semelhantes, em que se estipulam, com

generalidade e sem restrições, as regras formais para a

obtenção do resultado ou da solução do problema. AURÉLIO.

Algoritmo

20

Page 21: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Formas de Representação

Narrativa:

Fluxograma:

Pseudocódigo:

Algoritmo

21

Page 22: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Formas de Representação

Narrativa: uso de português.

Fluxograma: símbolos gráficos para representar fases e

componentes dos algoritmos.

Pseudocódigo: Definição de uma pseudo Linguagem de

programação, cujos comandos são em português.

Algoritmo

22

Page 23: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Descrição Narrativa – Receita de Bolo

Algoritmo

23

Page 24: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Descrição Narrativa – Receita de Bolo

Misture os ingredientes

Junte a forma com manteiga

Despeje a mistura na forma

Se houver coco ralado

então despeje sobre a mistura

Leve a forma ao forno

Enquanto não corar

deixe a forma no forno

Retire do forno

Deixe esfriar

Algoritmo

24

Page 25: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Descrição Narrativa – Troca de Pneus

Algoritmo

25

Page 26: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Descrição Narrativa – Troca de Pneus

Afrouxar ligeiramente as porcas

Suspender o carro

Retirar as porcas e o pneu

Colocar o pneu reserva

Apertar as porcas

Abaixar o carro

Dar o aperto final nas porcas

Algoritmo

26

Page 27: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Descrição Narrativa – Média de um aluno

Algoritmo

27

Page 28: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Descrição Narrativa – Média de um aluno

Obter as suas 2 notas de provas

Calcular a média aritmética

Se a média for maior que 7,

o aluno foi aprovado,

senão ele foi reprovado

Algoritmo

28

Page 29: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Vamos Praticar !

1 - Passos para chegar a UFRPE e assistir aula de

introdução a programação.

2 - Passos para comprar algo via internet.

Exercícios de Descrição Narrativa

29

Page 30: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Fluxograma : representação gráfica de algoritmos

onde formas geométricas diferentes implicam ações

(instruções, comandos) distintos.

Símbolos

Algoritmo

30

Início e final

Entrada de dados

Saída de dados

Processamento

Decisão

Conector

Page 31: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Algoritmo

N2=0 ?

D = N1/N2

31

simNão

Início

Ler primeiro

Número – N1

Ler segundo

Número – N2

Fim

Exibir na

tela: valor

de “D”

Exibir na tela:

divisão por

zero

Page 32: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Vamos Praticar !

1. Calcular a área de um triângulo retângulo.

2. Verificar se o individuo é maior de idade ou não.

Exercícios

32

Page 33: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Pseudo-Código

Programa PDOBRO;

Variáveis NUM, DOBRO : inteiros

início

escreva (‘Digite um número: ’)

Leia (NUM);

DOBRO = 2 x NUM;

escreva (‘O dobro é:’, DOBRO);

fim

Algoritmo

33

Page 34: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Comandos

Atribuição : Utilizado para guardar um determinado valor

em uma variável.

1. total = 0

2. SOMA = SOMA + 1

3. mensagem = ‘Erro de Digitação !’

Entrada de Dados : Utilizado para ler dados do usuário, de

dispositivos externos, etc.

1. leia(Idade)

2. leia(‘d:\arquivo.txt’)

Saída de dados : Utilizado para exibir dados.

1. escreva(Idade)

2. escreva(‘d:\arquivo.txt’)

Algoritmo

34

Page 35: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Uma linguagem de programação é um vocabulário

e um conjunto de regras gramaticais usadas para

escrever programas de computador.

Divididas em três tipos, com relação à sua

similaridade com a linguagem humana:

Linguagem de máquina;

Linguagem Simbólica; e

Linguagem de Alto Nível (abstrata).

Linguagens de Programação

35

Page 36: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Linguagem de Máquina : é a linguagem de mais

baixo nível de entendimento pelo ser humano e

a única, na verdade, entendida pelo

processador (CPU).

Constituída inteiramente de números (0’s e 1’s).

Uma instrução típica em linguagem de máquina

seria algo como:

0100 1111 1010

Linguagens de Programação

36

Page 37: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Linguagem Simbólica (assembly): linguagem de nível imediatamente acima da linguagem de

máquina.

Possui a mesma estrutura e conjunto de instruções que alinguagem de máquina, porém permite que o programador utilizenomes (mnemônicos) e símbolos em lugar de números.

Única para cada tipo de CPU.

A conversão da linguagem simbólica para alinguagem de máquina se chama montagem, e éfeita por um programa chamado montador(assembler).

Linguagens de Programação

37

Page 38: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Exemplo de instrução:

ADD A, B

Classificada como linguagem de segunda geração,

e, assim como a linguagem de máquina, é

considerada uma linguagem de baixo nível.

Linguagens de Programação

38

Page 39: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Linguagens de Alto Nível (abstratas): linguagensde programação que possuem uma estrutura epalavras-chave que são mais próximas dalinguagem humana.

C, C++, Java, Python, etc ...

Programas escritos nessas linguagens sãoconvertidos para a linguagem de baixo nívelatravés de um programa denominadocompilador ou de um interpretador.

Linguagens de Programação

39

Page 40: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Exemplo de instrução de uma linguagem de alto

nível:

if (A>10) then A:=A-7;

Linguagens de Programação

40

Page 41: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Compilação : transformação de um programa

em código fonte (programa

escrito pelo

programador – source

language) em linguagem

de máquina (programa

executável – target

language).

Compilador

41

Page 42: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Ambiente de Desenvolvimento

18:38 Gustavo Rau de Almeida Callou 42

Page 43: Introdução à Programaçãograc/ip/Aula01 - Apresentacao.pdf · 2017. 5. 9. · Sebesta, Robert W. Conceitos de Linguagens de Programação. Bookman, 2001. Contato ... Linguagens

Dúvidas? Sugestões?

43