Apresentação e exercícios...
Transcript of Apresentação e exercícios...
![Page 1: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/1.jpg)
1
Apresentação e exercícios básicos
MCTA001Algoritmos e Estruturas de Dados I
Prof. Jesús P. Mena-Chalco
1Q-2019
![Page 2: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/2.jpg)
2
Apresentação
Professor:Jesús P. Mena-Chalco (CMCC)
Formação: - Engenheiro da Computação.- Mestre e Doutor em Ciência da Computação.Instituto de Matemática e Estatística da USP.
Sala 517-A, torre 2, 5º Andar.
Áreas de pesquisa:- Reconhecimento de padrões, Cientometria.
![Page 4: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/4.jpg)
4
![Page 5: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/5.jpg)
5
Programar?
Programar auxilia a desenvolver o pensamento lógico. Programar lhe torna mais independente.
![Page 6: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/6.jpg)
6
You Should Learn to Program: Christian Genco at TEDxSMUhttps://www.youtube.com/watch?v=xfBWk4nw440
![Page 7: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/7.jpg)
7
Sobre a disciplina
![Page 8: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/8.jpg)
8
Pré-requisitos
Precisa ter cursado Processamento de Informação.Precisa ter cursado Programação Estruturada.
Deve ser capaz de escrever um programa “simples” na linguagem C.
Obs: → A disciplina usa a linguagem c. → A disciplina é focada nos algoritmos por trás dos programas.
![Page 9: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/9.jpg)
9
Questões de eficiências
Queremos programas eficientes (rápidos).→ Não se trata de usar truques que acelerem um programa (nesse nasso a aceleração é modesta)
A eficiencia pode ser obtida através de boas estruturas de dados e bons algoritmos.
![Page 10: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/10.jpg)
10
Exemplo: Imagine dois programas
P1: Desenvolvido em um computador Y.P2: Mesmo algoritmo de P1 mas em um computador mais lento.
n tamanhoda instância de
entrada
Tempo de Processamento
De P1
![Page 11: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/11.jpg)
11
Exemplo: Um terceiro programa
![Page 12: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/12.jpg)
12
Exemplo: Um terceiro programa10 30 50 70 90 110
130
150
170
190
210
230
250
270
290
310
330
350
370
390
410
430
450
470
490
510
530
550
570
590
0
100
200
300
400
500
600
700
P1 = n
P2 = n/2
P3 = log(n)*20
![Page 13: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/13.jpg)
13
Exemplo: Um terceiro programa10
020
030
040
050
060
070
080
090
010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
00
0
1000
2000
3000
4000
5000
6000
7000
P1 = n P2 = n/2
P3 = log(n)*20
![Page 14: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/14.jpg)
14
Algoritmos e Estruturas de Dados I
Ementa:
Breve introdução à linguagem C.
Noções básicas de análise de complexidade de tempo de
algoritmos.
Estruturas lineares.
Árvores de busca.
Árvores balanceadas.
Busca e ordenação.
![Page 15: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/15.jpg)
15
Algoritmos e Estruturas de Dados I
Algoritmos sofisticados, geralmente, são mais eficientes
![Page 16: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/16.jpg)
16
Futuro: Algoritmos e Estruturas de Dados II
Hashing.
Introdução a arquivos: Arquivos seqüenciais. Arquivos indexados. Arquivos de acesso direto.
Prática de programação dos arquivos e das funções primitivas na resolução de problemas.
Compressão de arquivos
![Page 17: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/17.jpg)
17
Bibliografia
P. Feofiloff.Algoritmos em Linguagem C. 1ª Edição, Editora Campos, 2008. Veja também o site deste livro.
T. Cormen et al. Algoritmos: Teoria e Prática. Rio de Janeiro: Editora Campus, 2ª edição, 2002.
N. Ziviani. Projeto de Algoritmos com implementação em Java e C++. São Paulo: Editora Thomson, 1a edição, 2007.
![Page 18: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/18.jpg)
18
Alguns livros importantes para a carreira
![Page 19: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/19.jpg)
19
Turmas A3-A4 (Matutino e Noturno)
Matutino
1 12/fev LAB Introdução à linguagem C1 14/fev TEO Apres. da disciplina. Ponteiros e estruturas2 19/fev LAB Ponteiros e estruturas2 21/fev TEO Ponteiros e estruturas lineares3 26/fev LAB Estruturas lineares (pilhas e filas)3 28/fev TEO Custos de algoritmos4 05/marLAB Feriado (carnaval)4 07/marTEO Algoritmos de busca. Árvores de Busca5 12/marLAB Árvores de busca5 14/marTEO Revisão de exercícios6 19/marLAB Prova 1 (no laboratório: Teoria+Lab)6 21/marTEO Árvores de busca balanceadas7 26/marLAB Árvores de busca balanceadas7 28/marTEO Árvores de busca balanceadas8 02/abr LAB Árvores de busca balanceadas8 04/abr TEO Árvores de busca balanceadas9 09/abr LAB Árvores de busca balanceadas9 11/abr TEO Algoritmos simples de ordenação10 16/abr LAB Algoritmos simples de ordenação10 18/abr TEO Algoritmos de ordenação eficientes11 23/abr LAB Algoritmos de ordenação eficientes11 25/abr TEO Revisão de exercícios12 30/abr LAB Prova 2 (no laboratório: Teoria+Lab)12 02/mai TEO Prova substitutiva13 08/mai LAB Prova de recuperação
Noturno
1 12/fev TEO Apresentação da disciplina1 14/fev LAB Introdução à linguagem C2 19/fev TEO Ponteiros e estruturas2 21/fev LAB Ponteiros e estruturas3 26/fev TEO Ponteiros e estruturas lineares3 28/fev LAB Estruturas lineares (pilhas e filas)4 05/marTEO Feriado (carnaval)4 07/marLAB Custos de algoritmos5 12/marTEO Algoritmos de busca. Árvores de Busca5 14/marLAB Árvores de busca6 19/marTEO Revisão de exercícios6 21/marLAB Prova 1 (no laboratório: Teoria+Lab)7 26/marTEO Árvores de busca balanceadas7 28/marLAB Árvores de busca balanceadas8 02/abr TEO Árvores de busca balanceadas8 04/abr LAB Árvores de busca balanceadas9 09/abr TEO Árvores de busca balanceadas9 11/abr LAB Árvores de busca balanceadas10 16/abr TEO Algoritmos simples de ordenação10 18/abr LAB Algoritmos simples de ordenação11 23/abr TEO Algoritmos de ordenação eficientes11 25/abr LAB Algoritmos de ordenação eficientes12 30/abr TEO Revisão de exercícios12 02/mai LAB Prova 2 (no laboratório: Teoria+Lab)13 08/mai TEO Prova substitutiva
![Page 20: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/20.jpg)
20
Sobre as avaliações
Nota Período regular:0,35 * (P1 + P2) + 0,3 * Lab + Bônus
Recuperação: 0,7 * REC + 0,3 * Lab + Bônus
Atribuição de conceitos:A: nota ≥ 9B: 7,5 ≤ nota < 9C: 6 ≤ nota < 7,5D: 5,0 ≤ nota < 6F: nota < 5,0
![Page 21: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/21.jpg)
21
Página web
http://professor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/
![Page 22: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/22.jpg)
22
Exercícios de programação
![Page 23: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/23.jpg)
23
Exercício 1
Escreva uma função, na linguagem C, em que dados dois números inteiros a e b, com a<=b, devolva a somatória dos números no intervalo [a, b].Obs: Use um laço
![Page 24: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/24.jpg)
24
Exercício 1
Escreva uma função, na linguagem C, em que dados dois números inteiros a e b, com a<=b, devolva a somatória dos números no intervalo [a, b].Obs: Use um laço
![Page 25: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/25.jpg)
25
Exercício 1
Escreva uma função, na linguagem C, em que dados dois números inteiros a e b, com a<=b, devolva a somatória dos números no intervalo [a, b].Obs: Use um laço
![Page 26: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/26.jpg)
26
Exercício 2
Escreva uma função recursiva, na linguagem C, em que dados dois números inteiros a e b, com a<=b, devolva a somatória dos números no intervalo [a, b].
![Page 27: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/27.jpg)
27
Exercício 2
Escreva uma função recursiva, na linguagem C, em que dados dois números inteiros a e b, com a<=b, devolva a somatória dos números no intervalo [a, b].
https://goo.gl/RWXugK
#include <stdio.h>
int FSRec(int a, int b) {
if (a<=b) return a + FSRec(a+1,b); return 0;
}
int main(void) { printf("%d\n", FSRec(50, 80)); return 0;}
![Page 28: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/28.jpg)
28
Exercício 3
Dado um vetor de inteiros, v[0..n-1], crie uma função para determinar se a sequência de números corresponde a um palíndromo.
→ [1,2,3,4,3,2,1]: vetor palíndromo, devolve 1.→ [1,2,3,4,5,6,7]: não é vetor palíndromo, devolve 0.
Qual é o número mínimo de comparações necessárias para verificar se um vetor de tamanho n é ou não palíndromo?
![Page 29: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/29.jpg)
29
Exercício 3
![Page 30: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/30.jpg)
30
Exercício 3 (uma versão “elegante”)
![Page 31: Apresentação e exercícios básicosprofessor.ufabc.edu.br/~jesus.mena/courses/aed1-1q-2019/AED1-00.pdf · 3 26/fev LAB Estruturas lineares (pilhas e filas) 3 28/fev TEO Custos de](https://reader033.fdocumentos.tips/reader033/viewer/2022041810/5e579947814e49685957a21c/html5/thumbnails/31.jpg)
31
Exercício 3 (uma versão recursiva)