Guião 4: Draw a Grid

Documentos relacionados
Sobre o envio de trabalhos para o Mooshak

Editor Eclipse para Programas F

COMPUTAÇÃO E PROGRAMAÇÃO

Guia de procedimentos para construir um programa java no IDE Sun One Studio 4 update 1, Community Edition

Programação 2010/2011 MEEC

Programação 2017/2018 2º Semestre

Universidade da Beira Interior. Sistemas Distribuídos /2016 Curso: Engª Informática. Folha JAX-RS: Java API for RESTful Web Services

Introdução aos Algoritmos e Estruturas de Dados 2011/2012

DESENV. E IMPLEMENTAÇÃO DE ALGORITMOS 10/09/2016. Este caderno contém 11 páginas com a descrição de 10 problemas definidos a seguir:

POO Documentation. Release 1.0. Felipe Dau e Francisco Pereira Junior

IDES E PROGRAMAÇÃO. Prof. Dr. Cláudio Fabiano Motta Toledo PAE: Maurício A Dias

Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011

1 - Ambiente de desenvolvimento

UTILIZANDO O CODE BLOCKS

Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Encriptação de Mensagens

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER utilizando o Eclipse Galileo Modelling Tools

Introdução aos Algoritmos e Estruturas de Dados 2011/2012

Instalando o Eclipse e o Android

DISTRIBUINDO SUA APLICAÇÃO

Paradigmas da Programação PPROG. Netbeans. Projetos Ficheiro JAR Executável Atalhos Templates. Nelson Freire (ISEP DEI-PPROG 2014/15) 1/22

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

Ferramentas Web, Web 2.0 e Software Livre em EVT

TUTORIAL DE UTILIZAÇÃO DO OWL-S COMPOSER W. Trabalho de Conclusão de Curso Aluno: Adriano Novais Queiroz Orientadora: Prof.ª Daniela Barreiro Claro

Guia e Utilização do Visual Studio.NET 2003

MongoDB: Instalar e configurar a BD NoSQL no Windows 10

TUTORIAL DE INSTALAÇÃO E USO DO OWL-S COMPOSER 3.0 utilizando o Eclipse Galileo Modelling Tools

Ferramentas Web, Web 2.0 e Software Livre em EVT

ArcGis Licenciatura em Engenharia Geográfica. CookBook Abril Nota: 1.MODELAÇÃO DE UMA GEODATABASE

Autodesk Inventor 9 DocTec3 Iniciar um Projecto

Compiladores, 2018/2019 Trabalho prático, parte 1

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Introdução ao IDE Netbeans (Programação Java)

Introdução à Ciência da Computação com Jogos Bruno Feijó - Esteban Clua - Fávio S. Corrêa da Silva

Objectivos: Criar um programa de instalação do projecto desenvolvido

COMPUTAÇÃO E PROGRAMAÇÃO

Conta de utilizador: root

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

SCC-210 Algoritmos Avançados. Capítulo 9 Grafos. Adaptado por João Luís G. Rosa

Ferramentas Web, Web 2.0 e Software Livre em EVT

Disciplina de Lógica e Linguagem de Programação Desenvolvido pelo professor Danilo Giacobo Ferramenta Code::Blocks

Objetivos. Sistema Operativo em Ambiente Gráfico. Introdução às Tecnologias de Informação e Comunicação

1.2.5 As operações básicas do sistema operativo de interface gráfico

2-Introdução e Conceitos Básicos das TIC

Índice. 1. Introdução Instalação: Eclipse e Android Primeira aplicação em Android... 11

Instalação do TextPad

Hidráulica Aplicada 2 Trabalho Prático

Tarefa Orientada 9 Base de Dados Pagamentos

Como configurar o software Cobian Backup?

Guia para configurar o IDE Netbeans para desenvolver projectos em C/C++ com OpenMP:

Estrelas. Introdução. POO, Guião 2 Pedro Guerreiro, Fernando Brito e Abreu 1

Serviços de Informática :: Divisão de Infraestruturas e Serviços :: Universidade de Évora

Linguagem de Programação II Programação Orientada a Objetos. Ambientes de Programação

Ferramentas Web, Web 2.0 e Software Livre em EVT

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação

TCC 00308: Programação de Computadores I Organização de programas em Python

