sgitkene / fhnw-syspr-work-01

FHNW Modul System-Programmierung (syspr) Hands-on zu Lektion 1

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

System-Programmierung

Hands-on zu Lektion 1

Für Slides und Code Beispiele, siehe Lektion 1

Achtung: Arbeiten Sie nicht direkt auf diesem Repository.
Erstellen Sie eine persönliche Kopie, mit diesem GitHub Classroom Link.

a) int Wertebereich, 15'

  • Hardware bzw. Compiler-abhängige Konstanten:
    #include <limits.h>
  • Schreiben Sie ein Programm my_range.c, das für die Typen char, int, long, short Wertebereiche so ausgibt:
    type: TYPE_SIZE byte, TYPE_MIN .. TYPE_MAX
  • Erweitern Sie das Programm für unsigned Typen.
  • Tipp: $ gcc FILE.c -M zeigt include Pfade an.

b) Argumente lesen, 15'

  • Command-Line Argumente als Parameter von main:
    int main(int argc, char *argv[]);
  • Schreiben Sie ein Programm my_args.c, das alle Command-Line Argumente mit Index ausgibt:
    $ ./my_args hoi => 0: ./my_args, 1: hoi
  • Erweitern Sie das Programm, dass es einen Fehler ausgibt, falls ein Argument nicht aus [a-z]* besteht.

c) Bäume, 15'

  • Erstellen Sie eine Datei my_tree.c mit einem Struct Typ Tree mit Zeigern auf left, right vom selben Typ, und einem String label von maximal 32 Byte Länge.
  • Instanzieren Sie einen binären Baum mit 3 Blättern, verwenden Sie dazu die Funktionen malloc und free.
  • Erweitern Sie den Node Typ für Bäume mit variabler Anzahl (N > 2) Ästen, wie Darwin's Tree of Life.

d) BLE Pakete, 15'

e) Makefile, 15'

  • Erstellen Sie ein makefile für Ihren Hands-on Code.
  • Verwenden Sie die Compiler Flags aus dem Script.
  • Korrigieren Sie allfällige neue Kompilationsfehler.
  • Führen Sie make clean aus, vor dem git commit.

Abgabe (optional)

  • Lokale Änderungen committen und pushen.
  • GitHub Issue erstellen mit "Bitte um Review, @tamberg".
  • Offene Fragen ausformulieren, was geht nicht, was haben Sie versucht.
  • GitHub mailt mir (@tamberg) automatisch, ich versuche in weniger als 24h zu antworten :)

Tools

Git

Auf Ihrem Computer

  • Zu Beginn jeder Lektion wird der Hands-on Repository Link freigeschaltet
  • Nachdem Sie das "Assessment" annehmen, bekommen Sie per Email ein Repository
  • Die REPO_URL enthält Ihren GitHub Account USER_NAME und Ihre Klasse 3ia oder 3ib, z.B.
    https://github.com/fhnw-syspr-3ia/fhnw-syspr-work-01-tamberg

Auf dem Raspberry Pi

  • Repository klonen
    $ cd ~
    $ git clone REPO_URL
  • Neue Datei kreieren
    $ git add FILE
  • Änderungen committen
    $ git commit FILE -m "Fixed all bugs"
  • Änderungen hochladen
    $ git push

Nano

Auf dem Raspberry Pi

  • Neue oder bestehende Datei öffnen mit $ nano FILE
  • Editieren (Achtung, nano hat kein Undo)
  • Speichern mit CRTL-X Y RETURN

SSH

Auf Ihrem Computer

  • Terminal öffnen (Mac) oder WINDOWS R cmd RETURN (Windows)
  • SSH Session starten mit
    $ ssh pi@raspberrypi.local

Support

About

FHNW Modul System-Programmierung (syspr) Hands-on zu Lektion 1