Вы находитесь на странице: 1из 10
A TIVIDADES P RÁTIC AS S UPERVISIONADAS Ciência da Computação 1ª. Série Programação Est ruturada

A TIVIDADES PRÁTIC AS SUPERVISIONADAS

A TIVIDADES P RÁTIC AS S UPERVISIONADAS Ciência da Computação 1ª. Série Programação Est ruturada I
A TIVIDADES P RÁTIC AS S UPERVISIONADAS Ciência da Computação 1ª. Série Programação Est ruturada I

Ciência da Computação

1ª. Série Programação Est ruturada I

método de ensino-

aprendizagem des envolvido por meio de um conj unto de atividades programadas e supe rvisionadas e que tem por objetivos:

A atividade pr ática supervisionada (ATPS) é um

Estimular a c o-responsabilidade do aluno pelo ap rendizado eficiente e

Favorecer a a prendizagem.

eficaz. Promover o es tudo, a convivência e o trabalho em gr upo. Desenvolver o s estudos independentes, sistemáticos e o autoaprendizado. Oferecer difer enciados ambientes de aprendizagem.

o s estudos independentes, sistemáticos e o autoaprendizado. Oferecer difer enciados ambientes de aprendizagem.
o s estudos independentes, sistemáticos e o autoaprendizado. Oferecer difer enciados ambientes de aprendizagem.

Auxiliar no de senvolvimento das competências requ eridas pelas Diretrizes Curriculares N acionais dos Cursos de Graduação.

solução de problemas

Promover a a plicação da teoria e conceitos para a relativos à pro fissão.

Direcionar o e studante para a emancipação intelectu al. Para atingir est es objetivos as atividades foram orga nizadas na forma de

um desafio, que será

solucionado por etapas ao longo do s emestre letivo.

Participar ativa mente deste desafio é essencial para o desenvolvimento das

competências e habi lidades requeridas na sua atuação no

Aproveite esta profissional.

ercado de trabalho.

oportunidade de estudar e aprender com desafios da vida

oportunidade de estudar e aprender com desafios da vida AUTORIA: Jaqueline Brigladori Pugliesi Facul dade Anhangeura

AUTORIA:

Jaqueline Brigladori Pugliesi

Facul dade Anhangeura de Valinhos

Jeanne Dobgenski

AESA

Marcelo Augusto Cicogna

Facul dade Anhangeura de Valinhos

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 2 de 10

1ª. Série – Programação Estruturada I Pág. 2 de 10 COMPETÊNCIAS E HABILIDADES Ao concluir as

COMPETÊNCIAS E HABILIDADES

Ao concluir as etapas propostas neste desafio você terá desenvolvido as competências

e habilidades descritas a seguir.

Capacidade de, com base nos conceitos adquiridos, iniciar, projetar, desenvolver,

validar e gerenciar qualquer projeto de software. Competência para identificar, analisar, documentar e solucionar problemas e

necessidades passíveis de solução via computação. Capacidade para desenvolvimento de pesquisa científica e tecnológica.

Saber conciliar teoria e prática.

PRIMEIRO DESAFIO

Para os alunos que iniciam uma jornada por meio dos assuntos de Algoritmos e Programação Estruturada, acaba-se constatando que o domínio das ferramentas de desenvolvimento faz bastante diferença na elaboração e realização do trabalho de programação, bem como na qualidade final dos resultados obtidos.

O objetivo deste desafio é apresentar e incentivar o aluno a explorar algumas ferramentas de desenvolvimento de código.

Tem-se início, é claro, com o compilador. Ou melhor, tem-se início com um ambiente de desenvolvimento de código. O termo em inglês é Integrated Development Enviroment, que pode ser traduzido para Ambiente Integrado de Desenvolvimento. Os termos Ambiente e Integrado fazem referência a um conjunto de ferramentas que auxiliam o programador nas tarefas mais comuns do desenvolvimento de programas para computador.

Num segundo momento, sugere-se explorar uma ferramenta que permita ao aluno entender

e controlar a evolução de seu código.

