ich hab keine ahnung mehr



  • Und nur den relevanten Code posten.



  • Ich kann dich beruhigen: Ahnung hattest du noch nie 💡



  • also ich hab nicht wirklich ahnung von der ganzen materie

    also ich hab die folgende struktur
    :

    struct speichern
    { //int matr;
    char Name[20];
    char Vorname[20];

    } ;

    die variablen werden dann hier eingegeben:

    cout<<"benutzer name?:";
    cin>>mit[i].Name;

    cout<<"benutzervorname?:";
    cin>>mit[i].Vorname;

    //cout<<"matrikelnummer??:";
    //cin>>mit[i].matr;

    so läuft es und die ersten zwei variablen werden auch gespeichert nehme
    ich jetzt die dritte mit rein bekomme ich keine fehlermeldungen aber das programm stürzt immer ab.



  • boa, eine frau. wo kommst du her?



  • Helfer in der Not schrieb:

    Ich kann dich beruhigen: Ahnung hattest du noch nie 💡

    ja super danke



  • gentoo schrieb:

    boa, eine frau. wo kommst du her?

    aus dem hohen norden 😉
    ich mach das auch nicht freiwillig 😉
    ich muss das machen 😞



  • Wie verwende ich codetags?

    In deinem ersten Beitrag auf Editieren klicken, die
    cpp codetags zwischen den Quellcode setzen.

    dein Quellcode zwischen cpp tags
    


  • Ja editieren kann ich den nicht mehr ich denke mal weil ich nicht regestriert bin dann halt nochmal 😉

    [/cpp]
    #include <iostream.h>
    #include <stdlib.h>
    #include <iomanip.h>
    #include <stdio.h>

    struct speichern
    { //int matr;
    char Name[20];
    char Vorname[20];

    } ;

    void main()
    {
    speichern mit[20];
    FILE* datei;
    datei = fopen("test.txt","w");

    int Auswahl,j;//J steht für den strich

    do
    {
    cout<<" \n\n\n Gruppenarbeit \n";

    for (j=0;j<80;j++)
    cout<<"-";

    cout<<"Bitte w"<<char (900)<<"hlen Sie ein Programm aus...\n\n";
    cout<<"Programm ***Sortieralgorithmus : [1]\n";
    cout<<"Programm ***Darstellung eines Dreicks : [2]\n";
    cout<<"Programm ***Berechung der Determinante : [3]\n";
    cout<<"Programm ***Multiplikation zweier Matrizen : [4]\n";
    cout<<"Programm ***Berechung des Fl"<<char (900)<<"cheninhaltes : [5]\n\n\n";

    cout<<" Programmabruch!!! : [0]\n";
    cout<<"\n\n\n";

    cout<<"\nWelches Programm wollen Sie nutzen??? : ";
    cin>>Auswahl;

    switch (Auswahl)
    {
    case 0:
    {cout<<"\n *** Programm beenden ***\n";
    cout<<"\a";
    }
    break;
    //----------------------------------------------------------------------------------------

    case 1:

    {
    int AnzahlReihen, AnzahlSpalten, i, k, m, z;//i ist für AnzahlReihen
    double ZeileSpalte[10] [10], temp;

    z=1; // Zähler in der Ausgabe als Information

    cout<<endl;
    cout<<"Programm zum Einlesen von Werten in w"<<char (900)<<"hlbar grosse Zeilen/Spalten (max. 10)"<<endl<<endl;

    for (j=0;j<80;j++)
    cout<<"-";

    cout<<endl<<endl;
    cout<<"Bitte Anzahl der Reihen eingeben? ";
    cin>>AnzahlReihen;

    cout<<"Bitte Anzahl der Spalten eingeben? ";
    cin>>AnzahlSpalten;
    cout<<endl<<endl;

    for (i=0;i<AnzahlReihen;i++)
    {
    cout<<"Geben Sie bitte die "<<z++<<". Reihe ein: ";
    for (m=0;m<AnzahlSpalten;m++)
    {
    cin>>ZeileSpalte[i][m];
    }
    }
    cout<<endl<<endl;

    for (j=0;j<80;j++)
    cout<<char (196);

    cout<<"Es ergibt sich folgende Sortierung:"<<endl;
    cout<<"(von klein nach gross)"<<endl<<endl;

    for (i=0;i<AnzahlReihen-1;i++)
    {

    for (k=i+1;k<AnzahlReihen;k++)
    {
    if (ZeileSpalte[i][0]>ZeileSpalte[k][0])
    {
    for (m=0;m<AnzahlSpalten;m++)
    {
    temp=ZeileSpalte[i][m];
    ZeileSpalte[i][m]=ZeileSpalte[k][m];
    ZeileSpalte[k][m]=temp;
    }
    }
    }
    }
    for (i=0;i<AnzahlReihen;i++)
    {
    cout<<endl;
    cout<<" --> ";
    for (m=0;m<AnzahlSpalten;m++)
    cout<<ZeileSpalte[i][m]<<" ";
    }
    cout<<endl<<endl;

    break;

    case 2:

    {
    int hoehe, breite,spitze;
    int x=35,za,weite=2;

    cout<<"\tProgramm zur Darstellung eines gleichschenkeligen Dreiecks"<<endl<<endl;

    cout<<"benutzer name?:";
    cin>>mit[i].Name;

    cout<<"benutzervorname?:";
    cin>>mit[i].Vorname;

    //cout<<"matrikelnummer??:";
    //cin>>mit[i].matr;

    cout<<"Bitte geben Sie die gewuenschte Breite des Dreiecks ein : ";
    cin>>breite;
    cout<<endl<<"Bitte geben Sie die gewuenschte Hoehe des Dreiecks ein : ";
    cin>>hoehe;

    cout<<endl<<endl<<endl;

    if (((breite>5) && (hoehe>5)) && ((breite<25) && (hoehe<25)))
    {
    cout<<"Wie soll denn das Dreieck dargestellt werden?"<<endl;
    cout<<"\t\t\t\t[1 = Spitze oben][2 = Spitze unten] ";
    cin>>spitze;

    fwrite(&mit[i],sizeof(mit[i]),2,datei);

    fclose(datei);

    switch (spitze)
    {
    case 1:
    {
    cout<<setw(x);
    cout<<char(05)<<endl;
    x=x--;

    for (za=3; za<=hoehe; za++)
    {
    cout<<setw(x);
    cout<<char(05)<<setw(weite)<<char(05)<<endl;
    x--;
    weite=weite+2;
    }

    cout<<setw(x);

    for (za=0; za<breite; za++)
    {
    cout<<char(05);
    cout<<char(00);
    }
    cout<<endl<<endl;
    } break;

    case 2:
    {
    x=x-breite;
    cout<<setw(x);

    for(za=1; za<=breite; za++)
    {
    cout<<char(05);
    cout<<char(00);
    }

    cout<<endl;
    x++;

    for (za=3; za<=hoehe; za++)
    {
    cout<<setw(x);
    cout<<char(05)<<setw((breite*2)-weite-2)<<char(05)<<endl;
    x++;
    breite--;
    }

    cout<<setw(34)<<char(05)<<endl;

    } break;
    default:
    {
    cout<<"Leider haben sie einen unzulässigen wert eingegeben"<<endl;
    }
    }
    }
    else
    {
    cout<<"Leider haben sie einen unzulässigen wert eingegeben"<<endl;
    cout<<"Hier fehlt noch ein sprung zurück zum Start";
    }

    }
    break;

    }
    }

    }
    while (Auswahl != 0);

    cout<<"\n *** Programmende ***\n\n";
    cout<<" *** Danke fuer Ihre Geduld ***\n";

    }

    [cpp]



  • hmm scheint nicht geklappt zu haben
    😞



  • Meine Güte, wie kann man nur so unfähig sein... 🙄

    Zuerst

    und dann
    

    , und nicht umgekehrt!
    Ausserdem würde es reichen, nur den relevanten Codeteil zu posten!



  • ja super danke für die ganz tollen antworten
    wenn ich das alles wüsste hätte ich hier keine frage gestellt

    #include <iostream.h>
    #include <stdlib.h>
    #include <iomanip.h>
    #include <stdio.h>
    
    struct speichern
    {   //int matr;
    	char Name[20];
    	char Vorname[20];	
    
    } ;
    
    void main()
    {
        speichern mit[20];
    FILE* datei;
    datei = fopen("test.txt","w");
    
    	int Auswahl,j;//J steht für den strich
    
    	do
    	{
    		cout<<"	\n\n\n				 Gruppenarbeit	\n";
    
    	for (j=0;j<80;j++)
    		cout<<"-";
    
    		cout<<"Bitte w"<<char (900)<<"hlen Sie ein Programm aus...\n\n";
    		cout<<"Programm		***Sortieralgorithmus			:	[1]\n";
    		cout<<"Programm		***Darstellung eines Dreicks		:	[2]\n";
    		cout<<"Programm		***Berechung der Determinante		:	[3]\n";
    		cout<<"Programm		***Multiplikation zweier Matrizen	:	[4]\n";
    		cout<<"Programm		***Berechung des Fl"<<char (900)<<"cheninhaltes	:	[5]\n\n\n";
    
    		cout<<"					Programmabruch!!!  	:	[0]\n";
    		cout<<"\n\n\n";
    
    		cout<<"\nWelches Programm wollen Sie nutzen??? : ";
    		cin>>Auswahl;
    
    		switch (Auswahl)
    			{
    			case 0:
    				{cout<<"\n			*** Programm beenden ***\n";
    				cout<<"\a";
    				}
    				break;
    //----------------------------------------------------------------------------------------
    
    			case 1:
    
    				{	
    	int AnzahlReihen, AnzahlSpalten, i, k, m, z;//i ist für AnzahlReihen
    	double	ZeileSpalte[10] [10], temp;	
    
    	z=1;					// Zähler in der Ausgabe als Information
    
    		cout<<endl;
    		cout<<"Programm zum Einlesen von Werten in w"<<char (900)<<"hlbar grosse Zeilen/Spalten (max. 10)"<<endl<<endl;
    
    		for (j=0;j<80;j++)
    		cout<<"-";
    
    		cout<<endl<<endl;
    		cout<<"Bitte Anzahl der Reihen eingeben?  ";
    		cin>>AnzahlReihen;
    
    		cout<<"Bitte Anzahl der Spalten eingeben? ";
    		cin>>AnzahlSpalten;
    		cout<<endl<<endl;
    
    	for (i=0;i<AnzahlReihen;i++)		
    	{	
    		cout<<"Geben Sie bitte die   "<<z++<<".   Reihe ein:  ";		
    			for (m=0;m<AnzahlSpalten;m++)		
    			{
    				cin>>ZeileSpalte[i][m];
    			}
    	}	
    	cout<<endl<<endl;	
    
    	for (j=0;j<80;j++)
    			cout<<char (196);
    
    	cout<<"Es ergibt sich folgende Sortierung:"<<endl;
    	cout<<"(von klein nach gross)"<<endl<<endl;
    
    	for (i=0;i<AnzahlReihen-1;i++)
    	{
    
    			for (k=i+1;k<AnzahlReihen;k++)
    			{
    				if (ZeileSpalte[i][0]>ZeileSpalte[k][0])
    				{
    					for (m=0;m<AnzahlSpalten;m++)
    					{
    					temp=ZeileSpalte[i][m];
    					ZeileSpalte[i][m]=ZeileSpalte[k][m];
    					ZeileSpalte[k][m]=temp;
    					}				
    				}
    			}
    	}
    	for (i=0;i<AnzahlReihen;i++)
    	{
    		cout<<endl;
    		cout<<"         -->   ";
    		for (m=0;m<AnzahlSpalten;m++)			
    			cout<<ZeileSpalte[i][m]<<"   ";			
    	}		
    	cout<<endl<<endl;
    
    break;
    
    			case 2:
    
    				{
    	int hoehe, breite,spitze;
    	int x=35,za,weite=2;
    
    	cout<<"\tProgramm zur Darstellung eines gleichschenkeligen Dreiecks"<<endl<<endl;
    
    cout<<"benutzer name?:";
    		cin>>mit[i].Name;
    
            cout<<"benutzervorname?:";
    		cin>>mit[i].Vorname;
    
    //cout<<"matrikelnummer??:";
    		//cin>>mit[i].matr;
    
    	cout<<"Bitte geben Sie die gewuenschte Breite des Dreiecks ein :	";
    	cin>>breite;
    	cout<<endl<<"Bitte geben Sie die gewuenschte Hoehe des Dreiecks ein   :	";
    	cin>>hoehe;
    
    	cout<<endl<<endl<<endl;
    
    	if (((breite>5) && (hoehe>5)) && ((breite<25) && (hoehe<25)))
    	{
    		cout<<"Wie soll denn das Dreieck dargestellt werden?"<<endl;
    		cout<<"\t\t\t\t[1 = Spitze oben][2 = Spitze unten]	";
    		cin>>spitze;
    
    fwrite(&mit[i],sizeof(mit[i]),2,datei);
    
    fclose(datei);
    
    		switch (spitze)
    		{
    			case 1:
    				{
    						cout<<setw(x);															
    						cout<<char(05)<<endl;
    						x=x--;
    
    					for (za=3; za<=hoehe; za++)
    					{
    						cout<<setw(x);
    						cout<<char(05)<<setw(weite)<<char(05)<<endl;
    						x--;
    						weite=weite+2;
    					}
    
    					cout<<setw(x);
    
    					for (za=0; za<breite; za++)
    					{
    						cout<<char(05);
    						cout<<char(00);
    					}
    					cout<<endl<<endl;
    				}	break;
    
    			case 2:
    				{
    					x=x-breite;
    					cout<<setw(x);
    
    					for(za=1; za<=breite; za++)
    					{
    						cout<<char(05);
    						cout<<char(00);
    					}
    
    					cout<<endl;
    					x++;
    
    					for (za=3; za<=hoehe; za++)
    					{
    						cout<<setw(x);
    						cout<<char(05)<<setw((breite*2)-weite-2)<<char(05)<<endl;
    						x++;
    						breite--;							
    					}
    
    					cout<<setw(34)<<char(05)<<endl;
    
    				}	break;
    			default:
    				{
    					cout<<"Leider haben sie einen unzulässigen wert eingegeben"<<endl;
    				}
    		}
    	}
    	else
    	{
    		cout<<"Leider haben sie einen unzulässigen wert eingegeben"<<endl;
    		cout<<"Hier fehlt noch ein sprung zurück zum Start";
    	}
    
    }
    				break;
    
    		}
    		}
    
    	}	
    		while (Auswahl != 0);
    
    	cout<<"\n		  	  *** Programmende ***\n\n";
    	cout<<"		     *** Danke fuer Ihre Geduld ***\n";
    
    }
    


  • also ich hab nicht wirklich ahnung von der ganzen materie

    also ich hab die folgende struktur
    :

    struct speichern 
    { //int matr; 
    char Name[20]; 
    char Vorname[20]; 
    
    } ;
    

    die variablen werden dann hier eingegeben:

    cout<<"benutzer Name?:"; 
    cin>>mit[i].Name; 
    
    cout<<"Benutzer Vorname?:"; 
    cin>>mit[i].Vorname; 
    
    //cout<<"Matrikelnummer??:"; 
    //cin>>mit[i].matr;
    

    so läuft es und die ersten zwei variablen werden auch gespeichert nehme
    ich jetzt die dritte mit rein bekomme ich keine fehlermeldungen aber das programm stürzt immer ab.



  • Nexus schrieb:

    Meine Güte, wie kann man nur so unfähig sein... 🙄

    Zuerst

    und dann
    

    , und nicht umgekehrt!
    Ausserdem würde es reichen, nur den relevanten Codeteil zu posten!

    wenn ich mir sicher währe das es genau an dem cod teilen liegt dann hätte ich die auch einzeln gepostet ich weiß es aber nicht bzw. denke das es auch durchaus an etwas anderem liegen könnte.



  • struct speichern    // das struct...
    { 
       int matr;
       char Name[20];
       char Vorname[20];
    };
    
    // die eingabe
    cin >> mit[i].matr;
    cin.getline(mit[i].Name, 20);
    cin.getline(mit[i].Vorname, 20);
    

    was soll daran nicht funktioneren?
    natürlich iostream includen und auf den namespace achten...

    der fehler muss woanders liegen



  • nina1980 schrieb:

    ja super danke für die ganz tollen antworten
    wenn ich das alles wüsste hätte ich hier keine frage gestellt

    nina1980 schrieb:

    mein problem ist das das untere programm so läuft und die strucktur beim starten des 2 programm teils auch läuft und speichert wenn ich jetzt aber die struktur erweitern will also die ausgeblendete variable in der strucktur und die 2 dazugehörigen zeilen weiter unten aktiviere bekomme ich vom compieler keinen fehler aber das programm stürzt immer ab worann kann das liegen ich komme schon seit stunden nicht weiter und weiß nicht was ich noch machhen soll
    und montag muss das fertig sein.

    Das nenne ich keine Frage.

    Nina1980 schrieb:

    wenn ich mir sicher währe das es genau an dem cod teilen liegt dann hätte ich die auch einzeln gepostet ich weiß es aber nicht bzw. denke das es auch durchaus an etwas anderem liegen könnte.

    Wie wärs, wenn du dich selber ein bisschen bemühen würdest? Wir haben es hier nicht so gerne, wenn man kommt und sagt "Hallo, in meinem 233-zeiligen Programm ist ein Fehler, bitte sucht ihn". Du solltest eventuell mal aktuell Header einbinden und int main() schreiben, wobei das kaum die Fehlerursache ist.



  • Skym0sh0 schrieb:

    struct speichern    // das struct...
    { 
       int matr;
       char Name[20];
       char Vorname[20];
    };
    
    // die eingabe
    cin >> mit[i].matr;
    cin.getline(mit[i].Name, 20);
    cin.getline(mit[i].Vorname, 20);
    

    was soll daran nicht funktioneren?
    natürlich iostream includen und auf den namespace achten...

    der fehler muss woanders liegen

    ja genau das hab ich mir auch gedacht !!!!!!!!!!!!!
    da ich aber nicht weiß wo der fehler liegt hab ich zuerst alles gepostet!!!!!!!!!!!!!
    und da der fehler nur auftritt wenn ich die "matr" variable mit reinnehme
    hab ich das noch mal einzeln gepostet !!!!!!

    weil ich darauf ja hingewiesen wurde !!!!!!!

    also der compiler zeigt mir auch keine fehler oder warnungen aber das programm
    stürzt immer im laufen ab.



  • Nexus schrieb:

    nina1980 schrieb:

    ja super danke für die ganz tollen antworten
    wenn ich das alles wüsste hätte ich hier keine frage gestellt

    nina1980 schrieb:

    mein problem ist das das untere programm so läuft und die strucktur beim starten des 2 programm teils auch läuft und speichert wenn ich jetzt aber die struktur erweitern will also die ausgeblendete variable in der strucktur und die 2 dazugehörigen zeilen weiter unten aktiviere bekomme ich vom compieler keinen fehler aber das programm stürzt immer ab worann kann das liegen ich komme schon seit stunden nicht weiter und weiß nicht was ich noch machhen soll
    und montag muss das fertig sein.

    Das nenne ich keine Frage.

    Nina1980 schrieb:

    wenn ich mir sicher währe das es genau an dem cod teilen liegt dann hätte ich die auch einzeln gepostet ich weiß es aber nicht bzw. denke das es auch durchaus an etwas anderem liegen könnte.

    Wie wärs, wenn du dich selber ein bisschen bemühen würdest? Wir haben es hier nicht so gerne, wenn man kommt und sagt "Hallo, in meinem 233-zeiligen Programm ist ein Fehler, bitte sucht ihn". Du solltest eventuell mal aktuell Header einbinden und int main() schreiben, wobei das kaum die Fehlerursache ist.

    Ja das ist mir schon klar wenn ich nicht seit heute morgen um 7 an dem einn blöden fehler sitzen würde dann hätte ich auch nicht gefragt sorry ich behmühe mich jetzt seit c. 12 stunden und ich komme keinen deut weiter.
    Das programm war heute morgen um sieben schon genauso weit wie jetzt ich mittlerweile hab ich allen möglichen blödsinn ausprobiert und das programm ist mir bestimmt 80 mal abgestürzt!!!



  • switch (Auswahl)
    {
    ...
    case 1
    {
    ...
    } <<<------------------ das hier fehlt bei dir
    break;
    case 2
    ...
    }
    

    Wenn du mehr funktionen verwendest, wird das programm besser strukturiert.
    Daduch besser lessbar.



  • OK, dein Programm ist strukturell soweit o.k.
    Code::Blocks 8.02 schluckt alles ohne Fehler und Warnungen.

    Wie sieht es mit anderen Arten von Fehlern aus?
    Werden Arrays (fangen bei 0 an!) über Grenzen hinaus überschrieben?

    Manchmal hilft es, TRACE-Funktionen einzubauen oder zu Debuggen, damit man logische Fehler findet.

    ZeileSpalte[10][10] Reichen diese 10*10 wirklich aus? Wo wird die Begrenzung auf Elemente 0 ... 9 gecheckt? usw.

    Einfach mal alles um Faktor 10 erhöhen und schauen, ob der logische Fehler dann verschwindet.

    Variablen TRACEN.



  • Prüf mal welchen Wert die Variable "i" hat wenn die entsprechende Codezeile erreicht wird. Sie wird nirgendwo initialisiert.


Anmelden zum Antworten