Trabalho Prático II

Paradigmas da Programação II
e
Programação Imperativa (PI2006)

Historial:

[2006-02-23]

Este documento descreve o segundo trabalho prático das disciplinas em epígrafe.

Os assuntos referentes à organização do trabalho e à realização, entrega e avaliação do projecto, serão descritos em documento próprio a divulgar nas próximas duas semanas.


Índice

  1. Tema: Vamos desenhar!
    1. Operações de Gestão
      1. Operações Gráficas
        1. Sugestões para a implementação

        Tema: Vamos desenhar!

        [Voltar ao índice]

        O desenho a duas dimensões é um óptimo exercício para a imaginação e para a organização mental do ser humano. Com o advento das novas tecnologias as pessoas estão cada vez mais adversas ao lápis e papel e mais adeptas do teclado e do rato. Nesta perspectiva e tentando ir ao encontro das novas necessidades e quereres, foste incumbido de desenvolver uma plicação informática que permita a criação e visualização de desenhos a duas dimensões no monitor.

        Nesta aplicação, o lápis será substituído por comandos fornecidos pelo utilizador (descreve-se mais à frente esta interacção) e o papel será substituído por uma matriz de pontos que o utilizador poderá dimensionar de início.

        A aplicação deverá suportar uma série de operações gráficas de desenho que serão realizadas sobre a matriz de pontos bem como outras, de gestão, que se descrevem a seguir.

        Operações de Gestão

        [Voltar ao índice]

        Nesta secção descrevem-se as operações de gestão que a aplicação deverá suportar:

        Dim linhas, colunas
        Este comando permite estabelecer as dimensões da área de desenho. O valor linhas é um inteiro que especifica o número de linhas da matriz e o valor colunas, o inteiro que especifica o número de colunas da matriz. Este comando deverá ser usado uma única vez no início do desenho.
        SetMarker marca
        Este comando permite definir o carácter que será usado no traçado do desenho. O valor marca corresponde ao carácter que se quer usar para traçar as linhas. Este comando pode ser executado em qualquer altura. Se fôr executado a meio de um desenho permite trocar o carácter que se está a usar para desenhar. Por omissão e no início do programa a marca está definida como sendo o ó minúsculo.
        Load desenho
        Este comando permite carregar um desenho previamente gravado num ficheiro. O valor desenho corresponde ao nome do ficheiro onde está gravado o desenho. Este comando será fornecido pelo docente.
        Save desenho
        Este comando permite gravar um desenho num ficheiro. O valor desenho corresponde ao nome do ficheiro onde será gravado o desenho. O desenho será gravado em formato próprio: Este comando será fornecido pelo docente.

        Operações Gráficas

        [Voltar ao índice]

        Nesta secção descrevem-se as operações gráficas que a aplicação deverá suportar:

        Point x,y
        Este comando marca um ponto nas coordenadas x,y, ou seja, naquela posição da matriz deverá ser colocado o carácter definido como a marca actual.
        Line x1,y1,x2,y2
        Este comando traça uma linha marcando os pontos que se aproximam da linha recta entre as coordenadas x1,y1 e x2,y2.
        Rect x1,y1,x2,y2
        Este comando traça um rectângulo assumindo os pontos x1,y1 e x2,y2 como os limites de uma das suas diagonais.
        PolyLine x1,y1, x2,y2, ..., xn,yn
        Este comando traça uma linha unindo os pontos cujas coordenadas foram fornecidas. Desta forma permite abreviar alguns traçados. Veja-se um exemplo:
          PolyLine x1,y1,x2,y2,x3,y3,x4,y4
        é equivalente a:
          Line x1,y1,x2,y2
          Line x2,y2,x3,y3
          Line x3,y3,x4,y4
        Circ x,y,r
        Este comando permite traçar uma circunferência com centro em x,y e de raio r. Esta operação será encarada como um extra nesta fase.
        Elip x1,y1,x2,y2
        Este comando permite traçar uma elipse com focos em x1,y1 e x2,y2 respectivamente. Esta operação será encarada como um extra nesta fase.

        Sugestões para a implementação

        [Voltar ao índice]

        Depois de apresentados os requisitos funcionais da aplicação ficam aqui algumas sugestões para a sua implementação.