Introdução à Programação
Prof. Gustavo Callou gustavo.callou@ufrpe.br
gcallou@gmail.com
Apresentações;
A disciplina:
Objetivos;
Cronograma;
Avaliação;
O que é Computação;
Breve histórico.
Gustavo Callou DEINFO/UFRPE 2
Roteiro
Nos conhecendo
3
Quem são vocês?
Experiências?
Expectativas?
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
Do que se trata esta disciplina?
5
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.
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
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
Conteúdo
Data 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ícios
9
Cronograma
19 Exercícios
20 Revisão
21 Primeira Avaliação
22 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.)
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.)
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)
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 sem consulta, em sala de aula abordando os tópicos relativos às 1VA, 2VA e 3VA. Na Final será apenas realizada prova discursiva em sala de aula.
Gustavo Callou DEINFO/UFRPE 13
Avaliação (2/2)
Presença;
Horários;
Avaliações;
Fila.
Gustavo Callou DEINFO/UFRPE 14
Compromissos
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.
Contato
Comunicações durante a disciplina:
Materiais:
Site: www.cin.ufpe.br/~grac/ip
Grupo do Facebook: IPUFRPE2017.1
Contato com o professor:
email: gustavo.callou@ufrpe.br
gcallou@gmail.com
Skype: gustavo.callou
16
Dúvidas? Sugestões?
17
Introdução a algoritmos
18
Algoritmos
Representação
Exercícios
Linguagens de Programação
Compilador
Interpretador
Ambiente de Desenvolvimento
Tópicos
19
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
Formas de Representação
Narrativa:
Fluxograma:
Pseudocódigo:
Algoritmo
21
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
Descrição Narrativa – Receita de Bolo
Algoritmo
23
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
Descrição Narrativa – Troca de Pneus
Algoritmo
25
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
Descrição Narrativa – Média de um aluno
Algoritmo
27
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
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
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
Algoritmo
N2=0 ? D = N1/N2
31
Não sim
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
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
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
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
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
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
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 a linguagem de máquina, porém permite que o programador utilize nomes (mnemônicos) e símbolos em lugar de números.
Única para cada tipo de CPU.
A conversão da linguagem simbólica para a linguagem de máquina se chama montagem, e é feita por um programa chamado montador (assembler).
Linguagens de Programação
37
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
Linguagens de Alto Nível
(abstratas): linguagens de programação que possuem uma estrutura e palavras-chave que são mais
próximas da linguagem humana.
C, C++, Java, Python, etc ...
Programas escritos nessas linguagens são convertidos para a linguagem de baixo nível através de um programa denominado compilador ou de um interpretador.
Linguagens de Programação
39
Exemplo de instrução de uma linguagem de alto nível:
if (A>10) then A:=A-7;
Linguagens de Programação
40
Compilação : transformação de um programa em código fonte (programa
escrito pelo
programador –
source language) em linguagemde máquina (programa executável –
targetlanguage).
Compilador
41
Ambiente de Desenvolvimento
18:38 Gustavo Rau de Almeida Callou 42
Dúvidas? Sugestões?
43