Suche Hilfe für ein kleines, simples Programm :)



  • Hallo miteinander..

    Ich suche jemanden, der lediglich ein Grundwissen von C++ hat.

    Ich habe selber gerade erst damit angefangen aber mir fehlt leider einfach die Zeit, um mich ausgiebiger damit zu befassen 😞

    Dennoch möchte ich gerne ein kleines Programm schreiben, nur wie gesagt, fehlen mir jegliche Kenntisse.

    Das Programm ist wirklich simpel und sollte für jemanden mit ein wenig Programmierkenntnissen in wenigen Minuten zu realisieren sein.

    Also fals jemand von euch gerade Langeweile hat, würde ich mich wirklich freuen, wenn er mir den Quellcode dafür hier in einer Antwort posten könnte 🙂

    Also komme ich mal zum Punkt und beschreibe mal, was das Programm genau machen sollte.

    Als erstes sollte eine Bildschirmausgabe mit einer Frage und mehreren Antwortmöglichkeiten stattfinden. Hier ein Beispiel, welches ihr auch in dem Quelltext verwenden könnt. (Kann mir das dann ja entsprechend umschreiben. Das bekomme ich gerade noch hin 🙂 )

    Wie alt bist du?

    [1] Zwischen 18 und 25 Jahre
    [2] Zwischen 25 und 35 Jahre
    [3] Zwischen 35 und 45 Jahre
    [4] älter als 45 Jahre
    [5] Bin mir nicht sicher 😛

    Nach dieser Anzeige soll das Programm dann logischerweise auf eine Eingabe warten. 1-5

    Nun kommt der interessante Teil.

    Wenn die 1 gedrückt wird, soll sich das Programm einen Code merken.
    Z.B. bei 1=A1 bei 2=A2 usw.. danach soll der Bilschirm gelöscht und eine neue Frage angezeigt werden.

    Wieviele Geschwister hast du?

    [1] Einen Bruder
    [2] Eine Schwester
    [3] Zwei Geschwister
    [4] Mehr als zwei Geschwister
    [5] Keine Geschwister

    [B] Zur vorherigen Frage zurück springen.

    Nun soll das Programm wiederum einen Code je nach Antwort erstellen und diesen mit einem Leerzeichen hinter den ersten hängen.
    Sagen wir der Code hier ist 1=G1, 2=G2 usw.. wenn ich also auf Frage 1 mit 2 geantwortet habe und auf Frage 2 mit 5, würde der Code Folgendermaßen aussehen:

    A2 G5

    Wenn ich B zum zurückspringen drücke, muß natürlich meine erste Eingabe von Frage 1 wieder gelöscht werden..

    Das war eigentlich schon alles.. Das Programm, welches ich erstellen möchte, wird so ca. 25 Fragen beinhalten, also darf beim zurückspringen einer Frage, natürlich nicht der gesamte Code gelöscht werden, sondern nur der zuletzt eingegebene..

    Am Ende soll der fertige Code dann noch in einer Textdatei gespeichert werden.

    Wenn ich also einen Quellcode mit 3 Fragen hätte, glaube ich, das ich mir daraus den Verlauf der weiteren 22 Fragen zusammen basteln könnte 🙂

    Also fals sich jemand von euch die Zeit nehmen würde und mir einen entsprechenden Quelltext geben könnte, wäre ich echt hoch erfreut!!

    Vielen Dank schonmal im Voraus.

    Mit freundlichen Grüßen,

    Tanuka



  • hi
    sieht extrem nach einer hausaufgabe, oder einer projektaufgabe aus...

    versuch dich dochmal selber dran, dann helfen die anderen sicher 🙂



  • Hi,

    nein es ist rein privat.. Ich bin mit C++ leider nur bis zur Bildschirmausgabe und umrechnung von Dezimal- in Hexadezimalzahlen gekommen. Danach hatte ich einfach keine Zeit mehr um mich da weiter mit zu befassen..

    MfG,

    Tanuka



  • Hi,
    aber es macht doch gar nicht soviel Spaß code nur umzuschreiben!
    Es gibt doch sicher jede menge open Source quizzes die du umschreiben kannst.
    Mach eine Funktion Frage mit 6 string Parametern, ungefähr so:

    #include <iostream>
    #include <conio.h>
    #include <string>
    using namespace std;
    
    int FrageFunktion(string Frage, string Antwort1, string Antwort2,string Antwort3,string Antwort4,string Antwort5, int RichtigeAntwort);
    
    int main(){
    
    cout << "Das Quiz";
    
    FrageFunktion("Wieviele Huehner leben auf einer Farm\?","Weis es nicht!", "So 10-1000000","hmmm 3", "blablabla","Hoi Hoi",2);
    
    getch();
    return 0;
    }
    
    int FrageFunktion(string Frage, string Antwort1,
        string Antwort2,string Antwort3,string Antwort4,
        string Antwort5, int RichtigeAntwort){
    
    cout << Frage << endl << endl;
    
    cout << "[1]"<<Antwort1 << endl;
    cout << "[2]"<<Antwort2 << endl;
    cout << "[3]"<<Antwort3 << endl;
    cout << "[4]"<<Antwort4 << endl;
    cout << "[5]"<<Antwort5 << endl;
    
    int FrageAntwort=0;
    cin >> FrageAntwort;
    
    if(FrageAntwort==RichtigeAntwort){
    cout << "Richtig";}
    else{
    cout << "Trottel";}
    
    return 0;
    
    };
    

    Aber den Rest schreibst du dir selber!

    cu max



  • Hi, habe gerade deinen Post zu ende gelesen 😃

    Jetzt hast du deine Frage Funktion,
    aber das mit dem in die Datei schreiben und weiterer relativ
    anstrengenden Kram wird dir sicher keiner machen!

    Das Programm, welches ich erstellen möchte, wird so ca. 25 Fragen beinhalten, also darf beim zurückspringen einer Frage, natürlich nicht der gesamte Code gelöscht werden, sondern nur der zuletzt eingegebene..

    Klingt echt nach einer Hausaufgabe

    cu max



  • Mir war gerade langweilig und habe folgenden Code geschrieben:
    (Hat bei mir auch funktioniert wie gewollt!)

    //---------------------------------------------------------------------------
    
    #include "iostream.h"
    #include "conio.h"
    
    //---------------------------------------------------------------------------
    int getkey( char k, char l, char c[2] );
    
    int fragen( int n, char str[2][2] );
    
    int main()
    {
    	char str[2][2];	// der Code der erstellt wird
    	char txt[5];	// der komplette Code in einem char zum Speichern und Ausgeben
    	char k = 0;		// die gedrueckte Taste
    
    	do
    	{
    		clrscr();	// Bildschirm loeschen
    
    		int n = 0;	// erste Frage
    
    		do
    		{
    			n += fragen( n, str );	// je nach Rueckgabewert zur naechsten oder zur
    									// vorherigen Frage springen
    			cout << endl;
    		} while( n < 2 );			// wenn alle Fragen durch sind
    
    		int z = 0;					// erstes Zeichen
    
    		for( int a = 0; a < 2; a++ )	// Code fuer jede Frage einzeln durchlaufen
    		{
    			for( int b = 0; b < 2; b++ )	// die einzelnen Zeichen des Codes
    			{
    				txt[z] = str[a][b];				// Zeichen in einen String schreiben
    				z++;							// naechstes Zeichen
    			}
    			txt[z] = ' '; 					// Code ist am Ende, also Leerzeichen
    											// einfuegen
    			z++;							// naechstes Zeichen
    		}
    
    		cout << "Loesung: " << txt << endl;	// kompletten Code ausgeben
    
    		cout << "\n\n[E] zum Beenden druecken." << endl;	// Hinweis zum Beenden
    		cout << "Eine andere Taste druecken, um an den Anfang zu springen" << endl;
    
    		cin >> k;
    	} while( k != 'E' && k != 'e' );		// Wenn nicht 'E' oder 'e' gedrueckt wurde
    											// beginne von vorne
    
    	FILE *file;							  	// Dateihandle
    
    	file = fopen( "d:\\text.txt", "w" );	// Datei oeffnen / erstellen
    
    	if( !file )								// Wenn das Handle ungueltig ist
    	{
    		// Gebe Hinweis aus und beende
    		cout << "\n\nDie Datei konnte nicht beschrieben werden." << endl;
    		return 0;
    	}
    
    	fwrite( txt, sizeof( txt ), 1, file );	// schreibe Code in die Datei
    	fclose( file );							// schliesse die Datei
    
    	cout << "\n\nDie Datei wurde erstellt!";	// Hinweis ausgeben
    
    	return 0;								// beenden
    }
    //---------------------------------------------------------------------------
    
    int getkey( char k, char l, char c[2] )
    {
    	int res;							// Rueckgabewert
    
    	if( k == 'B' || k == 'b' )			// Wenn 'B' oder 'b' gedrueckt wurde
    	{
    		res = -1;							// Rueckgabewert = -1, um zur vorherigen
    											// Frage zu springen
    	}
    	else								// andernfalls
    	{
    		c[0] = l;							// Schreibe den Buchstaben als erstes
    		c[1] = k;							// und die Auswahl als zweites
    
    		res = 1;							// Rueckgabewert = 1, um zur naechsten
    											// Frage zu springen
    	}
    
    	return( res );
    }
    
    int fragen( int n, char str[2][2] )
    {
    	char k = 0;						// die gedrueckt Taste
    
    	char l = ' ';					// der gewunschte Buchstabe fuer den Code
    
    	if( n == 0 )
    	{
    		cout << "1. Wie alt bist du?" << endl;
    		cout << "[1]Zwischen 18 und 25 Jahre" << endl;
    		cout << "[2] Zwischen 25 und 35 Jahre" << endl;
    		cout << "[3] Zwischen 35 und 45 Jahre" << endl;
    		cout << "[4] älter als 45 Jahre" << endl;
    		cout << "[5] Bin mir nicht sicher :P" << endl;
    
    		l = 'A';
    	}
    
    	else if( n == 1 )
    	{
    		cout << "2. Wieviele Geschwister hast du?" << endl;
    		cout << "[1] Einen Bruder" << endl;
    		cout << "[2] Eine Schwester" << endl;
    		cout << "[3] Zwei Geschwister" << endl;
    		cout << "[4] Mehr als zwei Geschwister" << endl;
    		cout << "[5] Keine Geschwister" << endl;
    		cout << "[B] zur voherigen Frage zurueckspringen" << endl;
    
    		l = 'G';
    	}
    
    	do
    	{
    		// lasse solange eine Taste eingeben, bis es eine Taste von 1-5 oder 'B' oder 'b'
    		// war
    		cin >> k;
    	} while(	k != '1' && k != '2' && k != '3' && k != '4' && k != '5' &&
    				k != 'B' && k != 'b' );
    
    	return( getkey( k, l, str[n] ) );	// gebe unser herausgefundenes Ergebnis zurueck
    }
    

    Muesste eigentlich funktionieren.. Musst du natuerlich noch anpassen...
    Und einige Sachen koennen auch bestimmt noch vereinfacht werden..
    MfG Aoeke



  • Uff.. das sieht doch etwas komplizierter aus, als erwartet 😃

    Da muß ich erstmal schauen, ob ich da durch blicke..
    Sollte der Code denn, so wie er oben steht, zu kompilieren gehen oder fehlen da noch Angaben?

    Auf jeden Fall schonmal vielen Dank für deine Bemühung!!

    Werde es nacher, wenn ich wieder zu Hause bin, gleich mal ausprobieren 🙂

    Mit freundlichen Grüßen,

    Tanuka



  • Also ich habe meinen Code direkt aus meinem Editor herauskopiert, also muesste er (theoretisch) auch zu kompilieren sein...
    MfG Aoeke



  • Soooo.. nach viel gefummel habe ich deinen Quellcode nun endlich kompiliert bekommen *freu*

    Irgendwie war da ein Fehler mit dem clrscr Befehl.. Naja, habe den einfach mal entfernt und dann lief es..

    Funktioniert aber ansonsten echt super das Programm!! Bin wirklich beeindruckt 🙂

    Nun muß ich nur noch herausfinden, wie du den Code aufgebaut hast.. Wenn ich das richtig sehe, hast du im oberen Abschnitt die Definitionen festgelegt und im unternen die Fragen und Antworten mit den entsprechenden Codes oder?

    Nochmals vielen Dank für den Code 🙂

    Mit freundlichen Grüßen,

    Tanuka



  • Um dir ein bisschen beim analysieren zu helfen, folgendes:

    char str[2][2];	// der Code der erstellt wird
    

    In diesen char-Array wird der Code geschrieben. Die erste zwei ist die Anzahl der Fragen. Die zweite ist die Laenge des Codes, der pro Frage erstellt werden soll.

    char txt[5];	// der komplette Code in einem char zum Speichern und Ausgeben
    

    Hier wird der Code komplett hineingeschrieben. Die 5 steht fuer die Laenge des gesamten Codes. Hast du jetzt 25 Fragen, der Code ist jeweils 2 Zeichen lang und die Codes sollen mit jeweils einem Leerzeichen getrennt werden, koenntest du das wie folgt rechnen:

    25 /*Anzahl Fragen*/ * 2 /*Laenge des Codes*/ + 24 /*Anzahl Leerzeichen insgesamt [Anzahl Fragen-1]*/
    

    Heisst, es muesste in dem Feld dann '74' stehen.

    int n = 0;	// erste Frage
    

    'n' gibt immer den Index der Frage an, die gerade gestellt wird.

    do
    {
    	n += fragen( n, str );	// je nach Rueckgabewert zur naechsten oder zur
    					// vorherigen Frage springen
    	cout << endl;
    } while( n < 2 );
    

    Hier werden alle Fragen abgearbeitet. Wenn bei einer 'b' gedrueckt wurde, liefert 'fragen(...)' -1 zurueck. Das heisst, dass da herauskommen wuerde:

    n += -1;
    

    Heisst, das 'n' um eins vermindert wird, und die vorherige Frage gestellt wird. Wird etwas anderes getippt, wird +1 zurueckgegeben und zur naechsten Fragen gesprungen.

    // Hier anstatt der zwei wieder die Anzahl der Fragen
    for( int a = 0; a < 2; a++ )
    {
    	for( int b = 0; b < 2; b++ )
    	{ // Hier anstatt der zwei die Laenge eines Codes
    		txt[z] = str[a][b];
    		z++;
    	}
    	txt[z] = ' ';
    	z++;
    }
    

    ...

    // hier wird je nach Index der Frage die richtige Frage gestellt
    if( n == 0 )
    {
    	cout << "1. Wie alt bist du?" << endl;
    	cout << "[1]Zwischen 18 und 25 Jahre" << endl;
    	cout << "[2] Zwischen 25 und 35 Jahre" << endl;
    	cout << "[3] Zwischen 35 und 45 Jahre" << endl;
    	cout << "[4] älter als 45 Jahre" << endl;
    	cout << "[5] Bin mir nicht sicher :P" << endl;
    	l = 'A'; // erstes Zeichen des Codes, der fuer diese Frage erzeugt werden soll
    }
    

    Der Rest ist eigentlich _relativ_ 😃 einfach zu verstehen...
    MfG Aoeke



  • Ok, das ist schonmal sehr hilfreich. Nun habe ich bloß folgendes Problem.

    Der Code der nach jeder Frage erstellt werden soll, hat nicht immer gleich viele Zeichen. Bei einigen Fragen besteht er aus 2 und bei anderen Teilweise aus 4 oder sogar mehr Stellen. Dazu kommt noch, das, soviel ich in meiner Planlosigkeit aus dem Code deuten kann, der Code aus einem deklarierten Buchstaben und der vom Benutzer eingegebnen Zahl besteht. Also derzeitig wird ja z.B. bei Frage 1 mit Antwort 1 der Code A1 erstellt aber es sollte z.B. AC5 bei rauskommen. Stellt sich mir also die Frage, wie lässt sich das nun bewerkstelligen?
    Wäre nett, wenn du mir bei dieser Problematik noch etwas unter die Arme greifen könntest 🙂

    Mit freundlichen Grüßen,

    Tanuka



  • Das macht die Sache allerdings komplizierter... Also weisst dann keine Regelmaessigkeit bei verschiedenen Fragen auf? Da faellt mir dann jetzt spontan auch nichts ein... Aber warum machst du das nicht einfach so? 😃 Ich meine 25 Fragen.. Das Alphabet hat 26 Buchstaben... Passt doch 😃 Also warum nur noch komplizierter machen??? 😃
    MfG Aoeke



  • Tja, das Problem ist, das diese Fragen unt Antwortmöglichkeiten mit dem entsprechenden Code schon existieren. Es gibt auch schon ein Programm, welches diesen erstellten Code zurück in den Klartext umwandelt. Also er macht aus dem code dann wieder die Fragen, mit den gegebenen Antworten. Darum kann ich mir den Code der erstellt wird, leider nicht selber aussuchen 😞

    MfG,

    Tanuka



  • Warum muß man denn überhaupt angeben, wie lang der Code sein muß?
    Denn die Länge des Codes kann sogar bei einer Frage variieren. Je nach gegebener Antwort kann er 2-5 Stellen haben..

    MfG,

    Tanuka



  • Oben schreibst du noch es wäre ein Hobbie Projekt, jetzt
    schreibst du du must dich an eine Vorgabe halten.
    Sehr glaubhaft.



  • Ok, also nochmal im Klartext. Dieser Code wird in unserer "Community" benutzt, um auf kleinstem Raum viel über sich auszusagen. So kann man diesen Code z.B. als Signatur an seine Postings hängen und andere können diesen Code dann mit hilfe eines Decoders wieder in Klartext übersetzten und erfahren damit einiges über denjenigen, dem der Code gehört. Deshalb ist der Code sowie die Fragen und Antworten festgelegt. Das Problem ist nun, das es aber noch kein Codierer für dieses Code gibt. Sprich, man muß in mühsamer Arbeit sich seinen Code manuell zusammenstellen, indem man bei jeder Frage nachschaut, welcher Code für welche Antwort steht. Das dauerte bei mir das erste mal gute 2 Stunden. Dadurch das dieses Vorgehen nun natürlich mit etwas Arbeit verbunden ist, schrecken viele Leute davor zurück, sich diesen Code zusammen zu basteln. Aus diesem Grund kam ich auf die Idee, das man dafür doch, genau wie es ein Decodierprogramm gibt, auch ein Codierprogramm schreiben könnte.

    MfG,

    Tanuka



  • Dann versuch es mal so:

    //---------------------------------------------------------------------------
    
    #include "iostream.h"
    #include "conio.h"
    #include "string.h"
    
    //---------------------------------------------------------------------------
    typedef struct
    {
    	char *code;
    } s_code;
    
    const int anzahl = 2;						// Anzahl der Fragen
    
    // hier stehen alle Codes, fuer alle moeglichen Antworten drin
    s_code alle_codes[anzahl][5] =
    {
    	// Code zur 1. Frage
    	{	"A1",	"A2",	"A3",	"A4",	"A5"	},
    
    	// Code zur 2. Frage
    	{	"C1",	"C2",	"C3",	"C4",	"C5"	}
    
    	// ...
    };
    
    s_code code[anzahl];						// der Code, der erstellt werden soll
    
    int fragen( int n );						// diese Funktion stellt die Fragen
    
    int main()
    {
    	char *txt = "";							// der komplette Code in einem char zum
    											// Speichern und Ausgeben
    	char k = 0;								// die gedrueckte Taste
    	char trennzeichen[1];		  			// das Trennzeichen zwischen den einzelnen
    											// Codes
    
    	trennzeichen[0] = ' ';
    
    	do
    	{
    		clrscr();							// Bildschirm loeschen
    
    		int n = 0;							// erste Frage
    
    		do
    		{
    			int r = fragen( n );			// stelle die Frage und schreibe den
    											// Rueckgabewert in eine Variable
    
    			if( r == 0 )					// wenn '0' zurueckgegeben wurde
    			{
    				cout << endl << "Moechten Sie wirklich beenden? J/N" << endl;
    				cin >> k;
    
    				if( k == 'J' || k == 'j' ) // wenn 'J' oder 'j' eingegeben wurde
    				{
    					return 0;						// beende das Programm
    				}
    			}
    			else							// andernfalls
    			{
    				n += r;							// springe zur naechsten
    												// oder zur vorherigen Frage
    			}
    			cout << endl;
    		} while( n < anzahl );				// wenn alle Fragen durch sind
    
    		cout << "Loesung: ";
    
    		for( int a = 0; a < anzahl; a++ )	// Code fuer jede Frage einzeln durchlaufen
    		{
    			// den aktuellen Code zu der Variable fuer den kompletten Code hinzufuegen
    			txt = strncat( txt, code[a].code, strlen( txt ) + strlen( code[a].code ) );
    
    			// wenn wir nicht beim letzten Code sind
    			if( a != anzahl-1 )
    			{
    				// fuege noch das Trennzeichen ein
    				txt = strncat( txt, trennzeichen, strlen( txt ) + 1 );
    			}
    		}
    
    		cout << txt << endl;				// den Code ausgeben
    
    		cout << "\n\n[E] zum Beenden druecken." << endl;	// Hinweis zum Beenden
    		cout << "Eine andere Taste druecken, um an den Anfang zu springen" << endl;
    
    		cin >> k;
    	} while( k != 'E' && k != 'e' );		// Wenn nicht 'E' oder 'e' gedrueckt wurde
    											// beginne von vorne
    
    	FILE *file;							  	// Dateihandle
    
    	file = fopen( "d:\\text.txt", "w" );	// Datei oeffnen / erstellen
    
    	if( !file )								// Wenn das Handle ungueltig ist
    	{
    		// Gebe Hinweis aus und beende
    		cout << "\n\nDie Datei konnte nicht beschrieben werden." << endl;
    		return 0;
    	}
    
    	fwrite( txt, strlen( txt ), 1, file );	// schreibe Code in die Datei
    	fclose( file );							// schliesse die Datei
    
    	cout << "\n\nDie Datei wurde erstellt!";	// Hinweis ausgeben
    
    	return 0;								// beenden
    }
    //---------------------------------------------------------------------------
    
    int fragen( int n )
    {
    	char k = ' ';							// die gedrueckt Taste
    
    	if( n == 0 )							// die richtige Frage stellen
    	{
    		cout << "1. Wie alt bist du?" << endl;
    		cout << "[1] Zwischen 18 und 25 Jahre" << endl;
    		cout << "[2] Zwischen 25 und 35 Jahre" << endl;
    		cout << "[3] Zwischen 35 und 45 Jahre" << endl;
    		cout << "[4] älter als 45 Jahre" << endl;
    		cout << "[5] Bin mir nicht sicher :P" << endl;
    	}
    
    	else if( n == 1 )
    	{
    		cout << "2. Wieviele Geschwister hast du?" << endl;
    		cout << "[1] Einen Bruder" << endl;
    		cout << "[2] Eine Schwester" << endl;
    		cout << "[3] Zwei Geschwister" << endl;
    		cout << "[4] Mehr als zwei Geschwister" << endl;
    		cout << "[5] Keine Geschwister" << endl;
    		cout << "[B] zur voherigen Frage zurueckspringen" << endl;
    	}
    
    	do
    	{
    		// lasse solange eine Taste eingeben, bis es eine Taste von 1-5 oder 'B' oder 'b'
    		// war
    		cin >> k;
    
    		// wenn bei der ersten Frage 'B' oder 'b' gedrueckt wurde
    		if( k == 'b' && n == 0 || k == 'B' && n == 0 )
    		{
    			// nicht gueltig, deshalb setzen wir 'k' auf '0'
    			k = '0';
    		}
    	} while(	k != '1' && k != '2' && k != '3' && k != '4' && k != '5' &&
    				k != 'B' && k != 'b' && k != 'e' && k != 'E' );
    
    	if( k == 'e' || k == 'E' )
    	{
    		return 0;
    	}
    	else if( k == 'B' || k == 'b' )	 		// wenn 'B' oder 'b' gedrueckt wurde
    	{
    		return -1;								// gebe -1 zurueck
    	}
    	else									// andernfalls
    	{
    		int ascii = int( k ) - 49;				// schreibe den Asciiwert der
    												// gedrueckten Taste in eine Variable
    		code[n].code = alle_codes[n][ascii].code;	// schreibe den Code
    		return 1;								// gebe 1 zurueck
    	}
    }
    


  • Community? Internet? Links? Gib doch einfach dazu mal Infos 😉



  • Hi C-O-M-M-A-N-D-E-R,

    ich werde hier keine Links oder Aussagen darüber angeben, da wir ziemlichen Wert auf anonymität legen, sorry.

    MfG,

    Tanuka



  • Hi Aoeke,

    dieser Quellcode ist sogar für mich schon relativ verständlich 🙂

    Leider funktioniert er aber nicht so richtig..

    Nach beantwortung der beiden Fragen, erscheint auf dem Bildschirm nur:

    Lösung

    Dahinter wird aber kein Code angegeben und es wird auch keine Datei erstellt 😞

    PS. Was genau bewirkt diese Zeile am Ende des Quellcodes?

    int ascii = int( k ) - 49;

    Würde gerne nachvollziehen können, was die -49 da soll 😃

    Herzliche Grüße,

    Tanuka



  • 1. Also wenn ich mir eine neue Konolenanwendung erstelle, und den Code, den ich als letztes gepostet habe ohne Aenderung einfuege und anschliessend kompiliere, laeuft das Programm. Auch wird die Loesung angezeigt und nach dem Druecken der 'E'-Taste, wird auch die Datei erstellt?????

    2.

    Tanuka schrieb:

    PS. Was genau bewirkt diese Zeile am Ende des Quellcodes?

    int ascii = int( k ) - 49;

    Das ist kompliziert zu erklaeren... 49 ist der Ascii-Wert fuer das Zeichen '1'. Da wir die '1' naemlich bloss als Zeichen und nicht als Zahl in einer Variable haben (naemlich in der Variablen 'k'), muessen wir das ja erst in eine Zahl umwandeln. Naja und da die Zahl, die wir brauchen, wenn '1' gedrueckt wurde '0' sein soll, und fuer '2' '1', ..., ziehen wir von dem Ascii-Code des Zeichens (fuer '1' = 49, fuer 2 = '50'...) einfach 49 ab, um so auf die gewollte Zahl zu kommen...
    Das ist ziemlich dumm erklaert, aber vielleicht hast du es ja sogar verstanden...
    MfG Aoeke

    PS. Welchen Compiler verwendest du?


Anmelden zum Antworten