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
Tecnologia em Analise e Desenvolvimento de Sistemas - Construcao de Algoritmos - NR (A2ead370) Atividades Praticas Supervisionadas Atps 2013 2 Tads2 Construcao de Algoritmos
Tecnologia em Analise e Desenvolvimento de Sistemas - Construcao de Algoritmos - NR (A2ead370) Atividades Praticas Supervisionadas Atps 2013 2 Tads2 Construcao de Algoritmos