Você está na página 1de 10

Taboo da Serra

CURSO SUPERIOR DE TECNOLOGIA EM ANLISE E


DESENVOLVIMENTO DE SISTEMAS
Programao Estruturada II
Equipe dos Acadmicos:
Huilha dos Santos Fernandes RA: 7377582342
or!e da Sil"a Santos RA: 7#8$7$%8#$
&ilton 'atista Santos RA: ##757(##((
Samuel )ei*eira de +ima RA: 7373572$3#
)utor ,resencial: Eduardo -ale!o
Taboo da Serra/ SP
Abril / 201
Sumrio
1 Etapa 1 Passo .............................................................................................. 5
1 Etapa 2 Passo .............................................................................................. 5
1 Etapa 3 Passo .............................................................. 5
a. Arquivo: CodeCount.cpp..................................................................................5
. Arquivo: !iCodeCount.c................................................................................ "
2 Etapa 1 Passo................................................................................................#
2 Etapa 2 Passo........................................................................................... #
2 Etapa 3 Passo..............................................................................................1$
a. Arquivo: CodeCount.cpp................................................................................1$
. Arquivo: !iCodeCount.c...............................................................................13
Conc%us&o....................................................................................................... 15
'i%io(ra)ia........................................................................................................ 15
1 Etapa
1* Passo
!eitura para entendimento da so%icita+&o do A,PS- com a identi)ica+&o
dos dois principais tipos de comentrios dispon.veis na %in(ua(em C.
/s principais tipos de comentrio s&o o 00 que indica comentrio em
uma 1nica %in2a e 03 30 que permite rea%i4ar comentrios com m1%tip%as %in2as.
2* Passo
4
Para a so%u+&o do pro%ema proposto ser criado dois m5du%os.
/ arquivo principa% 6 o CodeCout.cpp que cont6m o modu%o toda a rotina de
conta(em das %in2as do arquivo. Esta modu%o rea%i4a a %eitura do arquivo
in)ormado para ana%isa. Ap5s rea%i4ada a an%ise 6 c2amada a )un+&o cc7un
que esta contida no arquivo !iCodeCount.c- passando a%(uns par8metro
necessrios para rea%i4a+&o da rotina.
A )un+&o cc7un 6 responsve% por receer os dados passados por paramentos-
pe%o modu%o principa%- )ormat9%os e e:iir as in)orma+;es ao usurio.
1 Etapa
3* Passo
Aqui temo os c5di(os )ontes dos arquivos (erados no desenvo%vimento desta
etapa.
a: Arquivo: CodeCount.cpp
<inc%ude
<inc%ude
<inc%ude
00=nc%ui o arquivo que cont6m as )un+;es de Ca%cu%o de n1mero de %in2as
<inc%ude >!iCodeCount.c>
int main?int ar(c- c2ar 3ar(v@AB
C
D=!E 3pDi%eE
c2ar car1- car2E
int n!ines F $- n!inesComment F $- n!inesEmptG F $E
00Aro o arquivo para veri)icar se o mesmo e:iste.
pDi%e F )open?ar(v@1A->r>BE
00Heri)ica se o arquivo )oi aerto.
i)?pDi%e IF JK!!B
C
car1 F )(etc?pDi%eBE
03=r veri)icar todos os caracteres do arquivo- para %oca%i4ar
00 99L Comentrio de %in2a.
03 e 3 0 99L Coment6rio em %oco e contar todas as %in2as do
comentrio.
Mn 99L Nuera de %in2a- indica que a %in2a terminou.
30
O2i%e ?car1 IF E/DBC
00Se encontrar um Mn conta uma %in2a em ranco.
i)?car1 FFPMnPB
C
5
n!inesQQE
R
00Heri)ica se o caracter atua% 6 0- se esta a)irma+&o )or
00verdadeira e o pr5:imo caracter )or F 3 ser iniciado o
00processo de conta(em das %in2as do comentrio em %oco.
i)?car1FF P0PBC
car2 F )(etc?pDi%eBE
00Conta as %in2as dos comentrios em %oco.
i)?car2 FF P3PBC
doC
doC
car1 F )(etc?pDi%eBE
i)?car1 FF PMnP SS car1 IF car2B
C
00Conta as %in2as do %oco de comentrio.
n!inesCommentQQE
00Conta(em de %in2as do arquivo.
n!inesQQE
R
00Se )or encontrado um Mn no %oco de comentrio-
00o mesmo n&o 6 contado como comentrio e sim
00como %in2a em ranco.
e%se i)?car1 FF PMnP SS car2 FF PMnPB
C
n!inesEmptGQQE
R
car2 F car1E
R
O2i%e?car1 IF P3PBE
car1 F )(etc?pDi%eBE
00At6 que seTa encontrado 30 a rotina de conta(em de
00%in2as no %oco de comentrio ser e:ecu%tada.
R
O2i%e?car1 IF P0PBE
R
00Conta os comentarios de uma unica %in2a
i)?car1 FFP0P SS car2 FFP0PB
C
n!inesCommentQQE
R
R
car2 F )(etc?pDi%eBE
00Conta as %in2as em ranco
i)?car2 FFPMnP SS car1 FF PMnPB
6
C
n!inesEmptGQQE
n!inesQQE
R
car1 F car2E
R
00Dec2o o arquivo.
)c%ose?pDi%eBE
00C2amada para a )un+&o que ir e:iri os contadores das %in2as.
cc7un?ar(v@1A-n!ines-n!inesComment-n!inesEmptGBE
R
00Se o arquivo n&o )oi encontrado 6 in)ormado ao usurio.
e%se
C
print)?>MnJao )oi possive% arir o arquivo Us.MnMn>-ar(v@1ABE
R
R
1 Etapa
3* Passo
: Arquivo: !iCodeCount.c
<inc%ude
<inc%ude
void cc7un?c2ar 3)i%e-int n!ines-int n!inesComment- int n!inesEmptGB
C
)%oat porcenta(emE
print)?>MnCode Count 9 Pro(ramerPs ,oo%>BE
print)?>Mn Hersion 1.$ 2$11Mn>BE
print)?>MnMn Conta(em para >Us>...Mn>-)i%eBE
print)?> Jumero de %in2as : UdMn>-n!inesBE
porcenta(em F ?n!ines 3 n!inesCommentB01$$E
print)?> Jumero de %in2as com comentarios : UdMn>-n!inesCommentBE
print)?> Porcenta(em de comenarios : U.$2) MUMn>-porcenta(emBE
print)?> Jumero de %in2as va4ias : UdMnMn>-n!inesEmptGBE
R
2 Etapa
1* Passo
A )un+&o main?B pode ter par8metros )ormais. Vas o pro(ramador n&o
pode esco%2er quais ser&o e%es. A dec%ara+&o mais comp%eta que se pode ter
para a )un+&o main?B 6:
7
int main ?int ar(c-c2ar 3ar(v@ABE
/s par8metros ar(c e ar(v d&o ao pro(ramador acesso W %in2a de
comando com a qua% o pro(rama )oi c2amado.
/ ar(c ?ar(ument countB 6 um inteiro e possui o n1mero de
ar(umentos com os quais a )un+&o main?B )oi c2amada na %in2a de comando.
E%e 6- no m.nimo 1- pois o nome do pro(rama 6 contado como sendo o primeiro
ar(umento.
/ ar(v ?ar(ument va%uesB 6 um ponteiro para uma matri4 de strin(s.
Cada strin( desta matri4 6 um dos par8metros da %in2a de comando. / ar(v@$A
sempre aponta para o nome do pro(rama ?que- como T )oi dito- 6 considerado
o primeiro ar(umentoB. X para saer quantos e%ementos temos em ar(v que
temos ar(c.
2 Etapa
2* Passo
Doram rea%i4adas a%tera+;es nos dois m5du%os para atender as novas
so%icita+;es onde a%6m do nome do arquivo que 6 um par8metro ori(at5rio-
est&o sendo disponii%i4ados mais trYs par8metros opcionais que permitem ao
usurio se%ecionar como as in)orma+;es ser&o passadas e tam6m
disponii%i4a um 2e%p para uti%i4a+&o do sistema.
Essas op+;es ser&o passadas por paramento ao modu%o secundrio
que teve que ser a%terado para receer os mesmos e processa9%os
corretamente para atender a so%icita+&o do usurio.
2 Etapa
3* Passo
Aqui temos os c5di(os )ontes dos arquivos a%terados no desenvo%vimento desta
etapa.
a: Arquivo: CodeCount.cpp
<inc%ude
<inc%ude
<inc%ude
00=nc%ui o arquivo que cont6m as )un+;es de Ca%cu%o de n1mero de %in2as
<inc%ude >!iCodeCount.c>
int main?int ar(c- c2ar 3ar(v@AB
C
D=!E 3pDi%eE
c2ar car1- car2E
int i-n!ines F $-n!inesComment F $-n!inesEmptG F $-noComment F $-si%ent F
8
$-2e%p F $E
)or?iF2Ei Comentrio de %in2a.
03 e 3 0 99L Coment6rio em %oco e contar todas as %in2as do
comentrio.
Mn 99L Nuera de %in2a- indica que a %in2a terminou.
30
O2i%e ?car1 IF E/DBC
00Se encontrar um Mn conta uma %in2a em ranco.
i)?car1 FFPMnPB
C
n!inesQQE
R
00Heri)ica se o caracter atua% 6 0- se esta a)irma+&o )or
00verdadeira e o pr5:imo caracter )or F 3 ser iniciado o
00processo de conta(em das %in2as do comentrio em %oco.
i)?car1FF P0PBC
car2 F )(etc?pDi%eBE
00Conta as %in2as dos comentrios em %oco.
i)?car2 FF P3PBC
doC
doC
car1 F )(etc?pDi%eBE
i)?car1 FF PMnP SS car1 IF car2B
C
00Conta as %in2as do %oco de comentrio.
n!inesCommentQQE
00Conta(em de %in2as do arquivo.
n!inesQQE
R
00Se )or encontrado um Mn no %oco de comentrio-
00o mesmo n&o 6 contado como comentrio e sim
00como %in2a em ranco.
e%se i)?car1 FF PMnP SS car2 FF PMnPB
C
n!inesEmptGQQE
R
car2 F car1E
R
O2i%e?car1 IF P3PBE
car1 F )(etc?pDi%eBE
00At6 que seTa encontrado 30 a rotina de conta(em de
00%in2as no %oco de comentrio ser e:ecu%tada.
R
O2i%e?car1 IF P0PBE
9
R
00Conta os comentarios de uma unica %in2a
i)?car1 FFP0P SS car2 FFP0PB
C
n!inesCommentQQE
R
R
car2 F )(etc?pDi%eBE
00Conta as %in2as em ranco
i)?car2 FFPMnP SS car1 FF PMnPB
C
n!inesEmptGQQE
n!inesQQE
R
car1 F car2E
R
00Dec2o o arquivo.
)c%ose?pDi%eBE
00C2amada para a )un+&o que ir e:iri os contadores das %in2as.
cc7un?ar(v@1A-n!ines-n!inesComment-n!inesEmptG-noComment-si%entBE
R
00Se o arquivo n&o )oi encontrado 6 in)ormado ao usurio.
e%se
C
print)?>MnJao )oi possive% arir o arquivo Us.MnMn>-ar(v@1ABE
R
R
e%se
C
print)?>MnMn Este pro(rama )oi desenvo%vido para contar as %in2as>BE
print)?>Mn de um codi(o )onte desenvo%vido em C- e%e aponta o>BE
print)?>Mn tota% de %in2as- %in2as em ranco e comentarios.>BE
print)?>MnMn>BE
print)?>Mn 99999999999999ZE!P999999999999>BE
print)?>MnMn>BE
print)?>Mn Para uti%i4ar o pro(rama deve in)ormar os se(uintes parametros:>BE
print)?>MnMn /ri(atorio >CodeCount >>BE
print)?>Mn onde no paramentro deve conter o camin2o e o nome do>BE
print)?>Mn arquivo a ser ana%i4ado.>BE
print)?>Mn>BE
print)?>Mn E:emp%o: CodeCount !ista(em2.cpp>BE
print)?>Mn>BE
print)?>Mn /pcionais:>BE
print)?>Mn 9c ou 9comment>BE
10
print)?>Mn Para n&o e:iir a conta(em das %in2as de comentarios>BE
print)?>Mn>BE
print)?>Mn E:emp%o: CodeCount !ista(em2.cpp 9c>BE
print)?>Mn>BE
print)?>Mn 9s ou 9si%ent>BE
print)?>Mn Jao sera e:iido na te%a o resu%tado.>BE
print)?>Mn / resu%tado ser e:iido no arquivo >CodeCount[7esu%t.t:t>>BE
print)?>Mn>BE
print)?>Mn 92 ou 92e%p>BE
print)?>Mn E:ie este 2e%p do sistema>BE
print)?>MnMn>BE
R
R
2 Etapa
3* Passo
: Arquivo: !iCodeCount.cpp
<inc%ude
<inc%ude
<inc%ude
void cc7un?c2ar 3)i%e-int n!ines-int n!inesComment- int n!inesEmptG- int
noComment- int si%entB
C
)%oat porcenta(emE
print)?>MnCode Count 9 Pro(ramerPs ,oo%>BE
print)?>Mn Hersion 1.$ 2$11Mn>BE
i)?si%ent FF $B
C
print)?>MnMn Conta(em para >Us>...Mn>-)i%eBE
print)?> Jumero de %in2as : UdMn>-n!inesBE
i)?noComment FF $B
C
porcenta(em F ?n!ines 3 n!inesCommentB01$$E
print)?> Jumero de %in2as com comentarios : UdMn>-n!inesCommentBE
print)?> Porcenta(em de comenarios : U.$2) MUMn>-porcenta(emBE
R
print)?> Jumero de %in2as va4ias : UdMnMn>-n!inesEmptGBE
R
e%se
C
D=!E 3pDi%eE
00Are o arquivo- se n&o e:istir cria um novo.
11
pDi%e F )open?>CodeCount[7esu%t.t:t>->O>BE
00Escrevendo no Arquivo.
)print)?pDi%e->MnCode Count 9 Pro(ramerPs ,oo%>BE
)print)?pDi%e->Mn Hersion 1.$ 2$11Mn>BE
)print)?pDi%e->MnMn Conta(em para >Us>...Mn>-)i%eBE
)print)?pDi%e-> Jumero de %in2as : UdMn>-n!inesBE
i)?noComment FF $B
C
porcenta(em F ?n!ines 3 n!inesCommentB01$$E
)print)?pDi%e-> Jumero de %in2as com comentarios : UdMn>-n!inesCommentBE
)print)?pDi%e-> Porcenta(em de comenarios : U.$2) MUMn>-porcenta(emBE
R
)print)?pDi%e-> Jumero de %in2as va4ias : UdMnMn>-n!inesEmptGBE
)c%ose?pDi%eBE
00=n)ormando ao usurio que o arquivo )oi criado.
print)?>MnMnDoi (erado o arquivo CodeCount[7esu%t.t:t>BE
print)?>Mnno diretorio do sistema com o resu%tado da conta(em.Mn>BE
R
R
Conc%us&o
Para a rea%i4a+&o desta A,PS nos uti%i4amos e conso%idamos todos os
con2ecimentos adquiridos em au%a.
Doram uti%i4adas as passa(ens de in)orma+;es entre m5du%os por
par8metro- uti%i4amos tam6m os ar(umentos ar(c e ar(v@A para identi)icarmos
as so%icita+;es do usurio.
/utro ponto importante conso%idado com este traa%2o )oi a
manipu%a+&o de arquivos- pois tivemos que rea%i4ar %eitura e escrita nos
mesmos.
'i.lio!ra/ia:
http:001112mtm2u/sc2.r03a4eredo0curso50aulas0c7#$2html
12

Você também pode gostar