Você está na página 1de 7

ATIVIDADES PRTICAS SUPERVISIONADAS

CST em Anlise e Desenvolvimento de Sistemas


3 Srie Programao Estruturada II
A atividade prtica supervisionada (ATPS) um mtodo de ensinoaprendizagem desenvolvido por meio de um conjunto de atividades

programadas e supervisionadas e que tem por objetivos: Favorecer a aprendizagem. Estimular a corresponsabilidade do aluno pelo aprendizado eficiente e eficaz. Promover o estudo, a convivncia e o trabalho em grupo. Desenvolver os estudos independentes, sistemticos e o autoaprendizado. Oferecer diferenciados ambientes de aprendizagem. Auxiliar no desenvolvimento das competncias requeridas pelas Diretrizes Curriculares Nacionais dos Cursos de Graduao. Promover a aplicao da teoria e conceitos para a soluo de problemas relativos profisso. Direcionar o estudante para a emancipao intelectual. Para atingir estes objetivos as atividades foram organizadas na forma de um desafio, que ser solucionado por etapas ao longo do semestre letivo. Participar ativamente deste desafio essencial para o desenvolvimento das competncias e habilidades requeridas na sua atuao no mercado de trabalho. Aproveite esta oportunidade de estudar e aprender com desafios da vida profissional.

AUTORIA: Jaqueline Brigladori Pugliesi


Faculdade Anhanguera de Valinhos

Jeanne Dobgenski
Anhanguea Educacional Ltda

Marcelo Augusto Cicogna


Faculdade Anhanguera de Valinhos

CST em Anlise e Desenvolvimento de Sistemas 2 Srie Programao Estruturada II

Pg. 2 de 7

COMPETNCIAS E HABILIDADES
Ao concluir as etapas propostas neste desafio voc ter desenvolvido as competncias e habilidades descritas a seguir. Capacidade de, com base nos conceitos adquiridos, iniciar, projetar, desenvolver, validar e gerenciar qualquer projeto de software. Competncia para identificar, analisar, documentar e solucionar problemas e necessidades passveis de soluo via computao. Capacidade para desenvolvimento de pesquisa cientfica e tecnolgica. Saber conciliar teoria e prtica.

Produo Acadmica

Discusses em grupo. Planejamento das atividades. Relatrio virtual sobre o desenvolvimento de um pequeno aplicativo de linha de comando (Console).

Participao
Para a elaborao desta atividade, os alunos devero previamente organizar-se em equipes de at seis participantes, seguindo as diretrizes do tutor presencial.

Padronizao
O material escrito solicitado nesta atividade deve ser produzido de acordo com as normas da ABNT1, com o seguinte padro: Em papel branco, formato A4. Com margens esquerda e superior de 3cm, direita e inferior de 2cm. Fonte Times New Roman tamanho 12, cor preta. Espaamento de 1,5 entre linhas. Se houver citaes com mais de trs linhas, devem ser em fonte tamanho 10, com um recuo de 4cm da margem esquerda e espaamento simples entre linhas. Com capa, contendo: Nome de sua Unidade de Ensino, Curso e Disciplina. Nome e RA de cada participante. Ttulo da atividade. Nome do professor da disciplina. Cidade e data da entrega, apresentao ou publicao.

DESAFIO
Muitos programas de computador do tipo Console so utilizados todos os dias. Para a plataforma Linux, esta uma afirmao quase que incorporada estrutura do prprio Sistema Operacional (SO). No SO Windows, os aplicativos de console, que so simples em interface, mas que desempenham tarefas muitas vezes sofisticadas. Pode-se citar desde programas de linha de comando como ipconfig que auxilia na visualizao das
1

Consultar o Manual para Elaborao de Trabalhos Acadmicos. Unianhanguera. Disponvel em: <http://www.unianhanguera.edu.br/anhanguera/bibliotecas/normas_bibliograficas/index.html>.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna

CST em Anlise e Desenvolvimento de Sistemas 2 Srie Programao Estruturada II

Pg. 3 de 7

configuraes de rede de um PC, at programas como o taskkill que auxiliam o usurio a eliminar processos ativos na memria do computador. O objetivo desta atividade adquirir experincia com o ciclo completo de desenvolvimento de um pequeno aplicativo de linha de comando (Console). Sendo assim, esta atividade concentra esforos no desenvolvimento de um programa que permita contar linhas de cdigo fonte desenvolvida em Linguagem C ou C++ e a estrutura sugerida permitir a sua adequao para outras linguagens.

Objetivo do Desafio
Construir um relatrio virtual de um ciclo completo de desenvolvimento de um pequeno aplicativo de linha de comando (Console).

