Analise De Sistemas
Seminário: Analise De Sistemas. Pesquise 862.000+ trabalhos acadêmicosPor: fgabrieel • 13/3/2014 • Seminário • 874 Palavras (4 Páginas) • 215 Visualizações
2ª Etapa
1° Passo
A função main() pode ter 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 com a qual o programa foi chamado.
O argc (argument count) é um inteiro e possui o número de argumentos com os quais a função main() foi chamada na linha de comando. Ele é, no mínimo 1, pois o nome do programa é contado como sendo o primeiro argumento.
O argv (argument values) é um ponteiro para uma matriz de strings. Cada string desta matriz é um dos parâmetros da linha de comando. O argv[0] sempre aponta para o nome do programa (que, como já foi dito, é considerado o primeiro argumento). É para saber quantos elementos temos em argv que temos argc.
2ª Etapa
2° Passo
Foram realizadas alterações nos dois modulos para atender as novas solicitações onde além do nome do arquivo que é um paramentro obrigatório, estão sendo disponibilizados mais três parametros opcionais que permitem ao usuário selecionar como as informações serão passadas e também disponibiliza um help para utilização do sistema.
Essas opções serão passadas por paramento ao modulo secundário que teve que ser alterado para receber os mesmos e processa-los corretamente para atender a solicitação do usuário.
2ª Etapa
3° Passo
Aqui temo os códigos fontes dos arquivos alterados no desenvolvimento desta etapa.
Arquivo: CodeCount.cpp
#include
#include
#include
//Inclui o arquivo que contém as funções de Calculo de número de linhas
#include "LibCodeCount.c"
int main(int argc, char *argv[])
{
FILE *pFile;
char car1, car2;
int i,nLines = 0,nLinesComment = 0,nLinesEmpty = 0,noComment = 0,silent = 0,help = 0;
for(i=2;i Comentário de linha.
/* e * / --> Comentério em bloco e contar todas as linhas do
comentário.
\n --> Quebra de linha, indica que a linha terminou.
*/
while (car1 != EOF){
//Se encontrar um \n conta uma linha em branco.
if(car1 =='\n')
{
nLines++;
}
//Verifica se o caracter atual é /, se esta afirmação for
//verdadeira e o próximo caracter for = * será iniciado o
//processo de contagem das linhas do comentário em bloco.
if(car1== '/'){
car2 = fgetc(pFile);
//Conta as linhas dos comentários em bloco.
if(car2 == '*'){
do{
do{
car1 = fgetc(pFile);
if(car1 == '\n' && car1 != car2)
{
//Conta as linhas do bloco de comentário.
nLinesComment++;
//Contagem de linhas do arquivo.
nLines++;
}
//Se for encontrado um \n no bloco de comentário,
//o mesmo não é contado como comentário e sim
//como linha em branco.
else if(car1 == '\n' && car2 == '\n')
{
nLinesEmpty++;
}
car2 = car1;
}
while(car1 != '*');
car1 = fgetc(pFile);
//Até que seja encontrado */ a rotina de contagem de
//linhas no bloco de comentário será execultada.
}
while(car1 != '/');
}
//Conta os comentarios de uma unica linha
if(car1 =='/' && car2 =='/')
{
nLinesComment++;
}
}
car2 = fgetc(pFile);
//Conta as linhas em branco
if(car2 =='\n' && car1 == '\n')
{
nLinesEmpty++;
nLines++;
}
car1 = car2;
}
//Fecho o arquivo.
fclose(pFile);
//Chamada para a função que irá exibri os contadores das linhas.
ccRun(argv[1],nLines,nLinesComment,nLinesEmpty,noComment,silent);
}
//Se o arquivo não foi encontrado é informado ao usuário.
else
{
...