Equipe As etapas descritas a seguir devem ser realizadas em grupos de até quatro alunos. Logo, entreguem ao professor seus nomes e RAs, lembrando que deverão permanecer juntos na execução de todas as tarefas. Em caso de necessidade de alteração o professor deverá ser consultado.

ETAPA № 1

Aula tema: Nivelamento: Abordagem do ambiente de apoio: sistema operacional e compilador.

Esta atividade é importante para que você compreenda os recursos disponíveis no ambiente de desenvolvimento denominado Code::Blocks. Para realizá-la é importante seguir os passos descritos.

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 3 de 10

1ª. Série – Programação Estruturada I Pág. 3 de 10 PASSOS Passo 1 Acessem o site

PASSOS

Passo 1

Acessem o site da IDE Code::Blocks disponível em http://www.codeblocks.org (Acessado em 10/10/2010). O site está em Inglês, mas é possível descobrir os principais recursos deste ambiente integrado de desenvolvimento de código em Linguagens C e C++. Na Figura 1, apresenta-se uma visão geral do Code::Blocks.

Na Figura 1, apresenta-se uma visão geral do Code::Blocks. Figura 1. Visão geral ao se acessar

Figura 1. Visão geral ao se acessar a IDE Code::Blocks.

Caso o laboratório de sua Unidade não possua o Code::Blocks instalado, este é o momento de pedir ao professor da disciplina que encaminhe uma solicitação ao Apoio Docente ou para à Coordenação do Curso, para a instalação de tal sistema. Ao mesmo tempo, neste primeiro passo, pede-se aos alunos explorarem o site do Code::Blocks com o objetivo de responder a algumas perguntas:

a) Qual benefício você encontra no fato da IDE Code::Blocks ser um software distribuído segundo a licença GPL v3.0? Faça uma pesquisa na internet sobre licenças GPL para responder a esta pergunta.

b) Qual benefício você pode relatar a partir do fato de que a IDE Code::Blocks é um software Cross Plataform, ou seja, este software funciona com os sistemas operacionais Windows, Linux e Mac?

c) Faça uma avaliação geral do site do Code::Blocks. Você considera um bom site? Ele atendeu às suas necessidades iniciais de acesso e entendimento do Code::Blocks?

d) Quais compiladores C e C++ são compatíveis com o Code::Blocks? Veja que o GCC é apenas um dos compiladores disponíveis. De fato, esse compilador vem junto com a instalação do Code::Blocks. Que vantagens você acredita existirem

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 4 de 10

1ª. Série – Programação Estruturada I Pág. 4 de 10 numa IDE que pode utilizar vários

numa IDE que pode utilizar vários tipos de Compiladores? Associe sua resposta com a resposta do item b.

e) Por fim, faça uma análise das vantagens de se obter esse tipo de conhecimento em complemento aos conteúdos das disciplinas de Algoritmos e de Programação Estruturada. Você acredita que um desenvolvedor que domine um grande conjunto de ferramentas, ainda durante a sua graduação, possuirá um bom diferencial de mercado?

Passo 2

Dê início ao uso do Code::Blocks. Para isto, vamos criar um programa bem simples. Este passo será dividido em tarefas, conforme a seguinte lista:

a) Utilize o menu “File > New > Empty file” para criar um arquivo em branco.

b) Por meio do menu “File > Save”, salve o arquivo como “HelloWord.c” em alguma pasta vazia de seu computador.

c) No arquivo recém criado, escreva o código da Listagem 1. Enquanto você digita o código, preste atenção nas cores e realces que são apresentados automaticamente. Quando terminar, salve seu trabalho com o menu “File > Save”.

d) Para compilar seu programa, escolha o menu “Build > Build” ou tecle Ctrl-F9 simultaneamente. Se o programa foi digitado corretamente, você verá um resultado de compilação semelhante ao apresentado na Figura 2.

e) Para executar o seu programa recém criado, utilize o menu “Build > Run”.

Listagem 1. Pequeno programa para testar o ambiente de desenvolvimento.

#include <stdio.h>

int main()

{

printf("Hello World!"); return (0);

}

