ATPS Prog Estruturada II - Consoles
Artigo: ATPS Prog Estruturada II - Consoles. Pesquise 862.000+ trabalhos acadêmicosPor: morrigan • 26/4/2014 • 923 Palavras (4 Páginas) • 453 Visualizações
Etapa 1
Passo 1
Leitura para o entendimento da solicitação do ATPS, com a identificação dos dois principais tipos de comentários disponíveis na linguagem C.
Os principais tipos de comentário são “//” que indica comentário em uma única linha e /* */ que permite realizar comentários com múltiplas linhas.
Passo 2
Solução utilizando-se dois módulos conforme solicitado.
Primeiro módulo: MainCodeCount.cpp
O arquivo principal é o MainCodeCount.cpp que contém o módulo toda a rotina de contagem das linhas do arquivo. Este módulo realiza a leitura do arquivo informado para análise, que é feita pelo segundo módulo, descrito abaixo.
Segundo módulo: LibCodeCount.c
Depois de realizada a análise é chamada a função ccRun que está no arquivo LibCodeCount.c, que contém os parâmetros necessários à realização da rotina.
A função ccRun é responsável por receber os dados passados nos parâmetros, pelo módulo principal, formatá-los e exibir as informações ao usuário.
Passo 3
Códigos fonte de ambos os módulos desenvolvidos para a etapa 1.
3.1 Arquivo: MainCodeCount.c
#include
#include
#include
#include
#include
#include "LibCodeCount.h"
int main(int argc, char *argv[])
{
int numeroLinhas, numeroComentarios, numeroVazias;
numeroLinhas = numeroComentarios = numeroVazias = 0;
char *aux;
if(argc < 2)
{
puts("\nUso correto: >MainCodeCount nomearquivo.ext [-c]");
}
else
{
printf("\n\tCode Count - Programmers Tool");
printf("\n\t Versao 1.0 - 2013");
aux = argv[1];
printf("\n\n\tContagem para: \"%s\"", aux);
if(argc == 3)
{
if ((strcmp(argv[2], "-c") == 0) || (strcmp(argv[2], "-comment") == 0))
{
ccRun(argv[1], &numeroLinhas, &numeroComentarios, &numeroVazias, 0, 0);
printf("\n\tNumero de linhas..........: %i", numeroLinhas);
printf("\n\tNumero de linhas vazias...: %i", numeroVazias);
printf("\n\n\n");
}
else
{
ccRun(argv[1], &numeroLinhas, &numeroComentarios, &numeroVazias, 1, 0);
printf("\n\tNumero de linhas...................: %i", numeroLinhas);
printf("\n\tNumero de linhas com comentarios...: %i", numeroComentarios);
printf("\n\tPorcentagem de comentarios.........: %.2f", 100);
printf("\n\tNumero de linhas vazias............: %i", numeroVazias);
printf("\n\n\n");
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
3.2 Arquivo: LibCodeCount.c
#include
#include
void ccRun(char* file, int* nLines, int* nLinesComment, int* nLinesEmpty,
int noComment, int silent)
{
FILE * pFile;
int c;
int n = 0;
pFile = fopen (file, "r");
if (pFile !=NULL)
{
do
{ // DO
c = fgetc(pFile);
if (c == '\n')
{
n++;
}
} //DO
while (c != EOF);
fclose (pFile);
*nLines = n;
}
else
{
printf("\nNao foi possivel abrir o arquivo \"%s\"\n\n",argv[1]);
}
}
Etapa 2
Passo 1
A função main() pode conter parâmetros formais. Mas o programador não pode escolher quais serão eles. A declaração mais completa que se pode ter para a função main() é:
Int main (int argc, char *argv[]);
Os parâmetros argc e argv dão ao programador acesso à linha de comando no qual o programa é chamado.
Parâmetro ARGC – Argument Count
O argc é um inteiro e possui o número de argumentos com as quais a função main() foi chamada na linha de comando. Seu valor mínimo é igual a 1, pois o nome do programa é contado como sendo o primeiro argumento.
Parâmetro ARGV – Argument Values
O argv é um ponteiro para uma matriz de strings. Cada string desta matriz é um dos parâmetros da linha de comando. O argv[0] sempre aponta
...