CPP21 - TOK 09.04.2022

Algorithmus, Baumdurchlauf, Compiler, Interpreter...; Cobol, Pascal, C/C++, Java & Co.
Antworten
SalverTere
Mitglied
Mitglied
Beiträge: 41
Registriert: 27.02.18 16:38

Guten Tag,
ich habe am Samstag CPP21 online geschrieben.
Anbei meine Sachen die ich noch weiß:
Anfang war ähnlich wie viewtopic.php?p=147777&hilit=CPP21#p147777
Danke dafür!

Abendseminar war mit Lager & Artikel - das kam bei mir gar nicht dran.
Hier die Detail Aufgaben - hier einfach rauskopiert von dem anderen Eintrag:
1. Erstelle ein Array und fülle es mit den Quadratwerten von den ersten 10 ungeraden Zahlen.
Der erste Wert ist 1. Greife mittels Zeiger auf das 6 Feld Element und gebe die nächsten 5
Stellen mit Zeigersemantik aus
Ich habe es so (oder so ähnlich) - die Aufgabe habe ich als letztes gemacht, Zeit hat nicht gereicht und dann war irgendwann Zeit vorbei..

Code: Alles auswählen

#include <iostream>
#include <string>
#include <cstring>
using namespace std;
//Funktion Checken ob die Zahl eine ungerade ist 
	int checkungerade(int b)
	{
		int rest = b % 2; 
		cout << b << "und jetzt kommt der Rest= " << rest << endl;
		if (rest != 0)
		{
			rest = 0;
			return 0;
		}
		else
		{
			rest = 0;
			return 1;
		}
	}


	int main()
	{
		int arrayQuadrat[10];
		int zahl;
		int y = 1;

		// Array befüllen mit den ersten 10 ungeraden Zahlen
		// Array befüllen

		for (int i = 0; i < 10; i++)
		{
			//cout << "y= " << y << endl; 
			// Wenn checkunggerade == 0 -> dann ist es eine Gerade zahl ohne Rest
			if (checkungerade(y) == 0)
			{
				//cout << "y = " << y << endl;
				zahl = y * y;
				arrayQuadrat[i] = zahl;
				//cout << "Zahl: " << y << " zum Quadrat ist: " << arrayQuadrat[i] << endl;
				//cout << arrayQuadrat[i] << endl;
			}
			else
			{
				y++;
				zahl = y * y;
				arrayQuadrat[i] = zahl;
			}
			y++;
			//cout << "Fur i=" << i << " ist Arraywert: "<< arrayQuadrat[i] << endl;

			//cout << arrayQuadrat[2]; 



		}
		for (int k = 0; k < 10; k++)
		{
			cout << "jetzt kommt die Array ausgabe für K=" << k << "   --->   " << arrayQuadrat[k] << endl;
		}
		int* meinZeiger = 0;
		meinZeiger = arrayQuadrat;
		cout << "6. Element im Array" << meinZeiger[5];
		for (int z = 6; z < 10; z++)
		{
			cout << z << ". Element vom Array über Zeiger= " << meinZeiger[z] << endl;
		}

	}
	
2. Erstelle eine Funktion double runden(double zahl) die eine Zahl bis auf 3 Nachkommastellen rundet

Code: Alles auswählen

int main()
{
	double x = 145.6789;
	x = (int)(x * 100 + 0.5) / 100.0; //1000 = 3 Kommastellen
	cout << x; // Ergebnis: 145.68
}
3. Erkläre den Unterschied von CallByValue und CallByReference.
4. Was ist die Aufgabe eines Konstrukors und was ist die Aufgabe eines Destrukotrs. Wann ist
sinnvoll einen Destruktor selbst zu schreiben
5. Überladen einer Funktion/Methode mit aussagekräftigem Beispiel.

Code: Alles auswählen

void Anzeigen(int  i)  //Gleicher Funktionsname aber int
{
    cout << "int: " << i << endl;
}
void Anzeigen(double  f) //Gleicher Funktionsname aber double
{
    cout << "double: " << f << endl;
}
int main()
{
    Anzeigen(12); // ruft Automatisch die erste Funktion (12 ist int)
    Anzeigen(2.5); // ruft Automatisch die zweite Funktion (2.5 ist float)
}
// Compiler erkennt automatisch welche Funktion er nutzen muss. 
Komplexaufgaben kopiere ich wieder die Beschreibungen aus dem anderem Eintrag rein.
Die Tage werde ich mal noch die Zeichnung von den Klassen hochladen.
Ich habe mir auf meinem Konzeptpapier die UML Diagramme gemalt weil sonst müsste man immer wieder hoch und runter scrollen. So geht´s einfacher.
Hier also Komplexaufgabe 1:

