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++ - Programma
Forum - C/C++ - Programma

Avatar
Geo (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/11/2007

Segnala al moderatore
Postato alle 20:10
Martedì, 04/03/2008
Ragazzi devo realizzare un programma che ipotizzando che il primo giorno dell'anno sia lunedi, deve riconoscermi una data e dirmi a che giorno della settimana riconosce.
Questo è il mio spunto ma non mi da soluzione corretta, il tutto deve essere fatto con le funzioni.
Intanto vi posto cosa ho fatto io:

Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3.  
  4. int anno(int mese, int giorno) ;
  5.  
  6. using namespace std;
  7.  
  8. int anno(int mese, int giorno){
  9.     int i=0, a ;
  10.     int di=0 ;
  11.     int cost=7 ;
  12.     for (a=6 ; a<13 ; a++){
  13.         a=a+1 ;  
  14.  
  15.     for (i=1 ; i<=365 ; i++){
  16.         di=di+cost ;
  17.         if (di==giorno){
  18.         switch (cost){
  19.                case 7:
  20.                     cout<<"\nE' Lunedi'! " ;
  21.                     break ;
  22.                case 8:
  23.                     cout<<"\nE' Martedi'! " ;
  24.                     break ;
  25.                case 9:
  26.                     cout<<"\nE' Mercoledi'! " ;
  27.                     break ;
  28.                case 10:
  29.                     cout<<"\nE' Giovedi'! " ;
  30.                     break ;
  31.                case 11:
  32.                     cout<<"\nE' Venerdi'! " ;
  33.                     break ;
  34.                case 12:
  35.                     cout<<"\nE' Sabato! " ;
  36.                     break ;
  37.                case 13:
  38.                     cout<<"\nE' Domenica! " ;
  39.                     break ;
  40.                
  41.         }
  42.         }
  43.         else
  44.             if (di=!giorno){
  45.            
  46.     }
  47.     }
  48.     }
  49. }
  50.  
  51. int main(int argc, char *argv[])
  52. {
  53.     int g, calcolo, m ;
  54.     cout<<"\nInserisci il mese: " ;
  55.     cin>>m ;
  56.     cout<<"\nInserisci il giorno: " ;
  57.     cin>>g ;
  58.     cout<<"\nIl giorno "<<g<<" del mese "<<m<<" e': " ;
  59.     calcolo=anno(m,g) ;
  60.     cout<<"\nIl giorno e': " <<calcolo ;
  61.    
  62.     system("PAUSE");
  63.     return EXIT_SUCCESS;
  64. }


PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 20:29
Martedì, 04/03/2008
Scusa ma mi sa che qui se non ho capito male il tuo ragionamento vai da settimana in settimana :

Codice sorgente - presumibilmente Plain Text

  1. di=di+cost ;
  2. // dove cost è sette..



poi magari esponi meglio il tuo problema e noi saremo grati di risolvertelo al più presto..esponilo più chiaramente però..:k:

PM Quote
Avatar
Geo (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/11/2007

Segnala al moderatore
Postato alle 20:47
Martedì, 04/03/2008
#include <cstdlib>
#include <iostream>

int anno(int mese, int giorno) ;

using namespace std;

int anno(int mese, int giorno){
    int i=0, a ;
    int di=0 ;
    int cost=7 ;
    /*Ciclo che da 6 a 13(cioè visto che il lunedi
    si verifica ogni 7 giorni da un lunedi,
    il martedi ogni 8 giorni da lunedi e cosi
    via).*/
    for (a=6 ; a<13 ; a++){
        a=a+1 ;  
    /*Ciclo che verifica i 365 giorni dell'anno
    facendo modo che cost(che per ora è 7)
    sommandola sempre prima o poi dovrò ottenere
    di=giorno e dipende a quello stampare il
    giorno.
    */
    for (i=1 ; i<=365 ; i++){
        di=di+cost ;
        if (di==giorno){
        switch (cost){
               case 7:
                    cout<<"\nE' Lunedi'! " ;
                    break ;
               case 8:
                    cout<<"\nE' Martedi'! " ;
                    break ;
               case 9:
                    cout<<"\nE' Mercoledi'! " ;
                    break ;
               case 10:
                    cout<<"\nE' Giovedi'! " ;
                    break ;
               case 11:
                    cout<<"\nE' Venerdi'! " ;
                    break ;
               case 12:
                    cout<<"\nE' Sabato! " ;
                    break ;
               case 13:
                    cout<<"\nE' Domenica! " ;
                    break ;
              
        }
        }
        else
            if (di=!giorno){
            
    }
    }
    }
}

int main(int argc, char *argv[])
{
    int g, calcolo, m ;
    cout<<"\nInserisci il mese: " ;
    cin>>m ;
    cout<<"\nInserisci il giorno: " ;
    cin>>g ;
    cout<<"\nIl giorno "<<g<<" del mese "<<m<<" e': " ;
    calcolo=anno(m,g) ;
    cout<<"\nIl giorno e': " <<calcolo ;
    
    system("PAUSE");
    return EXIT_SUCCESS;
}


Io l'ho buttata li, non sono sicuro che il ragionamento è giusto e se abbia una logica...
Spero di aver spiegato bene queste volta :)

PM Quote
Avatar
FHF93 (Ex-Member)
Pro


Messaggi: 132
Iscritto: 13/11/2007

Segnala al moderatore
Postato alle 14:43
Mercoledì, 05/03/2008
Quando facevo queste cose un metodo che usavo era questo:

Mi faccio dire Giorno e Mese
Vedo a che giorno dell'anno corrisponde
Divido il giorno per 7 e in base al resto capisco a quale giorno della settimana corrisponde...

Avevo visto tempo fa un programma così in Pascal (di John) qui:

http://www.pierotofy.it/pages/download.php?filename=100p97 ...

Vedi se lo capisci altrimenti ti faccio un esempio

PM Quote
Avatar
Geo (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/11/2007

Segnala al moderatore
Postato alle 19:30
Mercoledì, 05/03/2008
:)
Il programma l'ho fatta ragazzi...grazie a quello che mi hai postato tu :)
Ora solo una cosa...vorrei spiegato perchè attraverso il resto di deduce il giorno! :)

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 9:21
Giovedì, 06/03/2008
Probabilmente non ci hai pensato su abbastanza, perche' e' facilissimo da comprendere il fatto del resto ... provaci facendo un esempio scritto ...


PM Quote
Avatar
Geo (Normal User)
Newbie


Messaggi: 11
Iscritto: 19/11/2007

Segnala al moderatore
Postato alle 16:36
Giovedì, 06/03/2008
Testo quotato

Postato originariamente da gantonio:

Probabilmente non ci hai pensato su abbastanza, perche' e' facilissimo da comprendere il fatto del resto ... provaci facendo un esempio scritto ...



Fatto :)
Una cretinata :P
Grazie ancora di tutto ragazzi!!!
Alla prossima...

PM Quote