printf ( "Hello World!" ) ; return ( 0 ) ; } Figura 2. Resultado de

Figura 2. Resultado de uma compilação bem sucedida com o Code::Blocks.

Passo 3

Investigarem as opções de depuração do código fonte. Para isto, pode-se utilizar os exemplos de programa apresentados na Etapa 2. Entretanto, os alunos são fortemente convidados a implementar o algoritmo que desenvolveram na Etapa 1 do primeiro Desafio proposto na Disciplina de Construção de Algoritmos.

Passo 4

Entreguem um mini-relatório contendo as respostas e observações realizadas a partir das questões do Passo 1.

Ciência da Computação – 1ª. Série – Programação Estruturada I

ETAPA № 2

Pág. 5 de 10

Aula tema: Nivelamento: Abordagem do ambiente de apoio: sistema operacional e compilador.

Esta atividade é importante para que você compreenda os recursos disponíveis no software de comparação e mesclagem de versões de código do WinMerge. Para realizá-la é importante seguir os passos descritos.

PASSOS

Passo 1

Acessem o site do programa WinMerge disponível em <http://winmerge.org>. O site está em Inglês, mas é possível descobrir os principais recursos deste aplicativo. O programa WinMerge oferece recursos que auxiliam os desenvolvedores no controle de versões do código fonte. Na Figura 3, apresenta-se uma visão geral do WinMerge na comparação de dois arquivos de código desenvolvido em Linguagem C.

de dois arquivos de código desenvolvido em Linguagem C. Figura 3. Visão geral do programa WinMerge.

Figura 3. Visão geral do programa WinMerge.

Repetindo uma instrução já apresentada neste desafio, caso o laboratório de sua Unidade não possua o WinMerge instalado, este é o momento de pedir ao professor da disciplina que encaminhe uma solicitação ao Apoio Docente ou para à Coordenação do Curso, para instalação de tal programa.

Passo 2

Leiam o texto e faça as atividades a seguir:

Como dito anteriormente, o WinMerge oferece recursos para o programador comparar e mesclar versões diferentes de um documento em formato Somente Texto (ASCII). No caso específico, o documento será um arquivo de código fonte escrito em Linguagem C.

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 6 de 10

1ª. Série – Programação Estruturada I Pág. 6 de 10 Para dar início ao entendimento do

Para dar início ao entendimento do funcionamento do WinMerge, vamos considerar um programa simples escrito em Linguagem C. Este programa pede ao seu usuário fornecer dois números inteiros e apresenta a soma destes números. Em outras palavras, o programa é bem simples, pois o foco aqui é descobrir o que o WinMerge pode fazer. O código fonte da Versão 1 do programa é apresentado na Listagem 2.

Listagem 2. Versão 1 de um programa simples em Linguagem C.

#include <stdio.h>

int main()

{

int num1, num2, soma;

printf("Exemplo de Programa Escrito em Linguagem C"); printf("Digite um número inteiro:"); scanf("%d", &num1); printf("Digite um número inteiro:"); scanf("%d", &num1); soma = num1 + num2; printf("A soma dos dois números fornecidos é igual a %d", soma);

return (0);

}

Vamos considerar que o desenvolvedor do código anterior decida melhorá-lo adicionando comentários para um melhor entendimento. É claro que o programa é bastante simples e talvez não fossem necessários tantos comentários. Mais uma vez, o objetivo é descobrir os recursos do programa WinMerge. A Versão 2 do código anterior está apresentada na Listagem 3.

Listagem 3. Versão 2 do programa com a adição de comentários.

#include <stdio.h>

 

int main()

{

 

//Decração de variáveis. int num1, num2, soma; //Apresentação do programa para o usuário.

printf("Exemplo de Programa Escrito em Linguagem C\n\n"); //Leitura de dados de entrada.

//

primeiro valor.

printf("Digite um número inteiro:"); scanf("%d", &num1);

//

segundo valor.

printf("Digite um número inteiro:"); scanf("%d", &num1); //Cálculo ou determinação dos resultados. soma = num1 + num2; //Apresentação dos resultados ao usuário. printf("A soma dos dois números fornecidos é igual a %d", soma);

return (0);

}

