Академический Документы
Профессиональный Документы
Культура Документы
PROGRAMAO ESTRUTURADA II
TAGUATINGA/DF
2014
1
SUMRIO
SUMRIO................................................................................................................ 2
1 ANALISE DO PROBLEMA...................................................................................... 3
1.1 Mdulo principal............................................................................................... 3
1.2 Mdulo auxiliar................................................................................................ 4
1.3 Herader (cabealho)........................................................................................... 5
1.4 Cdigo fonte por dois mdulos: Funo principal e funo auxiliar.................................7
2 FUNO PRINCIPAL............................................................................................. 8
2.1 Parmetros opcionais........................................................................................... 9
2.1.1 Comando silent......................................................................................... 10
2.1.2 Comando comment..................................................................................... 10
2.1.3 Comando help........................................................................................... 10
2.2 Parmetro obrigatrio....................................................................................... 11
3 DESENVOLVENDO ALGORITMO.........................................................................12
3.1 Funes Auxiliares: parse_linha e isempty.............................................................12
3.2 Funo ccRun: contabilizando o nmero de linhas....................................................14
4 DEMONSTRANDO O PROGRAMA E OS RESULTADOS OBTIDOS..............................19
4.1 Demonstrao 01............................................................................................. 19
4.2 Demonstrao 02............................................................................................. 20
4.3 Demonstrao 03............................................................................................. 24
4.4 Acesso ao contedo.......................................................................................... 27
REFERNCIAS........................................................................................................ 28
1 ANALISE DO PROBLEMA
Iniciamos nossa atividade prtica supervisionada analisando o problema proposto,
aps discutirmos entre os membros de nosso grupo de trabalhos acadmicos, distribumos as
tarefas levantadas no decorrer da anliseda seguinte maneira: Configurao de ambiente de
desenvolvimento,
estruturao
de
arquivos,
criao
dos
prottipos
das
funes,
Observem que foram criados 3 (trs) arquivos, sendo 2 (dois) arquivos com a extenso
.c e 1 (um) arquivo de cabealho header com a extenso .h, no terceiro arquivo
apresentado na Figura 1.0 iremos criar a funo main, que a funo responsvel pela
execuo do nosso programa que ir contar as linhas, no primeiro arquivo apresentado na
figura ns iremos desenvolver a funo que ir efetuar a contagem e distribuio de
caracterstica das linhas, j no arquivo LibCodeCount.h que nosso arquivo de cabealho,
ele ir receber parmetros e os prottipos das funes.
enumerao
linhaComentario,
por
fim
utilizamos
Na figura acima definimos que o tipo BOOL inteiro e logo aps definimos que todas
as variveis que forem TRUE sero 1 (um) e todas que foram declaradas como FALSE
tero o atributo de 0 (zero). Com isso temos a possibilidade de trabalhar com tipos de
variveis booleanas.
Para finalizar nosso arquivo header declaramos os prottipos das funes, inserimos
funes que retornem inteiros e que no necessitariam de declarao apenas para fins
acadmicos e para melhor entendimento do cdigo por parte de outros alunos.
6
1.4 Cdigo fonte por dois mdulos: Funo principal e funo auxiliar
Neste captulo iremos mostrar a estrutura inicial do cdigo fonte dos mdulos
LibCodeCount.c e MainCodeCount.c.
Cdigo do mdulo principal:
2 FUNO PRINCIPAL
Para nossa funo principal (main) o primeiro passo foi fazer um levantamento de
quais variveis iriamos utilizar e que tipo de variveis, aps um longo tempo analisando o
algoritmo para resoluo do problema chegamos a seguinte relao de variveis.
Aps termos declarado nossas variveis, observem que utilizamos tipos de variveis
booleanas, conforme explicadas no terceiro pargrafo do captulo 1.3, temos a varivel do tipo
inteira com o nome de ret, essa varivel ir receber o retorno da chamada da funo
auxiliar, que a funo que efetuar a contagem das linhas, as demais variveis do tipo inteiro
8
iro armazenar a quantidade de linhas contadas de cada tipo existente, exceto a varivel
inteira com o nome de i, essa varivel ser utilizada no lao que ir fazer o tratamento dos
parmetros opcionais.
Observem que na Figura 2,3 temos uma funo condicional if que verifica se a
varivel comment est com o atributo de verdadeiro TRUE, caso estej ele executa o
contedo de dentro do bloco da funo condicional.
10
Na Figura 2.4 podemos ter uma noo de como apresentado na tela as mensagens
de ajuda, e o programa tambm apresenta a sua verso e o ano que foi desenvolvido, para fins
acadmicos colocamos o ano de 2013.
11
Com isso nossa funo principal main se encerra com a execuo dos parmetros
opcionais e parmetro obrigatrio, nos prximos captulos iremos mostrar como foi
desenvolvido o algoritmo que efetua a contagem e classificao das linhas.
3 DESENVOLVENDO ALGORITMO
No desenvolvimento do mdulo auxiliar do algoritmo que ir fazer a contagem das
linhas utilizamos 3 (trs) funes, uma das funes ir fazer o trabalho de identificar em meio
as strings a classificao de cada linha, a outra funo servir para identificar as linhas que
esto vazias e por ltimo a funo ccRun, essa funo a que efetua a contagem das linhas
para retornar a funo principal main os valores contados.
A misso interagir as 3 (trs) funes para que a funo ccRun apenas retorne a
contagem das linhas.
foi identificado, para isso utilizamos uma funo de uma das bibliotecas importadas, a funo
strstr() faz a varredura na linha e verifica se encontrou algum valor que foi passado na
funo condicional if, caso a funo encontre o trecho solicitado pela funo condicional
retornado
tipo
da
linhaIniciouComentario,
linha,
esto
classificadas
linhaFinalizouComentario,
como
linhaComentario,
linhaComentarioSimples
linhaNeutra.
isso cada caractere comparado em outra funo condicional if, essa funo condicional
faz a verificao se o caracter que ela est analisando diferente de um espao em branco,
caso encontre esse espao em branco no caractere percorrido dentro da string ele retorna
como falso (FALSE).
Agora que temos a verificao das linhas separado em funes, basta utilizarmos em
nossa funo ccRun a chamada das funes para que elas faam as verificaes de tipo de
linhas em que estamos percorrendo na leitura do arquivo que ser aberto.
14
Aps feito a declarao das variveis o prximo passo ser abrir o arquivo que ser
feito a anlise e contagem das linhas, para isso utilizamos a varivel pf, e utilizamos a
funo fopen() passando o nome do arquivo e o parmetro r, esse parmetro nos permite
fazer a leitura do arquivo.
Em seguida utilizamos uma funo condicional if para verificar se o arquivo foi
aberto com sucesso, caso tenha ocorrido algum problema nossa funo ir retornar o valor
para o local de onde foi chamada a funo -1.
17
Nesta etapa a funo ccRun retorna a quantidade de linhas que foi contato e
armazenado em suas respectivas variveis.
18
Com isso finalizamos o que foi solicitado na atividade prtica supervisionada, nos
demais captulos deste trabalho acadmico iremos demonstrar o programa contador de linhas
funcionando em 3 (trs) exemplos.
4.1 Demonstrao 01
Nesta demonstrao iremos utilizar um cdigo simples feito na linguagem C.
19
4.2 Demonstrao 02
Para o exemplo 02 continuamos utilizando um cdigo fonte em linguagem C, porm
com mais linhas e mais comentrios.
20
21
22
23
4.3 Demonstrao 03
Para o exemplo 03 utilizando um cdigo fonte em linguagem C++.
25
26
REFERNCIAS
Pesquisado em http://pt.wikipedia.org/wiki/Biblioteca_padr%C3%A3o_do_C 27 de
Abril de 2014
Pesquisado em http://www.tiexpert.net/programacao/c/include.php 10 de Abril de
2014
Pesquisado em http://www.cprogressivo.net/2013/03/Aprenda-a-usar-todas-asfuncoes-da-biblioteca-string-h-em-C.html 12 de Abril de 2014
27