ETAPA 1
Esta atividade importante para voc compreender os requisitos do problema e determinar uma organizao inicial do cdigo fonte que permita o desenvolvimento de uma soluo. Para realiz-la importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Ler atentamente o desafio e os conceitos de contagem de linhas. Identificar os dois tipos principais de comentrios possveis em linguagem C: comentrio de uma linha apenas, que comea com //; e comentrios multi-linhas determinado por /* e */. Passo 2 (Equipe) Analisar o problema e fazer sugestes de como organizar o cdigo em uma funo principal (main) e outra funo que far a contagem das linhas dado como parmetro o nome do arquivo a ser pesquisado. Pode-se chamar esta funo de ccRun. Observao: ao utilizar o prefixo cc (de Code Count), ou qualquer outro que o aluno achar conveniente, facilita-se a integrao do cdigo desenvolvido nesta tarefa com outras que o programador venha a achar necessrio no futuro. Como guia para alunos e professores, os autores deste desafio determinaram dois mdulos para a soluo do problema. O mdulo principal foi denominado MainCodeCount e um mdulo auxiliar com funes de auxlio ao principal chamado LibCodeCount. Ao mesmo tempo, foram projetadas duas funes, conforme a orientao anterior. Os cabealhos e os nomes dos arquivos os quais contero o cdigo fonte so apresentados na Figura 2.
Arquivo MainCodeCount.c
int main(int argc, char *argv[]) {... }

Arquivo LibCodeCount.h
void ccRun(char* file, int* nLines, int* nLinesComment, int* nLinesEmpty, int noComment, int silent);

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna

CST em Anlise e Desenvolvimento de Sistemas 2 Srie Programao Estruturada II

Pg. 4 de 7

Arquivo LibCodeCount.c
void ccRun(char* file, int* nLines, int* nLinesComment, int* nLinesEmpty, int noComment, int silent); {... }

Figura 2. Exemplo de uso e funcionamento do contador de linhas de cdigo fonte.

Passo 3 (Equipe) Estudar a modularizao proposta e fazer com que seu cdigo siga a organizao sugerida nesta atividade, ou seja, que possua pelo menos dois mdulos: um principal e outro auxiliar. No ser aceito na avaliao desta etapa a apresentao de apenas um arquivo de cdigo fonte (arquivo.c). Passo 4 (Equipe) Compor, por fim, o cdigo fonte formado por dois mdulos que contenham a funo principal e uma funo auxiliar para o clculo do nmero de linhas, considerando as opes fornecidas nesta etapa.

ETAPA 2
Esta atividade importante para voc entender a passagem de parmetros para um programa escrito em linguagem C. Para realiz-la importante seguir os passos descritos.

PASSOS
Passo 1 (Aluno) Pesquisar a utilizao dos argumentos argc e argv passados como parmetros da funo principal main() de um programa escrito em linguagem C. Passo 2 (Equipe) Elaborar uma funo principal que aceite os seguintes parmetros: Parmetro obrigatrio. Nome do arquivo. O primeiro parmetro ser o nome de um arquivo a ser pesquisado o nmero de linhas. Parmetros opcionais. -h (-help) opo para apresentar uma explicao do uso do programa CodeCount. -c (-comment) opo para contar o nmero de linhas de comentrios. -s (-silent) opo para no apresentar resultados na tela de comando (prompt). Para auxlio dos alunos, apresenta-se um exemplo na Listagem 3 de como criar o parmetro s. Neste exemplo ser possvel notar o uso dos argumentos argc e argv. Vale lembrar que a posio zero do vetor argv possui sempre o nome do programa, neste caso CodeCount.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna

CST em Anlise e Desenvolvimento de Sistemas 2 Srie Programao Estruturada II

Pg. 5 de 7

Como se trata de criar uma forma de implementar os parmetros opcionais, o loop pelo arquivo argv comea na posio 2, uma vez que a posio 1 foi reservada para conter o nome do arquivo a ser pesquisado. Assim, a chamada do programa (o smbolo > representa a linha de comando, ou prompt do sistema operacional):
> CodeCount Exemplo.c c

Teria os seguintes argumentos passados para a funo principal:


argc = 3 argv[0] = CodeCount argv[1] = Exemplo.c argv[2] = -c Listagem 3. Exemplo de funo principal com gerenciamento de parmetros.

