---+ Homework 2 - disegnare in una matrice rettangolare Si vuol realizzare un programma di grafica, che rappresenta l'immagina come una matrice rettangolare di word di dimensioni massime 1000 word, un pixel per ciascuna word. Il programma legge da input la sequenza formata da: * due interi positivi che indicano LARGHEZZA ed ALTEZZA della matrice, tali che LARGHEZZA*ALTEZZA≤1000 * All'inizio la posizione corrente è 0,0 (in alto a sinistra), il colore corrente è 0 e la matrice è piena di 0 * una successione di comandi, ciascuno su una diversa linea, formati da: * un carattere che indica il comando, seguito sulle righe successive, da eventuali parametri interi come indicato: * *S* (SET_COLOR, setta il colore corrente all'intero *colore*). usa 1 parametro intero: * *colore* (parametro intero) * *G* (GOTO, vai alle coordinate X,Y). usa 2 parametri interi positivi: * *X* (coordinata x, intero) * *Y* (coordinata y, intero) * *M* (MOVE, si sposta di DX e DY pixel rispetto alla posizione corrente). usa 2 parametri interi relativi. * *DX* (spostamento in orizzontale, intero) * *DY* (spostamento in verticale, intero) * NOTA: se la mossa porta fuori dal bordo si rientra dal bordo opposto (la matrice va considerata come una ciambella) * *P* (PAINT, colora il pixel corrente col colore corrente) * *D* (DELETE, cancella il pixel corrente mettendoci 0) * *C* (COPY, copia il colore del pixel corrente) * *Q* (QUIT, esce dal programma dopo aver stampato la matrice) La sequenza di comandi è sempre terminata dal comando *Q*, dopo il quale dovete stampare il contenuto della matrice, un pixel per volta separati da spazio, una riga per volta. ---+++ Esempio ---++++ Input (commentato) <verbatim> 6 # 6 colonne 4 # 4 righe G # GOTO 3 # X=3 2 # Y=2 S # SET_COLOR 5 # color 5 P # colora il pixel 3,2 col colore 5 S # SET_COLOR 6 # color 6 M # MOVE -1 # si sposta di 1 pixel a sinistra -2 # ed in alto di 2 P # colora il pixel 2,0 col colore 6 G # GOTO 3 # X=3 2 # Y=2 C # copia il colore del pixel (ovvero 5) M # MOVE 7 # Sposta a destra di 7 (rientrando a sinistra), ovvero alla colonna 4 9 # ed in basso di 9 (rientrando dall'alto), ovvero alla riga 3 P # colora il pixel 4,3 col colore 5 Q # esce e stampa la matrice</verbatim> ---++++ Output atteso <verbatim> 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 5 0 </verbatim> ---+++ Consegna entro lunedì 24 aprile, ore 24 Per consegnare usate [[http://twiki.di.uniroma1.it/~andrea/consegna-HW-2017.html][QUESTA PAGINA]] * Dovete essere [[TWiki/TWikiRegistration][iscritti a twiki]] * chi copia/passa avrà il compito annullato Trovate [[%ATTACHURL%/][QUI i file ed i risultati dei test]].
This topic: Architetture2/MZ/AA16_17
>
HomeWork2
Topic revision: r1 - 2017-04-02 - AndreaSterbini
Copyright © 2008-2025 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki?
Send feedback