Programação Orientada a Objetos em Java

Karen Frigo Busolin Abril/2011

Familiarização com o ambiente de desenvolvimento da Keil Software. (uvision 51 e dscope 51)

Exercício 1 - Resolução do ecrã. Tecnologias da Informação e Comunicação

Computação e Programação

Sistemas Operativos 10º ano

Módulo de Aprendizagem I

Criando um Editor de Diagramas com Sirius

PCS Laboratório de Engenharia de Software I Tutorial de Modelagem de Dados no RSA v9.5 (por Michelet dal Carpio Chávez)

Universidade Aberta Serviços de Informática 29 de setembro de 2017 Página 1 de 6

Instruções de Instalação dos Guias Móveis (versão 1.0, PT)

Ferramentas Web, Web 2.0 e Software Livre em EVT

ESPECTROFOTÔMETRO DIGITAL - 721G MANUAL DE INSTRUÇÕES SOFTWARE

Torneio Estudantil de Computação Multi-Linguagem de Aveiro. Escola Superior de Tecnologia e Gestão de Águeda Universidade de Aveiro TECLA 2009


Manual do 7-Zip Versão 1

Departamento de Engenharia Electrotécnica e de Computadores Instituto Superior Técnico Universidade Técnica de Lisboa Sistemas Digitais

1 Como compilar seu código? 2 Comandos de terminal:

Fundamentos de Programação

Ferramentas Web, Web 2.0 e Software Livre em EVT

Passo-a-passo para desenvolver um Programa usando a Linguagem Python

HPM 7.0 Guia de Instalação

Introduzir ao formando sobre as funcionalidades básicas de um PC (Personal Computer) do Windows 7.

Gerando um programa executável a partir de um módulo Python

Introdução ao desenho de circuitos digitais usando Xilinx WebPACK 4.1 e linguagem ABEL

Windows 95/98/Me/2000

Conteúdo da embalagem

Laboratório 01 NetBeans

GESTÃO DA SUB-ACÇÃO COMPONENTE ANIMAL

Sistema de cópias de segurança

Explorador do Windows (manipulação de ficheiros)

MANUAL DE INSTALAÇÃO SAMI HOTELEIRO. REV B

Laboratório de Algoritmos Avançados Capítulo 7

Manual de Instalação do Módulo de Segurança MMA SISGEN

Introdução à Programação Aula prática Nº 1

MÓDULO 10 INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA POR OBJETOS O QUE É A PROGRAMAÇÃO ORIENTADA POR OBJETOS 10

Desenvolvimento de Aplicações Móveis com HTML5

MANUAL DE INSTALAÇÃO

Compilador de LP3 para C3E e P3

Ambiente de Programação JAVA POO

Algoritmos Avançados Capítulo 8

Bases de Dados. Lab 1: Introdução ao ambiente

Transcrição:

Guião 4: Draw a Grid Versão 1.1 INTRODUÇÃO O objectivo deste guião é que resolva um problema do concurso de programação ACM ICPC (International Collegiate Programming Contest). O problema escolhido é o Draw a Grid (apresentado em anexo). Neste projecto vão ser disponibilizados 5 testes, sendo cada teste composto por 2 ficheiros texto: um ficheiro para os dados de entrada; outro para os dados de saída. O mooshak irá verificar 5 testes similares aos testes disponibilizados, garantindo que um programa que passe os 5 testes localmente também passará todos os testes no mooshak. Por esta razão, o número de submissões ao mooshak das soluções deste guião podem penalizar a sua nota neste trabalho. As primeiras cinco submissões de cada problema, não penalizam a cotação do problema, no entanto por cada submissão subsequente será descontado 10% da cotação do problema. Como testar localmente o seu trabalho? Há pelo menos duas formas de experimentar o seu trabalho. A primeira é executar o programa a partir do ambiente de desenvolvimento Eclipse, como provavelmente está habituado a fazer. A segunda é através da linha de comandos do seu sistema operativo. Quer num caso, quer noutro, desenvolverá o seu programa normalmente no Eclipse. Primeiro de tudo deve criar na raiz do projecto uma directoria designada tests, executando os seguintes passos: 1. No Package Explorer, seleccionar a raiz do projecto. 2. Clicar no botão direito do rato e no menu de contexto, seleccionar New > Folder... 3. Criar a directoria tests. 4. Importar os ficheiros de teste (ficheiro tests.zip) seleccionando a raiz do projecto e após clicar no botão do rato... 5. Import 6. Na janela de diálogo que surge, indicar a opção Archive File e de seguida procurar o ficheiro tests.zip. 7. De seguida selecionar a package poo e clicar no botão Finish. POO, 2008-2009 Guião 4 1

