Seite 1 von 2

Brauche Übersetzungshilfe vom Programm C zum Programm Python

Verfasst: Dienstag 11. Mai 2010, 08:02
von pythonkönig24
Dieses Programm wurde geschrieben im Programm C,kann das jemand in das Programm Python übersetzen bitte.Notiz: Es ist keine Hausaufgabe,ich komme mit dem Programm C einfach nicht klar :((

Code: Alles auswählen

#include<stdio.h>
int yesno(char[]);
void intro(void);
void cspiel(void);
void leerepuffer(void);

int main(void){
  int weiterspielen=1;
  printf("\n");
  printf("\n");
  printf("\n");
  printf("\n");
  printf("\n");
  printf( "            Z A H L E N R A T E N\n"); 
  printf( "            =====================\n"); 
  printf("\n");
  while (weiterspielen) {
      cspiel(); 
      weiterspielen = yesno("\nNoch ein Spiel?"); 
  }
  printf("\n");
  printf("Ich hoffe, du hattest Spass mit mir!\n");
  return (0);
}
void leerepuffer(void){
  while(getchar() != '\n');
}
int yesno(char prompt[] ){
  char taste;
  printf("%s (y/n)",prompt);
  scanf("%c",&taste);
  leerepuffer();

    if (taste=='y')
      return 1;
    else
      return 0;  
}
void intro(void){
	char irgendwas;
  	printf("\n");
	printf("\n");
	printf("\n");
	printf("            Denke dir eine Zahl zwischen 1 und 100 aus.\n"); 
	printf("            Ich werde versuchen, diese Zahl zu erraten.\n"); 
	printf("\n");
	printf("	    Gib ein:\n");
	printf("	     + , wenn mein Tipp zu klein ist.\n"); 
	printf("             - , wenn mein Tipp zu gross ist.\n");
	printf("             = , wenn mein Tipp stimmt. \n");
	printf("\n");
	printf("	    Hast du deine Zahl? Dann druecke die Eingabetaste!\n");
	scanf("%c",&irgendwas); 
	/*leerepuffer();*/
}
void cspiel(void){
  int unten=1;
  int oben=100;
  int erraten = 0; 
  int versuche = 0; 
  int tipp;
  char antwort;
  intro(); 
  while (! erraten){
    versuche = versuche + 1; 
    tipp = (unten + oben) / 2; 
    printf("Ist deine Zahl %d? ",tipp); 
    scanf("%c",&antwort); 
    leerepuffer();
    if (antwort == '+'){ 
	unten = tipp+1; 
    }
    else if (antwort == '-'){
	 oben = tipp-1; 
    }
    else if (antwort == '='){
	 erraten = 1; 
    }
    else{
	 printf("Das ist eine ungueltige Antwort!\n"); 
	 printf("Antworte mit +/=/-\n"); 
	 versuche = versuche - 1; 
    }    
    if (unten == oben){ 
  	 tipp = unten; 
         erraten = 1; 
    }
  }
  printf("Ich habe mit %d Fragen herausgefunden:",versuche); 
  printf("\nDeine Zahl ist %d!",tipp); 
}

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 08:17
von Darii
Warum sollte das irgendwer machen? Wenn du eine konkrete Frage hast, frag.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 08:18
von ms4py
Vielleicht zeigst du uns ja mal deine Ansätze :) Das sind wirklich einfachste Grundlagen (in beiden Sprachen).

Und verwende in Zukunft Code-Tags oder den Pastebin, damit der Quelltext sauber formattiert wird.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 08:46
von /me
pythonkönig24 hat geschrieben:Dieses Programm wurde geschrieben im Programm C,kann das jemand in das Programm Python übersetzen bitte.
Es ist meist nicht sinnvoll, die Zeilen 1:1 zu übertragen, da Python andere Konzepte und Möglichkeiten hat als C.

Versuch einfach ein Python-Programm mit der gewünschten Funktionalität selber zu entwickeln. Solltest du mit dieser Aufgabe Schwierigkeiten haben, dann schau dir das Python-Tutorial an das du auf der Seite mit der Python-Dokumentation findest.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 09:59
von hendrikS
Der C Quelltext enthält noch jede Menge Fehler und lässt sich nicht kompilieren.
Ich würde immer vermeiden so was einzustellen.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 10:11
von Darii
hendrikS hat geschrieben:Der C Quelltext enthält noch jede Menge Fehler und lässt sich nicht kompilieren..
Nein, das liegt nur am Code-Highlighter. & -> &

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 10:15
von Hyperion
Vielleicht könnte man dem Schüler noch sagen, dass es dazu hier schon gefühlt 100 Threads zu diesem Problem gab? (Auf das Suchwort muss er schon noch selber kommen) :-D

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 10:20
von Defnull
pythonkönig24 hat geschrieben:Notiz: Es ist keine Hausaufgabe,ich komme mit dem Programm C einfach nicht klar
Bitte-macht-mir-meine-Hausaufgaben Themen sind ja schon nervig genug, aber das ist dreist.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 10:24
von Hyperion
Mich würde ja mal interessieren, wie viele Lehrer sich hier anmelden, um ihre Schüler zu "beobachten"? Wenn die so "clever" sind, nach python & forum googlen und dann hier landen, um bei Posting 1 direkt so eine Frage abzusetzen, ich meine dann sollte es doch auch Lehrer geben, die so "schlau" sind.

Speziell in diesem Fall, denn der (grottig) C-Code muss ja dann wohl irgend wie vorgegeben sein...

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 10:29
von hendrikS
Das der C code falsch dargestellt wird ist echt grützig. Ist auch in Python ein Problem.

Code: Alles auswählen

print a&b

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 11:49
von Pekh
Ich glaube ja eher, daß der C-Code im Netz gefunden wurde - beim Versuch, die Lösung zu googeln. Aber man muß ihm zugute halten, daß er sich das Forum zuvor zumindest ein bisschen angeschaut hat, sonst wüßte er nichts von der Hausaufgaben-Allergie ... :D

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 11:51
von Hyperion
Pekh hat geschrieben:Ich glaube ja eher, daß der C-Code im Netz gefunden wurde - beim Versuch, die Lösung zu googeln. Aber man muß ihm zugute halten, daß er sich das Forum zuvor zumindest ein bisschen angeschaut hat, sonst wüßte er nichts von der Hausaufgaben-Allergie ... :D
*g* aber nicht gut genug - sonst hätte er ja zig Lösungen gefunden (und das in zig Sprachen iirc :-D ) Aber ich denke auch per google sollte man das in Python finden...

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 11:59
von b.esser-wisser
Ich hab mal den 'original'-Code nach C99/Englisch portiert. (Hauptsächlich um mir zu beweisen, dass ich noch C kann :P )
http://paste.pocoo.org/show/212647/
Compiliert mit gcc -O3 -std=c99 (ich benutze gcc 4.3.3/mingw)

htdnh, Jörg
ps.: da sind natürlich keine Kommentare im Code...
edit: da war natürlich ein typo im GCC-aufruf

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 12:12
von lunar
-O3 für so ein Programm, naja ... ;)

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 12:21
von BlackJack
@lunar: ``-O3`` macht bei jedem Programm Sinn, welches man auch mit ``-Wall`` übersetzt, was man IMHO in der Regel tun sollte. Denn erst bei der Optimierung werden Datenpfade im Programm analysiert, die zu ein paar Warnungen führen können, die ohne diese Analyse nicht erkannt werden.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 12:33
von b.esser-wisser
@lunar
Ohne Optimierung ist doof ;)
.. und zwischen -Os -O2 und -O3 besteht auf dem PC zumindest größenmäßig kein Unterschied.