int main(int argc, char *argv[]) { int i, silent; int nLines, nLinesComment, nLinesEmpty, count; silent = 0; nLines = 0; for (i=2; i<argc; i++) { silent = silent || (strstr(argv[i], "-silent" silent = silent || (strstr(argv[i], "-s" } printf("Code Count - Programmer's Tool\n"); printf(" Version 1.1 - 2009\n\n"); if (!silent) { printf(" counting for \"%s\"...\n", argv[1]); } ccRun(argv[1], &nLines, &nLinesComment, &nLinesEmpty, noCom, silent);

) != NULL); ) != NULL);

Nota: Observe que o exemplo testa se o usurio passou a verso curta do parmetro -s ou a verso normal -silent. Passo 3 (Equipe) Compor, por fim, o cdigo fonte, em complemento ao que foi entregue na etapa anterior, que apresente uma funo principal capaz de processar os parmetros e opes estabelecidos nesta etapa.

ETAPA 3
Esta atividade importante para voc determinar a verso final do programa capaz de contar linhas e comentrios, bem como utilizar a passagem de parmetros projetada na etapa anterior. Para realiz-la importante seguir os passos descritos.

PASSOS

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna

CST em Anlise e Desenvolvimento de Sistemas 2 Srie Programao Estruturada II

Pg. 6 de 7

Passo 1 (Aluno) Ler o texto e fazer as atividades a seguir. Nesta etapa, ser necessrio entender o contedo de um arquivo texto e elaborar uma estratgia para a contagem de linhas, principalmente focando o problema de contagem de linhas com comentrios. Por exemplo, a leitura de um arquivo texto pode ser interpretada como o percurso por um vetor de caracteres. Como ilustrao desta ideia, veja o arquivo abaixo:
Arquivo Segunda linha fim

A leitura deste arquivo no disco pode ter uma representao da seguinte forma:
A r q u i v o \n S e g u n d a l i n h a \n f i m EOF

Notar que as linhas tm o caractere especial \n para delimitar o seu fim, bem como o final do arquivo encontrado quando se processa a informao EOF (End Of File). A ideia para a contagem de linhas, conforme visto na Etapa 1, baseia-se na contagem dos caracteres \n de um arquivo texto. Ao mesmo tempo, a contagem de linhas com comentrios pode fazer uso da mesma estratgia. Por exemplo, o uso de variveis auxiliares, pode-se determinar a ocorrncia dos caracteres \\, indicando que esta linha um comentrio e que, portanto, ao encontrar um caractere \n esta linha deva ser contada como comentrio. O mesmo vale para comentrios multi-linhas. Ao se identificar os caracteres /* todos os caracteres \n encontrados antes da ocorrncia de */ devero ser contabilizados como linhas de comentrio. Passo 2 (Equipe) Desenvolver um algoritmo que baseado na leitura caractere a caractere de um arquivo texto, contabilize o nmero de linhas total, o nmero de linhas de comentrio simples e o nmero de linhas de comentrio multi-linhas. Por exemplo, considerar o arquivo descrito a seguir:
// Este um comentrio de uma linha s. for (i = 0; i < 10; i++) { /* Este um comentrio de duas linhas. O trmino ocorre na prxima linha. */ printf(Valor de i %d, i); //Um comentrio aqui no deve ser computado. }

Nota: Este arquivo possui 8 linhas. Uma linha do tipo comentrio simples, iniciado com //. Duas linhas possuem comentrio multi-linhas. Neste caso, no foi contabilizada a linha com o */, mas os alunos podem encontrar outra regra. importante notar que o comentrio apresentado aps o comando printf no deve ser contabilizado, uma vez que a mesma linha possui cdigo.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna

CST em Anlise e Desenvolvimento de Sistemas 2 Srie Programao Estruturada II

Pg. 7 de 7

Passo 3 (Equipe) Compor, por fim, o cdigo fonte, em complemento ao que foi entregue na etapa anterior, que apresente uma funo principal capaz de contabilizar o nmero de linhas total de um arquivo de cdigo fonte em linguagem C. Em complemento, o programa deve tambm contabilizar o nmero de linhas com comentrios simples, multi-linhas e o nmero de linhas em branco (sem comentrios e/ou instrues de cdigo).

ETAPA 4
Esta atividade importante para voc validar o programa desenvolvido. Para realiz-la importante seguir os passos descritos.

PASSOS
Passo 1 (Equipe) Criar trs tipos de arquivos de cdigo fonte escritos em Linguagem C. Por exemplo, criar um arquivo com poucos comentrios, fceis de serem identificados. Os outros dois arquivos podem possuir um nmero maior de combinaes e linhas de comentrios. Veja, por exemplo, o cdigo apresentado na Listagem 2. Passo 2 (Equipe) Demonstrar o uso do programa desenvolvido, bem como os resultados obtidos. Ter como objetivo apresentar ao usurio um documento simples que demonstre que seu programa funciona bem e que determina os resultados esperados. Passo 3 (Equipe) Postar no ambiente virtual, o arquivo em Word (extenso.doc) intitulado Desenvolvimento de um pequeno aplicativo de linha de comando Console construdo mediante cumprimento das quatro etapas, para a avaliao do tutor distncia.

Livro Texto da Disciplina


DEITEL, P. J.; DEITEL, H. M. C. : Como Programar. 6 ed. So Paulo: Pearson, 2011.

Critrios de Avaliao
A avaliao ser realizada pelo tutor distncia, que levar em considerao:

Capacidade de sntese e organizao do material desenvolvido nas etapas. Cumprimento e qualidade do contedo de todas as etapas. Formatao do arquivo final.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna

Você também pode gostar