O trabalho agora é copiar as Listagens 1 e 2 para arquivos chamados WM-Exemplo- v1.c e WM-Exemplo-v2.c, respectivamente.

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 7 de 10

1ª. Série – Programação Estruturada I Pág. 7 de 10 Passo 3 De posse dos arquivos

Passo 3

De posse dos arquivos WM-Exemplo-v1.c e WM-Exemplo-v2.c, utilize o WinMerge para comparar os conteúdos destes programas. Você obterá algo semelhante ao apresentado na Figura 3. Tente abrir os dois arquivos utilizando o menu “Arquivo > Abrir”. Outra forma de fazer isso, é selecionar os dois arquivos no Windows Explorer e com o menu que é acionado com o botão direito, escolher a opção WinMerge. Explore as formas que WinMerge possui para demonstrar as diferenças dos dois arquivos. Por exemplo, como você explicaria a existência de linhas de cor cinza na apresentação do arquivo WM-Exemplo-v1.c. Que vantagens você vê no desenho apresentado no quadro “Painel de Localização”? Faça outras alterações que desejar no código como, por exemplo, alterar o texto dos comandos printf(). Dica: realize as alterações dentro da própria interface do WinMerge e, então, tecle F5 para o programa atualizar a comparação dos arquivos.

Passo 4

Cada grupo deverá entregar de um mini-relatório contendo as respostas e observações realizadas.

SEGUNDO DESAFIO

Esse desafio consiste na programação do algoritmo desenvolvido na Atividade Prática Supervisionada de Construção de Algoritmos. Para facilitar, transcreve-se a seguir a situação problema a ser considerada e resolvida.

Problema

Uma agência de viagens sentiu a necessidade de disponibilizar em sua página da internet um programa que faça a conversão de moedas, devido ao grande número de pedidos de seus clientes. Além disso, percebeu que essa ferramenta poderá trazer novos visitantes a sua página principal, incrementando sua ação de marketing.

Para realizar esse projeto o diretor da agência solicitou à empresa responsável pela página de internet que providenciasse o aplicativo, tendo especificado as seguintes características:

1. suportar as moedas disponíveis nos conversores usuais, como o da página do UOL Economia: http://economia.uol.com.br/cotacoes (Acessado em 10/10/2010);

2. permitir conversão da moeda x para y como de y para x, a escolha do usuário;

3. guardar as cotações diárias por mês;

4. fazer médias as médias mensais das cotações das moedas;

5. indicar o menor e o maior valor da moeda no mês.

Para resolver esse desafio considere que você e seus colegas (até 4 indivíduos) fazem parte da equipe que desenvolverá o aplicativo descrito e que o professor da disciplina é o gerente desse projeto. Logo, entreguem ao professor seus nomes e RAs, lembrando que deverão

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 8 de 10

1ª. Série – Programação Estruturada I Pág. 8 de 10 permanecer juntos na execução de todas

permanecer juntos na execução de todas as tarefas. Em caso de necessidade de alteração o professor deverá ser consultado.

Leiam atentamente as etapas a seguir e boa sorte!

ETAPA № 1

Aula

Exercícios. Vetores, matrizes e cadeia de caracteres.

tema:

Estruturas

de

controle:

Seleção.

Estruturas

de

controle:

Iteração.

Esta atividade é importante para que você desenvolva sua habilidade em trabalhar com vetores como estrutura de dados, implementando-os corretamente. Para realizá-la é importante seguir os passos descritos.

PASSOS

Passo 1

Por precaução o gerente do projeto pediu que a equipe realizasse a implementação de uma instância menor do problema, de forma a testar e validar a solução para então aplicá-la ao problema completo. Por isso a equipe deverá usar para testes o Real e o Euro. As cotações diárias, referentes a um mês, deverão ser armazenadas num vetor. Considerem o período de um mês (30 dias) para calcular a média, o menor e maior valor da cotação da moeda. O código deve conter comentários que detalhem as variáveis usadas, os testes e loops realizados pelo algoritmo.

Passo 2

