Inhalte zur Vorlesungswoche #1, Informatik 1 im Wintersemester 2024/25
(EN google-translate)
(PL google-translate)
Themen
|
1 Warum Informatik
|
Anwendungsbeispiele zum Programmieren im technischen Bereich
Was bedeutet es, zu programmieren? -- Ein komplexes Beispiel
Bild 0-1: Daten mittels UDP vom Smartphone an den PC senden.
|
2 Über das Programmieren
Programmieren verlangt mehr, als nur eine Sprachsyntax zu beherrschen:
In dem konkreten Beispiel musste ich wissen, dass Programme auf meinem Smartphone als so genannte Apps zur Verfügung gestellt werden müssen. Ich musste wissen, wie ich ein Programm für das Smartphone an meinem PC schreibe, wie ich das Programm dann in eine App transformiere und wie ich diese dann auf das Smartphone übertragen kann. Die App alleine repräsentiert aber nicht die gezeigte Anwendung: Gleichzeitig muss es auf dem PC ein zweites Programm geben, das die Sensordaten vom Smartphone empfängt und interpretiert. Damit wiederum das gelingt, muss eine W-LAN-Verbindung zwischen Smartphone und PC bestehen und ich muss wissen, wie ich im jeweiligen Programm dafür sorge, dass diese auch richtig benutzt wird.
Um eine lauffähige Software entwickeln zu können, braucht es also einiges an Wissen und Hintergrundwissen, das über ein Verständnis eines bestimmten Programmcodes weit hinaus geht.
Ziel dieser Lehrveranstaltung ist es, parallel mit dem Vergrößern der Fertigkeiten im Erstellen von Programmquelltexten, auch dieses Hintergrundwissen nach und nach zu erarbeiten und zu nutzen. Denn daraus, genau zu wissen, was man tut kann man das notwendige Interesse, den notwendigen Mut und das notwendige Selbstbewusstsein beziehen, damit man es dann auch gerne tut.
3 ÜBUNG Würfel sortieren
|
"Ich suche den kleinsten Wert in der Folge und nehme ihn als erstes Element in einer neuen Folge. Dann suche ich wieder den kleinsten Wert in der noch verbleibdenden Folge und hänge ihn an die neue Folge an. Das wiederhole ich, bis alle Elemente in der neuen Folge angekommen sind. Ich erhalte dadurch eine sortierte Folge der ursprünglich ungeordneten Folge der Elemente."
Code 0-1: Beispiellösung.
Der oben verbal beschriebene Algorithmus zum Sortieren der sechs Zahlen, soll nun in mehreren Schritten in einem C-Programm abgebildet werden.
Schritt 1: Das kleinste Element finden
#include <iostream>
using namespace std;
int main(void)
{
//Plätze: 0 1 2 3 4 5
int wuerfel[] = {6,3,1,4,2,5};
int kleinster_wert = wuerfel[0];
if(wuerfel[1]<kleinster_wert)
{
kleinster_wert = wuerfel[1];
}
if(wuerfel[2]<kleinster_wert)
{
kleinster_wert = wuerfel[2];
}
if(wuerfel[3]<kleinster_wert)
{
kleinster_wert = wuerfel[3];
}
if(wuerfel[4]<kleinster_wert)
{
kleinster_wert = wuerfel[4];
}
if(wuerfel[5]<kleinster_wert)
{
kleinster_wert = wuerfel[5];
}
cout<<"Kleinster Wert ist:"<<kleinster_wert<<endl;
return 0;
}
Code 0-2: C-Quelltext zu Schritt 1: Das kleinste Element finden.
Schritt 2: Anstatt fünf einzelne if-Anweisungen wird eine Schleife verwendet
#include <iostream>
using namespace std;
int main(void)
{
//Plätze: 0 1 2 3 4 5
int wuerfel[] = {6,3,1,4,2,5};
int kleinster_wert = wuerfel[0];
for(int i=1;i<=5;i++)
{
if(wuerfel[i]<kleinster_wert)
{
kleinster_wert=wuerfel[i];
}
}
cout<<"Kleinster Wert ist:"<<kleinster_wert<<endl;
return 0;
}
Code 0-3: C-Quelltext zu Schritt 2: Anstatt fünf einzelne if-Anweisungen wird eine Schleife verwendet
Schritt 3: Das Suchen nach dem kleinsten Element wird sechsmal wiederholt und gefordert, dass ein neu gefundenes Element größer sein muss, als das zuletzt gefundene
#include <iostream>
using namespace std;
int main(void)
{
//Plätze: 0 1 2 3 4 5
int wuerfel[] = {6,3,1,4,2,5};
int ergebnis[] = {0,0,0,0,0,0};
int letzter_wert = 0;
for(int durchlauf=0;durchlauf<=5;durchlauf++)
{
int kleinster_wert = 7;
for(int i=0;i<=5;i++)
{
if(wuerfel[i]>letzter_wert && wuerfel[i]<kleinster_wert)
{
kleinster_wert=wuerfel[i];
}
}
ergebnis[durchlauf] = kleinster_wert;
letzter_wert = kleinster_wert;
}
//cout<<"Kleinster Wert ist:"<<kleinster_wert<<endl;
cout<<ergebnis[0]<<ergebnis[1]<<ergebnis[2]<<ergebnis[3]<<ergebnis[4]<<ergebnis[5]<<endl;
return 0;
}
Code 0-4: C-Quelltext zu Schritt 3: Das Suchen nach dem kleinsten Element wird sechsmal wiederholt und gefordert, dass ein neu gefundenes Element größer sein muss, als das zuletzt gefundene
4 Ein Hello-world Programm in der Programmiersprache C
#include <iostream>
using namespace std;
int main(void)
{
cout<<endl<<"Hello world!"<<endl<<endl;
return 0;
}
Code 0-5: Das erste C/C++ - Programm.
Bild 0-2: Der gleiche Quelltext im mousepad-Editor geöffnet mit Context-Highlighting.
Bild 0-3: Screenshot vom Terminal: Notwendige Compiler-Befehle, um das Programm in Maschinensprache zu übersetzen und es anschließend laufen zu lassen.
Bild 0-4: Sicht auf die Datei hello.cpp mit dem Quelltext und dem ausführbaren Programm hello mit Hilfe des Dateimanagers.
|
10_Informatik1/07_Sprachen/01_C_Syntax
5 Übung 1
Aufgabe 1
|
|
Aufgabe 2
|
Aufgabe 3 -- Variablen in C/C++ vereinbaren und verwenden
|
#include<iostream>
using namespace std;
int main(void)
{
int var1=90;
int var2=38;
int erg;
cout<<"Hallo aus THB"<<endl;
Erg=var1+var2;
cout<<"Die Addition von "<<var1<<"+"<<var2<<" ergibt "<<erg<<endl;
//Erweiterung für andere Operationen.......
return 0;
}
Code 0-6: Quelltext zur Aufgabe
#include<iostream>
using namespace std;
int main(void)
{
double var1=90.0;
double var2=38.0;
double erg;
cout<<"Hallo aus THB"<<endl;
erg=var1/var2;
cout<<"Die Division von "<<var1<<":"<<var2<<" ergibt "<<erg<<endl;
//Erweiterung für andere Operationen.......
return 0;
}
Code 0-7: Studentische Lösung des letzten Teils der Aufgabe.
Aufgabe 4 -- wie Aufgabe 3, aber die Variablen werden zur Laufzeit mit cin gesetzt
#include<iostream>
using namespace std;
int main(void)
{
float var1;
float var2;
float erg;
cout<<"Hallo aus THB"<<endl;
cout<<"Eingabe Variable 1:";
cin>>var1;
cout<<"Eingabe Variable 2:";
cin>>var2;
erg=var1/var2;
cout<<"Die Division aus "<<var1<<" und "<<var2<<" ergibt "<<erg<<endl;
return 0;
}
Code 0-8: Studentische Lösung zu Aufgabe 4.
Aufgabe 5
|
#include<iostream>
using namespace std;
int main(void)
{
double var1, var2, var3;
double erg;
cout << "Hallo aus THB" << endl;
// Benutzereingaben
cout << "Bitte geben Sie den ersten Wert (Länge) ein: ";
cin >> var1;
cout << "Bitte geben Sie den zweiten Wert (Breite) ein: ";
cin >> var2;
cout << "Bitte geben Sie den dritten Wert (Höhe) ein: ";
cin >> var3;
erg = var1 * var2 * var3;
cout<<"Das Volumen des Quaders "<<var1<<"*"<<var2<<"*"<<var3<<" ergibt "<<erg<<"m³"<<endl;
//Erweiterung für andere Operationen.......
return 0;
}
Code 0-9: Strudentische Lösung zu Aufgabe 5.