You are on page 1of 10

ATIVIDADES PRÁTICAS

SUPERVISIONADAS

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

A atividade prática supervisionada (ATPS) é um método de ensino-


ensino
aprendizagem desenvolvido por meio de um conjunto de atividades
programadas e supervisionadas e que tem por objetivos:
 Favorecer a aprendizagem.
 Estimular a co
co-responsabilidade
ponsabilidade do aluno pelo aprendizado eficiente e
eficaz.
 Promover o estudo, a convivência e o trabalho em grupo.
 Desenvolver os estudos independentes, sistemáticos e o autoaprendizado.
 Oferecer diferenciados ambientes de aprendizagem.
 Auxiliar no desenv
desenvolvimento
olvimento das competências requeridas pelas Diretrizes
Curriculares Nacionais dos Cursos de Graduação.
 Promover a aplicação da teoria e conceitos para a solução de problemas
relativos à profissão.
 Direcionar o estudante para a emancipação 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
competências e habilidades requer
requeridas
idas na sua atuação no mercado de trabalho.
Aproveite esta oportunidade de estudar e aprender com desafios da vida
profissional.

AUTORIA:
Jaqueline Brigladori Pugliesi
Faculdade
aculdade Anhangeura de Valinhos
Jeanne Dobgenski
AESA
Marcelo Augusto Cicogna
Faculdade Anhangeura de Valinhos
Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 2 de 10

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.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 3 de 10

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.

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

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 4 de 10

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);
}

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.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 5 de 10

ETAPA № 2

 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.

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.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 6 de 10

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.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 7 de 10

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

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 8 de 10

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 tema: Estruturas de controle: Seleção. Estruturas de controle: Iteração.


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

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.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 9 de 10

ETAPA № 2

 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 Média das cotações Menor cotação Maior cotação
para análise no período 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

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna


Ciência da Computação – 1ª. Série – Programação Estruturada I Pág. 10 de 10

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.

Jaqueline Brigladori Pugliesi, Jeanne Dobgenski, Marcelo Augusto Cicogna