Klasse Email gegeben, hat statistische Variablen und Methoden und einen vektor.
Erstellen eines Konstrukors und eines Destruktors/Hochzählen statische Variablen
Initialisieren von statischen Variablen
Implementieren der Methoden der Klasse
Hinzufügen/Ändern/Löschen eines String Vektors

Komplexaufgabe 2.
Operatorüberladung, Implementieren der zwei Klassen als Header und CPP Datei
Klasse Person und Adresse sollten erstellt werden. Person besaß einen vektor mit Adressen.
Adressen sollten ausgegeben und hinzugefügt werden.
Bei Adresse sollte in Funktion getAdresse die Attribute zu einem String verbunden werden.
Überladen des operators<<

Die 3. Komplexaufgabe habe ich mir nur kurz angesehen und dann gleich weiter geklickt.
Kann daher nicht viel zu sagen.

Ich fande dich Prüfung sehr anspruchsvoll.
Die Zeit ist äußerst knapp (zumindest wars für mich so).
Bis jetzt hatte ich bei fast jeder Prüfung am ende noch mal ein paar Minuten zeit zum gegenlesen - hier nicht. Bis zur letzten Sekunde getippt.
Zudem ist echt nicht schön ohne Highlighting wie im Compiler zu arbeiten.
Was mich aber am meisten gestört hat ist dieses "durcheinander" und keine klare Strucktur.
Bei der Komplexaufgabe z.b. wird davon ausgegangen das der Vektor schon vorhanden ist? Oder muss ich ihn erst implementieren?
Das hat mich auch etwas zeit gekostet.

EIgentlich hab ich nur das eine Heft durchgemacht "CPP101".
Zusätzlich noch das Buch "KirchUllaPrinzPeter_2018_C++DasÜbungsbuchTestfragenundAufgabenmit" das gibts im Campus einen Link zu.
Daraus habe ich aber auch nur die Mitteleren Kapitel gemacht, der Anfang ist zu weit "unten" vom Level her -und das Ende dann schon wieder zu viel.
Viel habe ich über Youtube gelernt:
https://youtu.be/FmrZfsXE7Ds
https://youtu.be/KqidfmjqwuY
https://youtu.be/G2oRpF6oTgw

Für mich war es bis jetzt einer der schwierigeren Module.
Wenn man mit wenig vorkenntnissen damit startet sollte man min. 2 Monate einplanen.

Als Compiler habe ich den Microsoft Visual Studio genutzt.
Das 2-Tagestutorium habe ich besucht, hat mir aber keinen Mehrwert gebracht.
Das Abendseminar war so "naja" - ein bisschen hats was gebracht.

Angeblich will die AKA das Modul wohl etwas umstellen somit etwas "vereinfachen".
Die Hefte sind oftmals mit Fehlern gespickt - die schon seit Jahren drinnen sind - ich finde das einfach mega dreist von AKAD das die sowas einfach nicht mal fixen.
Vor allem bei dem Preis was monatlich zahlen muss.

Mal schaun ob´s gereicht hat.
4 Gewinnt :|
SalverTere
Mitglied
Mitglied
Beiträge: 41
Registriert: 27.02.18 16:38

Es hat gereicht - Gott sei dank!
Anbei noch meine Aufzeichnungen.
Wenn ich dran denke mache ich noch die Bilder von den Klassen und lade sie hoch.
Artikel-Loesung.7z
--> diese Aufgabe "Artikel" ist im Abendtutorium drangekommen.
CPP21.7z
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Karschti
Forums-Profi
Forums-Profi
Beiträge: 64
Registriert: 16.04.16 18:45

Hallo,
danke das hilft mir beim Vorbereiten.
Scheinbar sind die TOKS wohl gleich geblieben.

Hat jemand auch Lösungen zu den Komplexaufgaben?

Das wäre gut und würde vilen helfen.

Kannjemnd bestätigen, dass die TOKS inhaltlich in jüngster Zeit noch so sind?

Vielen Dank vorab.
Nach oben
Antworten