Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das...

17
Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology

Transcript of Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das...

Page 1: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Hello World!

Eine Einführung in das Programmieren

Das erste Programm

Görschwin Fey

Institute of Embedded Systems

Hamburg University of Technology

Page 2: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 2

Betriebssystem – Funktion

10.10.2019 Hello World!Rechner

Betriebssystem

Gerätesteuerung

Speicher-

verwaltung

Task-

Management

Weitere

Serviceroutinen

DateiverwaltungInterrupt-

Handling

Hardware-spezifischer Code

Anwendung

Page 3: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 3

Programmierung

Rechner

• Stellt nur sehr einfache Befehle zur Verfügung

• Programm

• ist im Speicher abgelegt, muss in Binärformat vorliegen, sogenannter

Maschinencode

• muss für das jeweilige Betriebssysteme angepasst sein

Programmierung

• Geschieht (heute fast immer) in einer sogenannten Hochsprache

• Programm ist eine Textdatei

• Übersetzung in Assembler und von dort in Maschinencode passiert mit

Hilfssoftware:

• Compilierung

10.10.2019 Hello World!

Page 4: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 4

Übersetzung von Hochsprache in Maschinencode

• Compilieren: Programm wird vor der Ausführung übersetzt

10.10.2019 Hello World!

Rechner

Betriebssystem

Anwendung

(compiliert)

Page 5: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 5

Compilier-Vorgang

a.cpp

Compiler

Compilation AssemblingAnalysis a.o

Linker

Libraries

a.outExecutable

• Vereinfachte Darstellung des Compilier-Vorgangs

• Bibliotheken (Libraries) implementieren zusätzliche Funktionalität

• Linker verbindet das Programm mit den Bibliotheken zum Executable

10.10.2019 Hello World!

Source/

Quellcode

Object

Page 6: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 6

Werkzeuge

• g++

• C++-Compiler & -Linker

• Unter Linux oft vorinstalliert bzw. leicht verfügbar

• Unter Windows als mingw bzw. in Codeblocks verfügbar

• Unter MacOS mit xcode verfügbar

• Kommando im Terminal

g++ <SourceCode>

• <SourceCode> ist eine Textdatei mit C++-Anweisungen

• erzeugt das Programm a.out

• Programm wird durch Terminaleingabe ausgeführt

./a.out

10.10.2019 Hello World!

Page 7: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 7

Anweisungen in C++

Jede Programanweisung …

• endet mit einem Semikolon

• wird in eine neue Zeile geschrieben

10.10.2019 Hello World!

Anweisung 1;

Anweisung 2;

Anweisung n;

Anweisungen eines Programms werden sequentiell nacheinander

ausgeführt

Page 8: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 8

Hello World – Ein erstes C++-Programm: Datei a.cpp

10.10.2019 Hello World!

Definition von Funktionen

aus Bibliotheken und

anderen Programmdateien

main-Funktion definiert

Einstiegspunkt für das

Programm

Zugriff auf cout im

Namespace std

Ausgabeoperator

Konstante

Zeichenkette

Zeilenumbruch in

Ausgabe erzeugen

Codeblock,

definiert hier main-

Funktion

Page 9: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 9

Syntax und Semantik

• Syntax – wie die Grammatik einer Sprache

• Regeln, die beschreiben, welche Zeichenfolgen gültige Programme

sind

• Semantik – wie die Bedeutung der Worte einer Sprache

• Bedeutung, welche Aktionen durch einzelne Befehle ausgeführt

werden

• Compiler

• kennt die Syntax

• prüft, ob die Regeln eingehalten sind

• falls ja, wird ein Programm erzeugt dessen Semantik wohldefiniert ist

• falls nein, liefert der Compiler Fehlermeldungen als Hinweise

10.10.2019 Hello World!

Page 10: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 10

Zusammenfassung

• Betriebssystem

• Vereinfacht die Nutzung der Hardware

• Erlaubt gewisse Abstraktion von Hardware

• Hochsprachen werden mit einem Compiler jeweils für Betriebssystem

und Hardware übersetzt

• Wir benutzen g++ als Compiler für die Hochsprache C++

10.10.2019 Hello World!

Page 11: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 11

Übung: Hello World programmieren

1. Textdatei hello.cpp erzeugen mit diesem Inhalt (Verzeichnis merken!)#include <iostream>

int main()

{

std::cout << "Hello, World!\n";

return 0;

}

2. Programm mit Compiler g++ per Anweisung im Terminal compilieren:g++ hello.cpp

3. Programm wurde als Datei a.out bzw. a.exe erzeugt (ls)

4. Programm ausführen mit Kommando./a.out

5. Fehler in das Programm einbauen, erneut compilieren, schauen, was

der Compiler ausgibt, ggf. Programm ausführen

Z.B. „;“ am Zeilenende entfernen; „< “ entfernen, „\n“ entfernen, Text

„Hello World“ ändern6. Programm korrigieren. Den Text Hello, World! zweimal ausgeben

10.10.2019 Hello World!

Page 12: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 12

Übung: Alles nochmal

1. CodeBlocks starten

2. File → New → Project → Console application → C++

– Dialog abarbeiten

3. Binary erzeugen („Build Project“) durch Zahnrad klicken

4. Programm starten: Grüner Pfeil (Play)

5. Klicken auf Sources → main.cpp

6. Wieder herumspielen!

10.10.2019 Hello World!

Page 13: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 13

Getting started

10.10.2019 Hello World!

Page 14: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 14

IDE Interface

10.10.2019 Hello World!

Page 15: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 15

IDE Interface

Dieser Bereich des Graphical User Interface (GUI) enthält die wichtigsten Funktionen, um ein Programm zu compilieren und zu starten

Diese beiden Tabs zeigen das

Ergebnis der Compilierung

10.10.2019 Hello World!

Page 16: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 16

IDE Interface

Dieser Bereich der GUI enthält

Funktionen für das Debugging

Dieses Tab zeigt Informationen

zum Debugging an

10.10.2019 Hello World!

Page 17: Hello World! Eine Einführung in das Programmieren Das ... · Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg

Brückenkurs Hello World!Slide 17

IDE Interface

Hier wird der Memory

Analyzer verwendet

Typische Ausgabe für ein

fehlerfreies Programm

10.10.2019 Hello World!