hth, Jörg

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 12:59
von Leonidas
Ich fordere ``-Wall`` ``-Werror`` und ``-pedantic`` ;) Wenn nicht gar noch ``-Wextra`` :)

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 13:08
von lunar
@BlackJack: Die einzige -Wall-Warnung, die von Optimierungen abhängt, ist -Warray-bounds, und die wird auch bereits mit -O2 aktiviert. -O3 ist extrem aggressiv, und hat bei den meisten Programmen eher gegenteilige Effekte.

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 13:10
von Hyperion
Na, da muss noch ein wenig was getan werden:

Code: Alles auswählen

nelson@MECL-LAP3:~/src/C/snippets$ gcc -o guessanumber -Wall -O3 -Werror -pedantic guessanumber.c 
cc1: warnings being treated as errors
guessanumber.c: In function ‘main’:
guessanumber.c:21: error: ISO C90 forbids mixed declarations and code
guessanumber.c: In function ‘prompt_user’:
guessanumber.c:33: error: ignoring return value of ‘scanf’, declared with attribute warn_unused_result
guessanumber.c:44:2: error: C++ style comments are not allowed in ISO C90
guessanumber.c:44:2: error: (this will be reported only once per input file)

Re: Brauche Übersetzungshilfe vom Programm C zum Programm Py

Verfasst: Dienstag 11. Mai 2010, 13:24
von b.esser-wisser
@Hyperion
Ich hab doch 'C99' geschrieben, oder? (-std=c99, oder gnu99 angeben)
edit: hab den gcc-aufruf korrigiert