Newsgroup: it.comp.lang.c++
Titolo: AIUTOOOOOOO2

 ALE
Francesco
iL PIUNTO E VIRGOLA L'HO MESSO MA MI DICE LE STESSE COSE!!!!!
PERCHE'?????!!!!

 COSE!!!!! PERCHE'?????!!!!
'azzarola!
1- leggi attentamente qui: 
http://it.geocities.com/usenetitalia/quoting.html
    che non si capisce nulla di cosa scrivi tu e cosa invece riporti degli
altri.
2- Non scrivere in maiuscolo (==GRIDARE) che č ritenuto maleducato
    (e inutile).
3- Probabilmente manca un ';' anche prima del punto che hai postato.
4- Prova a ridurre il codice al minimo indispensabile e manda un esempio
    compilabile sul NG.
5- Puoi anche provare a trovare l'errore commentando dei blocchi di
    codice in modo da isolare la parte che ti da l'errore. dalla parte che
    non lo da. (Gli elettronici tagliano le piste, per scovare i
cortocircuiti
    che non riescono a trovare... ecco... la stessa cosa :-)) )
ciao
--
Gerolamo


Hai ragione scusate non volevo essere maleducato mi era rimasta il bloc
maiuscolo attivo e non avevo voglia di disattivarlo..
starò più attento.
Allora cerco di essere un pochino piu chiaro:
Interfaccia classe Data
****************************************************************************
**************
#include<iostream.h>
int gmese[13]={0,30,28,31,30,31,30,31,31,30,31,31,31};
class Data{
    private:
     int ora,min,giorno,mese,anno;//mi servono per visualizzare la data in
formato tipo **10:55 12 dic 2003 **
  public:
  void set_data(int,int,int,int,int);
  int conta_giorni(int  );
  void get_data();
  } ;
****************************************************************************
**************
Implementazione classe Data:
#include "data.h"
//giorni dipendenti dal mese
void Data::set_data(int h,int m, int g,int ms, int a){
           ora=h;
      min=m;
      giorno=g;
      mese=ms;
      anno=a;
      }
      void Data::get_data(){
      int gsett=3; //inizializzo gestt a tre perchè il primo giorno del 2003
è mecoledi.
      int count = conta_giorni(mese);
      cout << "L'appuntamento è previsto per il giorno ";
      for(int i=1;i<count;i++){
      gsett=gsett%6;
      gsett++;
        }
       switch(gsett){
       case 0:cout << "Lunedì";break;
       case 1:cout << "Martedì";break;
       case 2:cout << "Mercoledì";break;
       case 3:cout << "Giovedì";break;
       case 4:cout << "Venerdì";break;
       case 5:cout << "Sabato";break;
       case 6:cout << "Domenica";break;
       }
                   cout <<" " << giorno <<" " ;
                  switch(mese){
       case 1:cout <<"Gen";break;
       case 2:cout <<"Feb";break;
       case 3:cout <<"Mar";break;
       case 4:cout <<"Apr";break;
       case 5:cout <<"Mag";break;
       case 6:cout <<"Giu";break;
       case 7:cout <<"lug";break;
       case 8:cout <<"Ago";break;
       case 9:cout <<"Set";break;
       case 10:cout <<"Ott";break;
       case 11:cout <<"Nov";break;
       case 12:cout <<"Dic";break;
       }
                  cout <<" alle ore ";
       if(ora<10) cout << "0"<< ora;
      else if(ora <0 && ora>24)cerr << "Errore inserire un orario compreso
tra 0 e 23";
      else cout << ora;
      cout <<":";
      if(min<10)cout << "0" << min;
      else if(min<0 && min>59) cerr << "Errore inserire i minuti compresi
tra 0 e 59";
      else cout << min;
      cout << endl;
        }
 int Data::conta_giorni(int ){
      int count=0;
      for(int i=count;i<=mese;i++){
       count+=::gmese[i];}
       return count;
     }
****************************************************************************
*****************************
Così funziona il programma...
Se invece io decidessi di fare una cosa del genere
Interfaccia classe Data
****************************************************************************
**************
#include<iostream.h>
class Data{
    private:
     int ora,min,giorno,mese,anno;//mi servono per visualizzare la data in
formato tipo **10:55 12 dic 2003 **
  int gmese[13];
  public:
  Data();
  void set_data(int,int,int,int,int);
  int conta_giorni(int  );
  void get_data();
  } ;
