Baixe o app para aproveitar ainda mais
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
Compartilhar