Jinxrin Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Hallo Leute, bin ziemlich neu hier und auch ziemlich neu in der Berufswelt , sprich erstes Lehrjahr als Azubi in der AE Und nun hat mein Chef mir die Aufgabe gegeben eine Art Zahlenausgabe zu programmieren wie beim Lotto. Sprich Zahlen von 1-49 und immer nur 6. Könnt ihr mir sagen mit welcher Sprache ich das am besten mache und vor allem wie ich das am besten machen kann!? Mfg euer Jinxrin! Zitieren
baba007 Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 mit jeder sprache kann man es machen. eine FOR schleife und Zufallszahlen, das ist alles. Wir hatten damals im Perlseminar einen Lottoautomaten programmiert. 6 Zufallszahlen finden, Ziehung von weiteren 6 und vergleichen. War witzig wie lange der rechner brauchte um einen 6 zu ziehen. Das ganze natürlich mit Ausgabe in Datei, Konsole und Statistiken. Zitieren
blacks†one Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Kommt ganz darauf an was für Vorkenntnisse du hast und was für Programme dir zur Verfügung stehen. Ich an deiner Stelle würde mich mal an C++ heranwagen. Da wäre diese aufgabe kein Problem. Das ganze wäre allerdings auch mit einer anderen Programmiersprache bestimmt kein Ding. Kannst das ganze bestimmt auch mit Javascript lösen. Zitieren
Jinxrin Geschrieben 3. Januar 2008 Autor Geschrieben 3. Januar 2008 Vorkenntnisse aus HTML und PHP WOHOOO^^ also nicht viel und meine Firma hat mir noch keine programmier aufgabe geschweige eine "ausbildung" dafür gegeben ^^ Daher .. aber c++ wird bei uns auch in der SChule gemacht.. Kann mir einer sagen wie ich am besten Anfangen soll und ob das alles en grosser Quellcode ist? Wäre klasse wenn ihr mir den Einstieg erleichtern könnt und mir helft.. weil sagen wir es so bei C++ fang ich bei 0 an Zitieren
blacks†one Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Naja, meiner Meinung nach sind dass so etwa 10 Zeilen in c++. Also kein Ding. Was hast du schon so alles mit C++ gemacht? Zitieren
Jinxrin Geschrieben 3. Januar 2008 Autor Geschrieben 3. Januar 2008 gar nichts bis weniger.. ich fang wie gesagt bei 0 an und muss noch ein lehrbuch kaufen abe rich arbeite direkt in richtung spieleproggen ^^ 10 zeilen sagst du ich kenn nichtmal eine bei c++ Zitieren
Amstelchen Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 na wenn du vorkenntnisse in HTML und PHP hast, wieso machst du die lottozahlenausgabe nicht in HTML und PHP? wär doch das allernaheliegendste s'Amstel Zitieren
blacks†one Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 @echo off set /a x1=%random% %%48+0 set /a x2=%random% %%48+0 set /a x3=%random% %%48+0 set /a x4=%random% %%48+0 set /a x5=%random% %%48+0 set /a x6=%random% %%48+0 echo %x1% %x2% %x3% %x4% %x5% %x6% pause end Hab hier mal das ganze als *.bat geschrieben kleine Anregung. PS: Kann mir mal jemand sagen warum bei mir fast jedes 2. Mal die Meldung: "Prefetching ist nicht erlaubt" oder so ähnlicht kommt, wenn ich einen Thread öffnen möchte. Zitieren
TDM Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Zufallszahlen c++ - Google-Suche I <3 google. (Meiner Meinung nach müsste es srand auch in PHP geben. ) Zitieren
blacks†one Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Kennt sich jemand mit IF-Abfragen bei batch-Dateien aus? Hier sollte man noch eine Abfrage hinzufügen, dass keine Zahl 2x vorkommen kann! @echo off color 0c :start set /a x1=%random% %%48+0 set /a x2=%random% %%48+0 set /a x3=%random% %%48+0 set /a x4=%random% %%48+0 set /a x5=%random% %%48+0 set /a x6=%random% %%48+0 echo. echo. cls echo ²²²²²²²²²²²²²²²²²²²²²²²² echo %x1% %x2% %x3% %x4% %x5% %x6% echo ²²²²²²²²²²²²²²²²²²²²²²²² echo. echo. echo. echo. echo. echo. pause goto start Zitieren
TDM Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Kennt sich jemand mit IF-Abfragen bei batch-Dateien aus? Hier sollte man noch eine Abfrage hinzufügen, dass keine Zahl 2x vorkommen kann! Eine Schleife für die x-Interation und innere für eine 2 x-Iteration und dann einfach nach doppelten Einträgen suchen. Pseudocode: for (i = 1; i <=6; i++){ for (j = 1; j <=6; j++) if "%x%i%%" == "%x%j%%"( echo %i% doppelt ) } Geht sicher auch schöner und keine Ahnung ob %i% oder !i! Aber Offtopic stinkt eh und Batch ist mir zu lahm. Zitieren
blacks†one Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 @echo off color 0c :start set /a x1=%random% %%48+0 :redom2 set /a x2=%random% %%48+0 if x1==x2 goto redom2 :redom3 set /a x3=%random% %%48+0 if x1==x3 goto redom3 if x2==x3 goto redom3 :redom4 set /a x4=%random% %%48+0 if x1==x4 goto redom4 if x2==x4 goto redom4 if x3==x4 goto redom4 :redom5 set /a x5=%random% %%48+0 if x1==x5 goto redom5 if x2==x5 goto redom5 if x3==x5 goto redom5 if x4==x5 goto redom5 :redom6 set /a x6=%random% %%48+0 if x1==x6 goto redom6 if x2==x6 goto redom6 if x3==x6 goto redom6 if x4==x6 goto redom6 if x5==x6 goto redom6 echo. echo. cls echo ²²²²²²²²²²²²²²²²²²²²²²²² echo %x1% %x2% %x3% %x4% %x5% %x6% echo ²²²²²²²²²²²²²²²²²²²²²²²² echo. echo. echo. echo. echo. echo. pause goto start Is doch toll unser schönes batch^^ Zitieren
Sharpy Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 voila.. in c kanst du dies schnel und sauber lösen ;-) #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int lotto[6]; int i, j; int iMax = 6; bool neueZahl; srand(static_cast<int>(time(0)));rand(); for(i=0; i<iMax; i++) { do { lotto[i] = rand() % 49 + 1; neueZahl = true; for (j=0; j<i; j++) { if (lotto[j]==lotto[i]) { neueZahl = false; } } } while (!neueZahl); cout << lotto[i] << " "; } cout << endl; system("PAUSE"); return EXIT_SUCCESS; Zitieren
blacks†one Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Aber im Batch-Style is schon noch toller musste zugeben^^ So was gigantisches für so ne kleine Aufgabe ;p in C++ is zwar klein und smart, aber man benötigt eben immer die ganze Zusatz-Software.. hat ja nich jeder. es gibt schließlich noch Leute, die kriegen von ihren Chef's Proggrammieraufgaben, obwohl sie nichmal programmiern können Zitieren
TDM Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 voila.. in c kanst du dies schnel und sauber lösen ;-) ihh, static_cast ist aber nicht sauberes C. Der Operator ist meines Wissens für Klassencasts zuständig außerdem brauchst du den hier nicht, denn time(NULL) gibt einen time_t Wert zurück und das ist nur ein typedef-Int. system("PAUSE") würde ich auch nicht nehmen. Dann lieber getch() oder so. Ansonsten aber ok. Zitieren
Jinxrin Geschrieben 3. Januar 2008 Autor Geschrieben 3. Januar 2008 ja ich bin schone ine arme socke aber was will man machen !? .. mein chef gibt mir bestimmt noch ein paar aufgaben aber will mir kein buch organ wo ich mit lenren kann unfair nenn ich sowas.... Zitieren
Sharpy Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Danke für den typ :-) habe es nur schnell mit dem Dev++ gemacht. ja der batch is geil *gg* GrATz naja ich kenne es zu gut, bin eigentlich Netzwerk und Server Techniker muss aber zu 88% programmieren c/c++,java usw... ehm wegen dem buch, das brauchst du nicht, im netz gibs genügent *.pdf und dass denk sicher auch dein Chef. z.b. C Programming das manko ist, du musst english können da die wirklich guten erklärungen meist english sind. Zitieren
Amstelchen Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 (Meiner Meinung nach müsste es srand auch in PHP geben. ) PHP: srand - Manual ja, macht prinzipiell auch dasselbe wie in standard-C. s'Amstel Zitieren
TDM Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 das manko ist, du musst english können da die wirklich guten erklärungen meist english sind. Wieso Manko? C/C++ kannst du, wenn du englisch beherrschst nur um so besser (oder was glaubst du, woher if, switch, etc. kommen?! ) PHP: srand - Manual ja, macht prinzipiell auch dasselbe wie in standard-C. tihi, ist ja irgendwo auch klar, PHP wurde ja auch aus C entwickelt. Zitieren
DeMon Toll Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Wenn du mit C++ erst anfängst würde ich empfehlen du fängst mit Konsolenbaierter Programmierung an und nicht gleich mit Objektorientiert. Falls du noch keine IDE hast dann nimm am besten Visual C++ 2005 Express und dann wäre es am besten du guckst mal nach einem ensprechenden Buch (oder habt ihr das schon von der Schule bekommen?) naja hier mal ein beispiel^^: // Lottozahlen.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. // #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "stdlib.h" #include "math.h" #include "string.h" #include "time.h" void main (void) { int lottozahl[6]; int durchlauf = 1; printf ("Die Lottozahlen werden jetzt gezogen bitte eine Taste druecken\n"); getch(); do{ for (int i = 0; i<6; i++){ printf ("Die %d.Zahl ist:\t", i+1); lottozahl[i] = rand ()%49+i; printf ("%d\n", lottozahl[i]); } }while(durchlauf > 1); getch(); is nich sonderlich elegant gelöst aber es funktioniert Aber wie gesagt kauf dir ein buch (wenn du noch keins hast) und wenn ihr das in der Schule macht immer schön dort aufpassen ^^ DeMon Zitieren
Sharpy Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 Wieso Manko? C/C++ kannst du, wenn du englisch beherrschst nur um so besser (oder was glaubst du, woher if, switch, etc. kommen?! ) ja wenn er im ersten jahr ist kann es sein, dass er noch nicht gut english kann ;-) Zitieren
TDM Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 ja wenn er im ersten jahr ist kann es sein, dass er noch nicht gut english kann ;-) Bring mal nichts durcheinander: 1. Ausbildungsjahr != 1. Schuljahr. Mit dem normalen Dritteklassenenglisch kommt man zwar nicht weit, aber spätestens ab der 8. sollte man in der Lage sein, (notfalls kleinere, ) englische Dokumentationen zumindest inhaltlich zu begreifen. Das Englisch in der Ausbildung ist für meinen Teil nur zum Auffrischen da. (Gut, es sei denn bei einem ist Englisch die Unternehmenssprache.) Zitieren
Sharpy Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 hehe oke. bei uns in der schweiz ist dass halt ein bisschen anders, da hat man etweder gar kein englisch oder erst sehr spät oder halt gymnasium Zitieren
Pointerman Geschrieben 3. Januar 2008 Geschrieben 3. Januar 2008 @DeMon Toll Die Ein-/Ausgabe Oberfläche hat nun aber nicht so viel mit objektorientierter Programmierung zu tun. Man kann unter Windows prozuderal und unter DOS objektorientiert schreiben und umgekehrt. Bitte nicht mit ereignisorientierter Programmierung verwechseln! Zitieren
speedi Geschrieben 4. Januar 2008 Geschrieben 4. Januar 2008 Also ein paar von eueren Lösungsansätzen sind echt interessant. Ich persönlich habs ja noch nicht erlebt, das im Lotto eine Zahl bei einer Ziehung mehrfach vorkommt. Ich hab das in der Ausbildung auch mal machen dürfen. Hab damals ein bollean-Array[48] verwendet, in dem Alle Werte erstmal auf true ware (true = noch in der Trommel). Und dann hab ich mir Zufallswerte von 0-48 generieren lassen. Wenn der boolean an der stelle im Array true war hab die Zahl in ein neues Array int[6] geschrieben und wenn er false war ne neue Zufallszahl generiert. Solang bis 6 Zahlen zustande gekommen sind. Als der Jackpot neulich so dermaßen hoch war, hab ich mal meinen PC zocken lassen und dafür ein neues Programm in Java geschrien, welches mit LinkedLists arbeitet. Da hatte ich dann eine LinkedList in der Integer-Objekte gespeichert sind (values 1-49). Und dann hab ich mir 6 mal eine Zufallszahl generieren lassen, welche zwischen 0 und der Momentanen größe der LinkedList liegt. Den Integer an der Stelle (zufallszahl) hab ich dann aus der LinkedList entfernt und in eine Liste (ziehung) geschmissen. Klappt super und braucht sicher nur 6 versuche. Der obere kann wenns blöd kommt recht viele versuche brauchen (wobei man das auch nicht merkt, wenn man nicht grad 10 Millionen Jahre Lottoziehungen Simulieren will). Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.