Oppure

Loading
17/07/10 19:23
K2
Per chi volesse un esercizietto molto facile, ma che io non ho capito proprio del tutto:
Scrivere un programma per visualizzare "HELLO" in grandi lettere stampatello, dove ogni lettera è alta 7 caratteri e larga 5 caratteri.
Beh, io l'ho interpretata così:
#include <iostream>
#include <stdlib.h>
/* PROGRAMMA PER VISUALIZZARE "HELLO" IN GRANDI LETTERE STAMPATELLO *
 * OGNI CARATTERE E' ALTO 7 CARATTERI E LARGO 5 CARATTERI           *
 ********************************************************************/
 int main()
 {
     std::cout <<"*   *\n"
               <<"*   *\n"  
               <<"*   *\n" 
               <<"*****\n"
               <<"*   *\n"
               <<"*   *\n"
               <<"*   *\n";
     
     std::cout <<"\t*****\n"
               <<"\t*\n" 
               <<"\t*\n" 
               <<"\t*****\n"
               <<"\t*\n"
               <<"\t*\n"
               <<"\t*****\n\n";
     
     std::cout <<"\t\t*\n"
               <<"\t\t*\n"  
               <<"\t\t*\n" 
               <<"\t\t*\n"
               <<"\t\t*\n"
               <<"\t\t*\n"
               <<"\t\t*****\n\n";
     
     std::cout <<"\t\t\t*\n"
               <<"\t\t\t*\n"  
               <<"\t\t\t*\n" 
               <<"\t\t\t*\n"
               <<"\t\t\t*\n"
               <<"\t\t\t*\n"
               <<"\t\t\t*****\n\n";
     
     std::cout <<"\t\t\t\t*****\n" 
               <<"\t\t\t\t*   *\n"  
               <<"\t\t\t\t*   *\n" 
               <<"\t\t\t\t*   *\n"
               <<"\t\t\t\t*   *\n"
               <<"\t\t\t\t*   *\n"
               <<"\t\t\t\t*****\n\n";
     
     
     system("pause");
     return(0);
 }

Non so voi, ditemi.
Ultima modifica effettuata da K2 17/07/10 19:24
aaa
17/07/10 19:35
Poggi Marco
Cosa non hai capito, esattamente?
aaa
17/07/10 19:37
nessuno
Non so voi, ditemi


Beh, fossi il tuo professore ti direi

1) la parola non appare correttamente a video, cioè non appare HELLO in orizzontale, ma ogni carattere su "righe" diverse ...

2) come è fatto è troppo "semplice" ... dovresti fare una funzione comune (a cui passare un carattere per volta della stringa) che visualizzi il corrispondente con gli asterischi ...
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
18/07/10 8:40
Matthew
Ti do un'idea di cosa devi fare.
Il mio codice che ti posto stampa un numero anzichè lettere, ma il concetto è lo stesso.

Sperando di essere d'aiuto:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void printRow(int flag, int n)
{
    int i;
    printf(" ");
    for(i=0; i<n; i++)
    {
        if(flag)
            printf("-");
        else
            printf(" ");
    }
    printf(" ");
}
void printCol(int pr, int pr2, int n)
{
    int i, j;
    if(pr)printf("|");
    else printf(" ");
    for(i=0; i<n; i++)
    {
        printf(" ");
    }
    if(pr2)printf("|");
    else printf(" ");
}

void print(int *arr, int size, int l)
{
    int i,j;
    for(j=size-1; j>=0; j--)
    {
        switch(arr[j])
        {
            case 1:
            case 4:
                printRow(0, l);
                break;
            default:
                printRow(1, l);
                break;
        }
        printf(" ");
    }
    printf("\n");
    for(i=0; i<l; i++)
    {
        for(j=size-1; j>=0; j--)
        {
            switch(arr[j])
            {
                case 5:
                case 6:
                    printCol(1,0, l);
                    break;
                case 4:
                case 8:
                case 9:
                case 0:
                    printCol(1,1, l);
                    break;
                default:
                    printCol(0,1, l);
                    break;
            }
            printf(" ");
        }
        printf("\n");
    }
    for(j=size-1; j>=0; j--)
    {
        switch(arr[j])
        {
            case 1:
            case 7:
            case 0:
                printRow(0, l);
                break;
            default:
                printRow(1, l);
                break;
        }
        printf(" ");
    }
    printf("\n");
    for(i=0; i<l; i++)
    {
        for(j=size-1; j>=0; j--)
        {
            switch(arr[j])
            {
                case 6:
                case 8:
                case 0:
                    printCol(1,1, l);
                    break;
                case 2:
                    printCol(1,0, l);
                    break;
                default:
                    printCol(0,1, l);
                    break;
            }
            printf(" ");
        }
        printf("\n");
    }
    for(j=size-1; j>=0; j--)
    {
        switch(arr[j])
        {
            case 1:
            case 4:
            case 7:
                printRow(0, l);
                break;
            default:
                printRow(1, l);
                break;
        }
        printf(" ");
    }
}


int main()
{
    char **s, **arr;
    int n, i, j, k, o[10], l;
    scanf("%d ", &n);
    while(n!=0)
    {
        i=0; j=0; l=0;

        scanf(" %d", &k);

        do
        {
            o[l++]=k%10;
            k=k/10;
        }
        while(k!=0);

        print(o, l, n);


        printf("\n");
        scanf("%d ", &n);

    }

    return 0;
}

aaa
18/07/10 10:11
K2
Ok, grazie delle risposte, allora:
Cosa non hai capito, esattamente?

Non ho capito se devo utilizzare gli asterisco o meno.
Beh, fossi il tuo professore ti direi
1) la parola non appare correttamente a video, cioè non appare HELLO in orizzontale, ma ogni carattere su "righe" diverse ...

Ho provato ha metterle in orizzantale ma non riesco, come faccio?
2) come è fatto è troppo "semplice" ... dovresti fare una funzione comune (a cui passare un carattere per volta della stringa) che visualizzi il corrispondente con gli asterischi ...

Ti do un'idea di cosa devi fare.
Il mio codice che ti posto stampa un numero anzichè lettere, ma il concetto è lo stesso.

Lo so anch'io che il codice che ho scritto è troppo semplice, ma sto cercando di riprendere lo studio del linguaggio dopo un anno che non lo studio. Quindi grazie del codice e adesso con calma passo al ripasso delle funzioni rifacendo l'esercizio, grazie delle idee.
aaa