TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Atps C

Seminário: Atps C. Pesquise 860.000+ trabalhos acadêmicos

Por:   •  22/9/2013  •  Seminário  •  2.732 Palavras (11 Páginas)  •  215 Visualizações

Página 1 de 11

ETAPA 1

Após os passos propostos nesta etapa, fizemos um programa com um modulo principal Main e outro modulo auxiliar ccRun, com a finalidade de contar as linha do código e as linhas comentadas, sejam em linhas simples “//” ou em blocos “/*”.

ETAPA 2

Entregar o código fonte, em complemento ao que foi entregue na etapa anterior, que apresente uma função principal capaz de processar os parâmetros e opções estabelecidos nesta etapa.

ETAPA 3

Entregar o código fonte, em complemento ao que foi entregue na etapa anterior, que apresente uma função principal capaz de contabilizar o número de linhas total de um arquivo de código fonte em linguagem C. Em complemento, o programa deve também contabilizar o número de linhas com comentários simples, multi-linhas e o número de linhas “em branco” (sem comentários e/ou instruções de código).

Código Fonte:

#include<stdio.h>

#include<stdlib.h>

void ccRun(char nomeArquivo[],int comentario,int vazia); //Protótipo de função

int main(int argc, char *argv[]){

int i=0,coment=0,vazia=0;

if(argc==2){

coment=0;

vazia=0;

}else{

for(i=0;i<argc;i++){

if(strcmp("-c",argv[i])==0){

coment=1;

}

if(strcmp("-v",argv[i])==0){

vazia=1;

}

}

}

ccRun(argv[argc-1],coment,vazia);

printf("\n");

return(0);

}

void ccRun(char nomeArquivo[],int comentario, int vazia){

FILE *pArquivo;

int c=0,nCod=0,nCom=0,bCom=0,lCom=0,nVaz=0,cVaz=0,lVaz=0,cont=0,i=0;

char texto[sizeof(pArquivo)*1024];

pArquivo=fopen(nomeArquivo,"r");

if(pArquivo!=NULL){

do{

c=fgetc(pArquivo);

//Checar número de linhas

if(c=='\n'){

nCod++;

}

//Fim

texto[cont]=c;

cont++;

}while(c!=EOF);

fclose(pArquivo);

}else if(strcmp("-h",nomeArquivo)!=0){

printf("\nImpossivel de abrir o arquivo!\n");

exit(1);

}

//Contador de comentários e linhas brancas

for(i=0;i<cont-1;i++){

//Comentários em blocos

if(texto[i]=='/' && texto[i+1]=='*'){

bCom=1;

nCom++;

}

if(bCom==1 && texto[i]=='\n'){

nCom++;

}

if(texto[i]=='*' && texto[i+1]=='/'){

bCom=0;

}

//Fim

//Comentário de linha única

if(lCom==1 && texto[i]!=' '){

if(texto[i]=='/' && texto[i+1]=='/'){

nCom++;

}else{

lCom=0;

}

}

if(texto[i]=='\n'){

lCom=1;

}

//Fim

//Linhas vazias

if(lVaz==1 && cVaz==1 && texto[i]=='\n'){

nVaz++;

lVaz=0;

}

if(lVaz==1 && texto[i]!=' ' && texto[i]!='\n'){

cVaz=0;

}

if(texto[i]=='\n'){

lVaz=1;

cVaz=1;

}

//Fim

}

//Fim

printf("\n");

if(strcmp("-h",nomeArquivo)!=0){

printf("Programa contador de linhas\n");

printf("\nArquivo: \"%s\"\n",nomeArquivo);

printf("\nTotal

...

Baixar como (para membros premium)  txt (9.8 Kb)  
Continuar por mais 10 páginas »
Disponível apenas no TrabalhosGratuitos.com