Buscar

Modularização, Git e Estruturas de Dados em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 13 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SI 200 – Algoritmos e Programac¸a˜o
de Computadores II
Prof. Cla´udio Alessandro de Carvalho Silva
cacs@ft.unicamp.br
Aula 05
Modularizac¸a˜o, Git, Estruturas de Dados
Conteu´do
1 Revisa˜o: Programas Multi-Arquivos em C
2 Controle de Verso˜es e Git
3 Estruturas de Dados e Funcionalidades
4 Projeto
5 Refere^ncias
U¨bersicht
1 Revisa˜o: Programas Multi-Arquivos em C
2 Controle de Verso˜es e Git
3 Estruturas de Dados e Funcionalidades
4 Projeto
5 Refere^ncias
Modularizac¸a˜o em Arquivos
Conjuntos de func¸o˜es e delcarac¸o˜es de tipos de dados
podem ser movidas para arquivos diferentes do arquivo
principal contendo o main():
Os proto´tipos de func¸o˜es e declarac¸o˜es de tipos de
dados sa˜o colocados em arquivos *.h (chamados
de headers).
As implementac¸o˜es e inicializac¸o˜es em arquivos
*.c.
Funcionalidades relacionadas sa˜o colocadas em arquivos
de mesmo nome:
nome.h e nome.c
Na˜o e´ obrigato´rio criar bibliotecas.
Na˜o e´ obrigato´rio distribuir em direto´rios diferentes.
Exemplo: modularizar arquivo
1 Arquivo original monol´ıtico prodcons.c.
2 Criados arquivos jobs.h e jobs.c.
jobs.h: estruturas de dados e proto´tipos.
jobs.c: implementac¸o˜es e inicializac¸o˜es.
3 prodcons-slim.c conte´m apenas o main() original.
4 Observar as incluso˜es necessa´rias para compilar jobs.h.
5 Observar diretivas de compilac¸a˜o #ifndef, #define e #endif
para evitar inclusa˜o mu´ltipla.
6 Observar que jobs.h precisa ser inclu´ıdo em jobs.c e
prodcons-slim.c.
Compilac¸a˜o
$ gcc -c jobs.c
$ gcc -c prodcons-slim.c
$ gcc -o pc-slim jobs.o prodcons-slim.o -lpthread
$
Conteu´do de Makefile simples
pc-slim: prodcons-slim.o jobs.o
gcc $(CFLAGS) -o pc-slim jobs.o prodcons-slim.o -lpthread
prodcons-slim.o: prodcons-slim.c jobs.h
gcc $(CFLAGS) -c prodcons-slim.c
jobs.o: jobs.c jobs.h
gcc $(CFLAGS) -c jobs.c
clean:
rm -f *.o pc-slim
Usando o Makefile
$ make
$ make clean
$ make CFLAGS=-O2
$ make CFLAGS=-g
U¨bersicht
1 Revisa˜o: Programas Multi-Arquivos em C
2 Controle de Verso˜es e Git
3 Estruturas de Dados e Funcionalidades
4 Projeto
5 Refere^ncias
O que e´ controle de verso˜es?
Controle de verso˜es e´ um sistema que grava mudanc¸as de um arquivo ou
conjunto de arquivos no tempo de forma que seja poss´ıvel recuperar
verso˜es espec´ıficas no futuro.
Reverter arquivos ou todo projeto para um estado anterior.
Comparar alterac¸o˜es.
Verificar que fez determinada modificac¸a˜o.
Recuperac¸a˜o de acidentes de desenvolvimento.
Tipos
Local.
Centralizado.
Distribu´ıdos.
Git: o ba´sico
Quase todas as operac¸o˜es sa˜o locais.
O´timo sistema de desenvolvimento na˜o-linear
(branching).
Opera em tre^s estados.
Git: como trabalhar
1 Clonar reposito´rio.
2 Gravar mudanc¸as no reposito´rio local.
3 Enviar mudanc¸as para o reposito´rio remoto.
4 Visualizar histo´rico.
5 Incorporar mudanc¸as do reposito´rio remoto.
6 Tags
7 Branches
Clonar reposito´rio
$ git clone https://cacs@bitbucket.org/cacs/nome_do_rep.git
$ git clone https://cacs@bitbucket.org/cacs/nome_do_rep.git nome_local
Gravar mudanc¸as no reposito´rio local
Gravar mudanc¸as no reposito´rio local
$ git status estado do direto´rio de trabalho
$ git add novo arq.h adiciona arquivos ao stage
$ git commit adiciona modificacoes ao git local
Enviar mudanc¸as para o reposito´rio remoto
$ git push -u origin master
Visualizar histo´rico
$ git log
$ git log -p -2
Incorporar mudanc¸as do reposito´rio remoto
$ git fetch
$ git merge origin/master
Tags
$ git tag
v0.1
v1.3
$ git tag -a v1.4 -m ’my version 1.4’
$ git tag
v0.1
v1.3
v1.4
Branches
$ git branch testing
$ git checkout testing
$ vim test.rb
$ git commit -a -m ’made a change’
U¨bersicht
1 Revisa˜o: Programas Multi-Arquivos em C
2 Controle de Verso˜es e Git
3 Estruturas de Dados e Funcionalidades
4 Projeto
5 Refere^ncias
U¨bersicht
1 Revisa˜o: Programas Multi-Arquivos em C
2 Controle de Verso˜es e Git
3 Estruturas de Dados e Funcionalidades
4 Projeto
5 Refere^ncias
U¨bersicht
1 Revisa˜o: Programas Multi-Arquivos em C
2 Controle de Verso˜es e Git
3 Estruturas de Dados e Funcionalidades
4 Projeto
5 Refere^ncias
Refere^ncias
DEITEL, H. M., DEITEL, P. J., Como Programar em C. Rio de
Janeiro: LTC, 1999. Cap. 5, 6.
BAIOCO, G. B, Modularizac¸a˜o de Programas, Subprogramas em
C, Parte 2 – Para^metros, Unicamp, 2014.
TENENBAUM, A. M., LANGSAM, Y. AUGESTEIN, M. J.
Estruturas de Dados Usando C, Makron Books, 1995.
WIRTH, N. Algoritmos e Estruturas de Dados, Prentice Hall, 1996.
	Revisão: Programas Multi-Arquivos em C
	Controle de Versões e Git
	Estruturas de Dados e Funcionalidades
	Projeto
	Referências

Outros materiais