Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - ESERCIZIETTO STUPIDO
Forum - C/C++ - ESERCIZIETTO STUPIDO

Avatar
K2 (Normal User)
Rookie


Messaggi: 27
Iscritto: 08/08/2008

Segnala al moderatore
Postato alle 21:23
Sabato, 17/07/2010
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ì:
Codice sorgente - presumibilmente C/C++

  1. #include <iostream>
  2. #include <stdlib.h>
  3. /* PROGRAMMA PER VISUALIZZARE "HELLO" IN GRANDI LETTERE STAMPATELLO *
  4.  * OGNI CARATTERE E' ALTO 7 CARATTERI E LARGO 5 CARATTERI           *
  5.  ********************************************************************/
  6.  int main()
  7.  {
  8.      std::cout <<"*   *\n"
  9.                <<"*   *\n"  
  10.                <<"*   *\n"
  11.                <<"*****\n"
  12.                <<"*   *\n"
  13.                <<"*   *\n"
  14.                <<"*   *\n";
  15.      
  16.      std::cout <<"\t*****\n"
  17.                <<"\t*\n"
  18.                <<"\t*\n"
  19.                <<"\t*****\n"
  20.                <<"\t*\n"
  21.                <<"\t*\n"
  22.                <<"\t*****\n\n";
  23.      
  24.      std::cout <<"\t\t*\n"
  25.                <<"\t\t*\n"  
  26.                <<"\t\t*\n"
  27.                <<"\t\t*\n"
  28.                <<"\t\t*\n"
  29.                <<"\t\t*\n"
  30.                <<"\t\t*****\n\n";
  31.      
  32.      std::cout <<"\t\t\t*\n"
  33.                <<"\t\t\t*\n"  
  34.                <<"\t\t\t*\n"
  35.                <<"\t\t\t*\n"
  36.                <<"\t\t\t*\n"
  37.                <<"\t\t\t*\n"
  38.                <<"\t\t\t*****\n\n";
  39.      
  40.      std::cout <<"\t\t\t\t*****\n"
  41.                <<"\t\t\t\t*   *\n"  
  42.                <<"\t\t\t\t*   *\n"
  43.                <<"\t\t\t\t*   *\n"
  44.                <<"\t\t\t\t*   *\n"
  45.                <<"\t\t\t\t*   *\n"
  46.                <<"\t\t\t\t*****\n\n";
  47.      
  48.      
  49.      system("pause");
  50.      return(0);
  51.  }


Non so voi, ditemi.

Ultima modifica effettuata da K2 il 17/07/2010 alle 21:24
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:35
Sabato, 17/07/2010
Cosa non hai capito, esattamente?

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6402
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 21:37
Sabato, 17/07/2010
Testo quotato

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à.
PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 10:40
Domenica, 18/07/2010
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:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void printRow(int flag, int n)
  6. {
  7.     int i;
  8.     printf(" ");
  9.     for(i=0; i<n; i++)
  10.     {
  11.         if(flag)
  12.             printf("-");
  13.         else
  14.             printf(" ");
  15.     }
  16.     printf(" ");
  17. }
  18. void printCol(int pr, int pr2, int n)
  19. {
  20.     int i, j;
  21.     if(pr)printf("|");
  22.     else printf(" ");
  23.     for(i=0; i<n; i++)
  24.     {
  25.         printf(" ");
  26.     }
  27.     if(pr2)printf("|");
  28.     else printf(" ");
  29. }
  30.  
  31. void print(int *arr, int size, int l)
  32. {
  33.     int i,j;
  34.     for(j=size-1; j>=0; j--)
  35.     {
  36.         switch(arr[j])
  37.         {
  38.             case 1:
  39.             case 4:
  40.                 printRow(0, l);
  41.                 break;
  42.             default:
  43.                 printRow(1, l);
  44.                 break;
  45.         }
  46.         printf(" ");
  47.     }
  48.     printf("\n");
  49.     for(i=0; i<l; i++)
  50.     {
  51.         for(j=size-1; j>=0; j--)
  52.         {
  53.             switch(arr[j])
  54.             {
  55.                 case 5:
  56.                 case 6:
  57.                     printCol(1,0, l);
  58.                     break;
  59.                 case 4:
  60.                 case 8:
  61.                 case 9:
  62.                 case 0:
  63.                     printCol(1,1, l);
  64.                     break;
  65.                 default:
  66.                     printCol(0,1, l);
  67.                     break;
  68.             }
  69.             printf(" ");
  70.         }
  71.         printf("\n");
  72.     }
  73.     for(j=size-1; j>=0; j--)
  74.     {
  75.         switch(arr[j])
  76.         {
  77.             case 1:
  78.             case 7:
  79.             case 0:
  80.                 printRow(0, l);
  81.                 break;
  82.             default:
  83.                 printRow(1, l);
  84.                 break;
  85.         }
  86.         printf(" ");
  87.     }
  88.     printf("\n");
  89.     for(i=0; i<l; i++)
  90.     {
  91.         for(j=size-1; j>=0; j--)
  92.         {
  93.             switch(arr[j])
  94.             {
  95.                 case 6:
  96.                 case 8:
  97.                 case 0:
  98.                     printCol(1,1, l);
  99.                     break;
  100.                 case 2:
  101.                     printCol(1,0, l);
  102.                     break;
  103.                 default:
  104.                     printCol(0,1, l);
  105.                     break;
  106.             }
  107.             printf(" ");
  108.         }
  109.         printf("\n");
  110.     }
  111.     for(j=size-1; j>=0; j--)
  112.     {
  113.         switch(arr[j])
  114.         {
  115.             case 1:
  116.             case 4:
  117.             case 7:
  118.                 printRow(0, l);
  119.                 break;
  120.             default:
  121.                 printRow(1, l);
  122.                 break;
  123.         }
  124.         printf(" ");
  125.     }
  126. }
  127.  
  128.  
  129. int main()
  130. {
  131.     char **s, **arr;
  132.     int n, i, j, k, o[10], l;
  133.     scanf("%d ", &n);
  134.     while(n!=0)
  135.     {
  136.         i=0; j=0; l=0;
  137.  
  138.         scanf(" %d", &k);
  139.  
  140.         do
  141.         {
  142.             o[l++]=k%10;
  143.             k=k/10;
  144.         }
  145.         while(k!=0);
  146.  
  147.         print(o, l, n);
  148.  
  149.  
  150.         printf("\n");
  151.         scanf("%d ", &n);
  152.  
  153.     }
  154.  
  155.     return 0;
  156. }


PM Quote
Avatar
K2 (Normal User)
Rookie


Messaggi: 27
Iscritto: 08/08/2008

Segnala al moderatore
Postato alle 12:11
Domenica, 18/07/2010
Ok, grazie delle risposte, allora:
Testo quotato

Cosa non hai capito, esattamente?


Non ho capito se devo utilizzare gli asterisco o meno.
Testo quotato

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?
Testo quotato

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 ...


Testo quotato

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.

PM Quote