Para mostrar que o algoritmo desenvolvido, no Passo 1 dessa Etapa, funciona corretamente, a equipe deverá apresentar testes numéricos (pelo menos três testes oriundos de base de dados distintas) que validem a solução proposta.

Passo 3

Documente essa etapa de estudos apresentando quais foram os resultados alcançados em cada Passo. Por isso, elaborem um relatório, a ser entregue ao gerente do projeto - professor da disciplina, contendo capa, sumário, descrição do algoritmo – explicando a lógica utilizada, apresentação dos testes e referências bibliográficas. Em anexo coloquem a listagem do código fonte.

Usem as normas da ABNT para a apresentação adequada do relatório, que não poderá exceder 6 páginas, incluindo as figuras se houver.

Ciência da Computação – 1ª. Série – Programação Estruturada I

ETAPA № 2

Pág. 9 de 10

Aula tema: Estruturas de controle: Iteração. Exercícios. Vetores, matrizes e cadeia de caracteres .

Esta atividade é importante para que você exercite o uso de matrizes, implementando-

as em C e verifique o uso de estrutura de dados distintas. Para realizá-la é importante seguir os passos descritos.

PASSOS

Passo 1

O algoritmo implementado na Etapa 1 do segundo Desafio deverá ser ampliado de forma a

apresentar a média, o menor e maior valor das cotações de todas as moedas que o aplicativo suportar.

Definam uma matriz como estrutura para guardar as informações das cotações diárias de cada moeda, sendo que as linhas deverão corresponder à moeda e as colunas aos dias do mês. Para identificação de cada moeda, usem um vetor, sendo que a posição do vetor em que uma moeda está alocada corresponda à linha da matriz que contém suas cotações diárias. Dica: analisem o código fonte da página do conversor do UOL Economia em:

http://economia.uol.com.br/cotacoes (Acessado em 10/10/2010). Peguem as 66 moedas que esse conversor utiliza para o programa em desenvolvimento.

Passo 2

Outra solicitação feita pelo diretor da agência é que o aplicativo mostre a média, maior e menor valor da cotação de uma moeda dentro de períodos pré-definidos. Na Tabela 1 constam os períodos que deverão ser adicionados ao algoritmo e as informações que deverão ser apresentadas.

Tabela 1: Parâmetros para a realização dos testes computacionais

Período do mês para análise

Média das cotações no período

Menor cotação

Maior cotação

no período

no período

1º. ao 10º. dia

     

11º. ao 20º. dia

     

21º. ao 30º. dia

     

Mês completo

     

É importante que o algoritmo permita que o usuário escolha o período que quer verificar a média, menor e maior cotação da moeda. Mas, além disso, deverá permitir a escolha de todas as estatísticas. A equipe deverá apresentar o pseudocódigo do algoritmo que foi alterado para atender o solicitado nesse Passo.

Passo 3

A equipe resolveu impressionar o gerente de projetos. Para isso, resolveram apresentar os

dados, que são solicitados na Tabela 1 do Passo anterior, em forma de gráfico. Mas o grupo

Ciência da Computação – 1ª. Série – Programação Estruturada I

Pág. 10 de 10

1ª. Série – Programação Estruturada I Pág. 10 de 10 está dividido: alguns acham mais simples

está dividido: alguns acham mais simples usar as saídas do programa e jogar no Excel para plotar o gráfico; outros querem implementar o gráfico dentro do próprio sistema e usando C. Você e seus colegas de equipe deverão escolher a forma que acharem mais adequada e que, de preferência, contribua mais efetivamente para a formação de todos.

Passo 4

Conforme foi efetuado ao final de cada Etapa dos desafios, a equipe deverá documentar os estudos desenvolvidos. Portanto, elaborem o relatório final que será entregue ao gerente do projeto, contendo capa, sumário, descrição do que foi realizado em cada Passo, os testes que mostrem o funcionamento do programa e as referências bibliográficas. Em anexo coloquem a listagem do código fonte. Usem as normas da ABNT para a apresentação adequada do relatório, que não poderá exceder 6 páginas, incluindo as figuras que possam existir.