Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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!

Geschrieben

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.

Geschrieben

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.

Geschrieben

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

Geschrieben

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++

Geschrieben

@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.

Geschrieben

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

Geschrieben
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. ;)

Geschrieben

@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^^

Geschrieben

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;

Geschrieben

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 :)

Geschrieben
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. ;)

Geschrieben

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....

Geschrieben

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.

Geschrieben
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.

Geschrieben

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 :D

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

Geschrieben
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 ;-)

Geschrieben
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.)

Geschrieben

@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!

Geschrieben

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).

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...