Implementazione classe Data:
#include "data.h"
void Data::Data(){gmese[13]={0,30,28,31,30,31,30,31,31,30,31,31,31}; }
//giorni dipendenti dal mese
void Data::set_data(int h,int m, int g,int ms, int a){
           ora=h;
      min=m;
      giorno=g;
      mese=ms;
      anno=a;
      }
      void Data::get_data(){
      int gsett=3; //inizializzo gestt a tre perchè il primo giorno del 2003
è mecoledi.
      int count = conta_giorni(mese);
      cout << "L'appuntamento è previsto per il giorno ";
      for(int i=1;i<count;i++){
      gsett=gsett%6;
      gsett++;
        }
       switch(gsett){
       case 0:cout << "Lunedì";break;
       case 1:cout << "Martedì";break;
       case 2:cout << "Mercoledì";break;
       case 3:cout << "Giovedì";break;
       case 4:cout << "Venerdì";break;
       case 5:cout << "Sabato";break;
       case 6:cout << "Domenica";break;
       }
                   cout <<" " << giorno <<" " ;
                  switch(mese){
       case 1:cout <<"Gen";break;
       case 2:cout <<"Feb";break;
       case 3:cout <<"Mar";break;
       case 4:cout <<"Apr";break;
       case 5:cout <<"Mag";break;
       case 6:cout <<"Giu";break;
       case 7:cout <<"lug";break;
       case 8:cout <<"Ago";break;
       case 9:cout <<"Set";break;
       case 10:cout <<"Ott";break;
       case 11:cout <<"Nov";break;
       case 12:cout <<"Dic";break;
       }
                  cout <<" alle ore ";
       if(ora<10) cout << "0"<< ora;
      else if(ora <0 && ora>24)cerr << "Errore inserire un orario compreso
tra 0 e 23";
      else cout << ora;
      cout <<":";
      if(min<10)cout << "0" << min;
      else if(min<0 && min>59) cerr << "Errore inserire i minuti compresi
tra 0 e 59";
      else cout << min;
      cout << endl;
        }
 int Data::conta_giorni(int ){
      int count=0;
      for(int i=count;i<=mese;i++){
       count+=::gmese[i];}
       return count;
     }
****************************************************************************
*****************************
In questo modo il compilatore mi restituisce gli errori che ho detto
prima...
Ora so che non è il modo più intelligente sicuramente ma è una esercitazione
scolastica nulla di professionistico ma solo per capire un po' come
funzionano...
Lo so che penserai Gerolamo che non ho capito un cavolo ma abbi pazienza
sono appena 30 giorni che "programmo" quindi non posso scrivere grandi cose
se non cose che per voi siano sciocchezzuole..
Bando alle ciance ti e vi chiedo dove sbaglio???
E soprattutto sono errori di concetto oppure cerco sootigliezze inutili???
Grazie a tutti
Alex

Se il data member 'gmese' non deve essere alterato ma lo utilizzi solo in
modalita' read-only, io ti suggerisco:
// Data.h
class Data{
private:
     int ora,min,giorno,mese,anno;//mi servono per visualizzare la data
informato tipo **10:55 12 dic 2003 **
    static const int gmese[13];
public:
    Data();
    void set_data(int,int,int,int,int);
    int conta_giorni(int  );
    void get_data();
  } ;
Data::Data(){
}
// Data.cpp
const int Data::gmese[13]={0,30,28,31,30,31,30,31,31,30,31,31,31};
Ciao
Fabio

 Fabio
ciao Ale
***************************************
messaggio inviato tramite HostSearch.it
---------------------------------------
---> 
http://www.hostsearch.it/newsgroup
***************************************

 regole di scopo a quella funzione giusto?
Puoi inserire il programa cosi' come lo compili e il messaggio di errore ?
 Ciao
Fabio

 int gmese[13]={0,30,28,31,30,31,30,31,31,30,31,31,31};
In questo caso è una variabile automatica inizializzata
alla creazione.
Se invece la metti dentro alla classe Data succede che la
variabile viene dichiarata in un punto e successivamente
assegnato.
Questo non lo puoi fare come fai tu, ma devi fare un ciclo
un cui assegni i valori uno a uno.
Ti consiglio inoltre di dichiarare gmese come 'const'.
Ultima cosa, <iostream> va messo senza il '.h' finale
e devi poi controllare di mettere quel che serve nel
namespace std (in pratica mettere std:: davanti ai 'cout'
e a tutto quello che viene dalla libreria standard).
Ah... occhio agli anni bisestili!
bool is_leap(unsigned int y)
{
    return (y%4==0 && y%100!=0 || y%400==0);
}
ciao
-- 
Gerolamo