C++

pertrr

Grünschnabel
Hat jemand eine Idee wie man diese Aufgabe lösen kann!
Sie erhalten Zufallszahlen von der Funktion
unsigned int zufallszahl()
Die Rückgabe entspricht auch im Wertebereich dem Datentyp unsigned int. Die Funktion steht Ihnen zur Verwendung zur Verfügung und muss NICHT von Ihnen implementiert werden.
Für 2021 stehen folgende Inhalte zur Verfügung: Lakritz, Karamell, Schokolade, Keks, Marzipan und Honigbonbon.
Ergänzen Sie die Programmvorlage zur Aufgabe. Entwerfen und implementieren Sie ein C++-Programm, das den Inhalt für 10.000 Kalender für 2021 plant. Zur Kontrolle soll der Nutzer den Inhalt eines Kalenders seiner Wahl angezeigt bekommen.
Hinweis: Die Zeichenketten benötigen Sie nur in der Kontrollausgabe an den Nutzer. cstring wird nicht benötigt und ist NICHT frei gegeben.
[1] Ein Kalender enthält an jedem Tag im Advent (1.-24. Dezember) eine Überraschung (z. B. Schokolade)
 
Zuletzt bearbeitet:

Technipion

Erfahrenes Mitglied
Eine wirklich schöne Aufgabe.

Wo ist denn dein bisheriger Code? Welchen Ansatz hast du dir bis jetzt überlegt?

Gruß Technipion
 

pertrr

Grünschnabel
:cautious:


Hast du denn die Programmvorlage da?
ja hier
Programmvorlage:

#include
using namespace std;

int main ()
{

char input[6][20] = {"lakritz", "karamel", "schokolade", "keks", "marzipan", "honigbonbon"};

return 0;
}

#include<iostream>
using namespace std;

bool prim(int zahl)
{ int i;
for (i=2;i*i<=zahl; i++)
if(zahl%i==0)
{
return false;
}
return true;
}
 

Technipion

Erfahrenes Mitglied
Oh man, da kriegt man ja Augenkrebs. Bitte füge den Code auch als Code ein. Dafür auf die 3 Punkte im Editor klicken und "Code" auswählen.
 

pertrr

Grünschnabel
ja hier
Programmvorlage:

Code:
#include
using namespace std;

int main ()
{
 
    char input[6][20] = {"lakritz", "karamel", "schokolade", "keks", "marzipan", "honigbonbon"};
 
    return 0;
}

#include<iostream>
using namespace std;

bool prim(int zahl)
{ int i;
for (i=2;i*i<=zahl; i++)
if(zahl%i==0)
{
return false;
}
return true;
}
 

Neonof

Mitglied
Hallo pertr,
ich würde mir deine Aufgabe auch sehr gerne vornehmen, aber dazu ist es wirklich nötig, dass wir genau das bekommen, was dir vorgegeben wurde. In dem von dir geposteten Code fehlt ein Name hinter dem Include und außerdem kommen Include und Namespace-Angaben zweimal vor. Das sieht so aus, als wären es ursprünglich zwei Dateien gewesen und als hättest du schon daran herumgeschrieben.

So, wie das dort steht, ist das offensichtlich NICHT alles, was ihr bekommen habt. Du hast in deinem ersten Post eine Funktion erwähnt: unsigned int zufallszahl()

Jedoch fehlt ihr jede Implementation zu ihr. Wo ist sie? Sie werden von euch nicht erwartet haben, einen vollständigen Code und ein funktionierendes Programm zu schreiben, ohne euch die Implementation für die Funktion mitzugeben.

Habt ihr den Code lediglich als Ausdruck bekommen? Wenn ihr Dateien habt, häng sie doch an deine Nachricht mit an. Oder mach einzelne Blöcke für je eine Datei. In der Form:

main.cpp
C++:
#include<iostream>
using namespace std;
int main()
{
    char input[6][20] = { "lakritz", "karamel", "schokolade", "keks", "marzipan", "honigbonbon" };

    return 0;
}

prim.cpp
C++:
#include<iostream>
using namespace std;

bool prim(int zahl)
{
    int i;
    for (i = 2; i * i <= zahl; i++)
        if (zahl % i == 0)
        {
            return false;
        }
    return true;
}

Ist der Code denn so wie nun gepostet zu verstehen?
Wie ist die Aufgabe gemeint? Sollst du angeben welche Tage das Jahr hat und in Klammern dazu die Adventsbelohnungen oder nur eine Reihe von Belohnungen? Wie soll so eine Ausgabe aussehen?

Spontan würde ich einmal vorschlagen, sich Funktionen zum Erhalt und zur Formatierung von Unix-Timestamps zu besorgen und damit die bereits vorgegebenen Algorithmen zur Darstellung des Tages zu verwenden. Für die Belohnungen am Advent genügt ja dann die selektive Auswahl mit deiner Zufallsfunktion.

Die Dauer eines Tages ist klar definitiert. Die eines Jahres hingegen besitzt Restsekunden, weshalb alle 4 Jahre der zusätzliche 29.02. eingefügt wird. Auch damit sind die Sekunden aller 4 Jahre nicht exakt erfasst und irgendwann einmal wird der 29.02. dann einmal ausgelassen oder ein Jahr verschoben. Indem du einfach Unix Timestamps verwendest und das Datum formatieren lässt, solang bis das Jahr ein anderes ist, bist du schonmal auf der sicheren Seite.
 

m.scatello

Erfahrenes Mitglied
Ist es eigentlich nicht der Sinn von Hausaufgaben, dass man sie selber macht? Und bei "dringend" hört es für mich in einem Forum sowieso auf.