Academicos
Tese: Academicos. Pesquise 862.000+ trabalhos acadêmicosPor: marialino12 • 20/3/2013 • Tese • 1.028 Palavras (5 Páginas) • 554 Visualizações
2ºDESAFIO
Muitos programas de computador do tipo “Console” são utilizados todos os dias. Para a plataforma Linux, esta é uma afirmação quase que incorporada à estrutura do próprio Sistema Operacional (SO). No SO Windows, os aplicativos de console, que são simples em interface, mas que desempenham tarefas muitas vezes sofisticadas, não são tão comuns à experiência típica de uso do sistema. Por exemplo, pode-se citar desde programas de linha de comando como “ipconfig” que auxilia na visualização das configurações de rede de um PC, até programas como o “taskkill” que auxiliam o usuário a eliminar processos ativos na memória do computador.
O objetivo desta atividade é motivar o aluno a adquirir experiência com o ciclo completo de desenvolvimento de um pequeno aplicativo de linha de comando (Console). Este ciclo utilizará os conceitos apresentados na disciplina de algoritmos; apresentará um exemplo de organização e de documentação de código fonte; exigirá uma organização funcional do código baseado em estruturas modulares; por fim, o aluno implementará um software de linha de comando com opções de parâmetros na chamada do programa.
Esta tarefa deverá ser implementada utilizando-se a Linguagem C. Sugere-se como compilador e interface de desenvolvimento o Code::Blocks. Disponível em: <http://www/codeblocks.org>. Acesso em: 10 out. 2010.
O Problema
Esta atividade concentra esforços no desenvolvimento de um programa que permita contar linhas de código fonte desenvolvido em Linguagem C ou C++. A estrutura sugerida permitirá a sua adequação para outras linguagens. Escolheu-se este tema por se tratar de um problema de simples entendimento, deixando espaço para que o aluno concentre o desenvolvimento de suas habilidades no entendimento e prática do ciclo de criação e implementação do aplicativo.
A contagem de linhas de um arquivo texto pode ser facilmente desenvolvida em poucas linhas de código, conforme apresentado no exemplo da Listagem 1.
#include <stdio.h>
int main ()
{
FILE * pFile;
int c;
int n = 0;
pFile = fopen ("ArquivoTexto.txt", "r");
if (pFile !=NULL)
{
do { //DO
c = fgetc(pFile);
if (c == 'n') n++;
} //DO
while (c != EOF);
fclose(pFile);
printf("Número de linhas = %d.n", n);
}
return 0;
}
#include <stdio.h>
int main ()
{
FILE * pFile;
int c;
int n = 0;
pFile = fopen ("ArquivoTexto.txt", "r");
if (pFile !=NULL)
{
do { //DO
c = fgetc(pFile);
if (c == 'n') n++;
} //DO
while (c != EOF);
fclose(pFile);
printf("Número de linhas = %d.n", n);
}
return 0;
}
Listagem 1. Exemplo de programa em Linguagem C para contagem de linhas de um arquivo.
O Desafio
Partido do exemplo anterior de contagem simples de linhas de um arquivo texto, o desafio desta tarefa tem início ao se querer determinar o número de linhas do código que são comentários formatados segundo a sintaxe da Linguagem C/C++. A sintaxe prevê dois tipos de comentários: linha única começando com os caracteres “//” (barra, barra); e comentários multi-linhas começando com “/*” (barra, asterisco) e com término determinado por “*/” (asterisco, barra).
Para uma visão de um problema real, considere o exemplo de código fonte escrito em C apresentado na Listagem 2. Observe os vários trechos com comentários para ajudar a documentação do código-fonte.
Listagem 2. Exemplo real de código fonte com vários comentários.
//----------------------------------------------------------
// Exemplo de Cabeçalho
//
// Neste tipo de comentário, faz-se uma breve apresentação do conteúdo do
// módulo em linguagem C. O código apresentado a seguir é um extrato de
// desenvolvimento criado para a disciplina de Classificação e Pesquisa.
// Pede-se ao leitor identificar os tipos de linhas com comentários, em
// especial a diferenciação de comentários de uma ou de várias linhas.
//
// Autor: Marcelo Augusto Cicogna.
// Revisões:
// 22/11/2005: Criação do módulo.
// 01/11/2006: Expansão do módulo em função da lista de exercícios.
//----------------------------------------------------------
#include "TBinTree.h"
#include <stdio.h>
//----------------------------------------------------------
// Funcões de manipulação do tipo TBinTree.
//----------------------------------------------------------
TBinTree*
binTreeCreate(TData* pData)
...