Figura 1 - Estrutura do projecto Após estes passos a raiz do projecto deve ter a estrutura similar à apresentada na Figura 1. Para testar o seu programa na consola do sistema operativo deve redireccionar o input, para obter os dados a partir do ficheiro de teste de entrada. Considerando que o input do primeiro teste se chama test01-in.txt e que está guardado na directoria tests, então deverá escrever o seguinte comando, dentro da directoria bin do seu projecto: java classpath. poo\main <..\tests\poo\test01-in.txt O programa escreverá o resultado na consola. Para salvaguardar o output, pode fazêlo redirigindo-o para um ficheiro, assim: java classpath. poo\main <..\tests\poo\test01-in.txt >..\tests\poo\res01.txt Para confirmar que o seu programa calcula os resultados esperados deve comparar o ficheiro res01.txt com o output esperado do primeiro teste: ficheiro test01-out.txt. Para tal, podemos inspeccionar visualmente o conteúdo de ambos, ou usar uma ferramenta conhecida como diff. A vantagem de usar uma ferramenta é que ela nos permite detectar diferenças subtis que de outro modo nos podem passar despercebidas na inspecção visual dos resultados. A ferramenta que vamos usar recebe dois argumentos, com os nomes dos ficheiros que queremos comparar. Caso existam diferenças entre ambos os ficheiros, elas serão assinaladas. diff..\tests\poo\test01-out.txt..\tests\poo\res01.txt Caso os ficheiros test01-out.txt e res01.txt sejam iguais a ferramenta não dá nenhum output. Nesta situação, o seu programa passou com sucesso o primeiro teste, não existem diferenças entre o output obtido e o output esperado. O sistema de avaliação automática de trabalhos (mooshak) faz isto mesmo. Pega no seu programa, gera um executável e depois executa o programa com vários ficheiros POO, 2008-2009 Guião 4 2

de input. Para cada ficheiro de input, existe sempre um ficheiro com o output respectivo. Se o seu programa gerar o output esperado, passa no teste. Se o resultado for diferente, nem que seja num carácter, o programa falha o teste. Instalação da ferramenta diff O diff está disponível nas distribuições standard de sistemas operativos como o Linux, mas tem de ser instalado no Windows. Pode obter a ferramenta na Internet, na página http://gnuwin32.sourceforge.net/packages/diffutils.htm. Preparar o zip para a submissão da tarefa A Depois de ter verificado que o seu programa satisfaz os testes disponibilizados, está na altura de o submeter ao mooshak. Para isso deve empacotar a directoria de código fonte poo (incluindo a própria directoria) num ficheiro zip. Não é necessário submeter a directoria de testes. POO, 2008-2009 Guião 4 3

Problem A Draw Grid Input: Standard Input Output: Standard Output It is very easy to draw grids with ASCII characters. For example look at the picture below. It shows a (4x4) grid, where each smallest square is of size 3 and the thickness of drawing line is 2. * * * * * * * * * * In this problem your job is very simple: Given the size of the grid, size of smallest square and thickness of drawing line you will just have to draw the grid. Input The input file contains at most 101 lines of inputs. Each line contains three integers S, T and N (0 < S, T, N < 21). Here S is the size of smallest squares, T is the thickness of drawing line and N is the size of the grid. Input is terminated by a set where the value of S, T and N is zero. This set should not be processed. Output For each set of input first produce the serial of output. In next several lines draw an (NxN) sized grid where each smallest square is of size (SxS) and the thickness of drawing line is T. Print a blank line after the output of each case. Note that line pixels are denoted with * (asterisk) and blank pixels are denoted with..

Sample Input 3 3 3 2 3 4 0 0 0 Output for Sample Input Case 1: Case 2: Problemsetter: Shahriar Manzoor Special Thanks: Md. Kamruzzaman