Index over opgaver i denne lektion   Alfabetisk indeks   Kursets hjemmeside   

Opgaver
Kursusintroduktion


1.1   Windows: Installation af en mulig teksteditor  

I dette kursus anbefaler vi en meget basal tilgang til udvikling af C programmer. Vi vil skrive programmerne i en teksteditor (fordi et program er et stykke tekst).

Der er mange forskellige teksteditorer. Og mulighederne varierer naturligvis fra platform til platform (Windows/Linux/Mac). Hvis du allerede er godt i gang med en teksteditor, som du har fuld kontrol over, så brug blot denne til C programmering. Hvis ikke, kan du overveje at bruge Visual Studio Code eller GNU Emacs. Jeg er selv daglig bruger af GNU Emacs, men det er langt fra sikker at du skal lære at bruge denne editor.

Denne opgave er således kun relevant hvis du kører Windows, og hvis du ønsker at bruge GNU Emacs som din teksteditor.

Hvordan man downloader GNU Emacs på Windows - se også den tilhørende video:

Der findes en video Kom godt i gang med Emacs som du måske vil have gavn af at se nu - eller om et par dage. Hvis du ser og forstår denne video, er du rigtig godt på vej!

Overvej at sætte dette bidrag ind i din .emacs fil. (Som beskrevet skal du tilpasse den lidt). .emacs filen diskuteres i videoen.

 


1.2   Windows: Installation en gcc compiler  

I dette kursus anbefaler vi at du oversætter C programmer ved eksplicit at køre en C compiler fra en kommando prompt (også kendt som en shell).

Der findes en del forskellige varianter af gcc (Gnu Compiler Collection). Der findes også helt andre C compilere i mere eller mindre integrerede programmeringsomgivelser. På dette kursus er der frihed til at vælge den C compiler, som du foretrækker. Vær dog opmærksom på at vi primært vil bruge den version af C som hedder ANSI C 89 (hvilket er det samme som C90).

På Windows platformen anbefaler vi I udgangspunktet anvendelse af MinGW (Minimalist GNU for Windows), som tillader udvikling native MS-Windows applikationer. Hvis du er Linux bruger er der med stor sandsynlighed allerede en gcc compiler på din computer, som du kan bruge. Hvis du er Mac bruger henvises du til en anden opgave for at komme godt i gang med en C compiler.

Resten af denne opgave er således kun relevant hvis du kører Windows, og hvis du ønsker at bruge gcc under MinGW.

Der findes en video, som viser hvordan installationsprocessen i denne opgave forløber. Følg evt. denne video sammen med denne opgave, mens du installerer MinGW gcc.

For at fuldføre opgaven skal du have adgang til en teksteditor. Brug gerne din favorit teksteditor. Overvej alternativt om du ønsker at downloade Emacs eller Visual Studio Code før du går videre.

Følg denne vejledning for at installere MinGW på Windows:

Hvis du starter terminal vinduet (via msys.bat) og hvis du skriver gcc --version får du oplysninger om versionsnummeret af gcc. I september 2021 er den nyeste version af gcc i MinGW 6.3.0.

Nu har du installeret systemet. Følgende laver en lille nyttig tilpasning.

Med denne tilpasning vil din MinGW terminal på bekvem måde starte op i kataloget c:/users/peter18/c-programmer/ hver gang du bruger den, og du vil få en prompt der blot består af et dollar tegn.

Du har også mulighed for at tilføje MinGW til din Windows PATH. I udgangspunktet skal du droppe denne del. Måske vil dette være nødvendigt på nogle maskiner. Udfør kun dette skridt hvis du får problemer. Og vær forsigtig her!

Hvis du ændrer din Windows PATH som beskrevet ovenfor, kan du også aktivere gcc fra en Windows prompt.

Brug nu gcc i en MinGW shell på følgende måde - ved at aktivere den shortcut som du har lavet ovenfor:


 


1.3   Windows: Alternativ installation af MinGW GCC compiler - Mingw-w64  

Dette er et alternativ til MingW installationen i en anden opgave: MinGW-W64. Opgaven er kun relevant hvis du kører Windows. Denne installation leder udelukkende frem til aktivering af C-compileren fra en Windows command prompt. (C-compileren i den anden opgave kan både aktiveres fra en Windows command prompt, og fra en Linux-agtig command prompt).

Brug evt. det direkte download link, for at få fat i det lille installer program.

Følg iøvrig de lette anvisninger i denne video. Videoen er lavet for et par år siden, så versionen af MinGW-w64 har givetvis ændret sig lidt. Men det er kun fint.

 


1.4   Mac OS X: Installation of GCC og LLDB  

Hvis du gennemgår denne opgave kommer du godt i gang med gcc fra en kommando-prompt på en Mac.

I dette kursus anbefaler vi at du oversætter C-programmer ved eksplicit at kalde en C-compiler fra en kommando-prompt (shell).

Vi anbefaler at macOS-brugere installerer programmerne GCC (GNU Compiler Collection) og LLDB gennem pakkehåndteringsystemet Homebrew. Homebrew er et pakkehåndteringsystem til macOS der automatiserer installationen af mange forskellige programmer, heriblandt GCC. Du kan læse mere om Homebrew på hjemmesiden http://brew.sh/.

Bemærk at denne opgave kun er relevant hvis du kører macOS 10.6 eller nyere, og du ønsker at installere GCC og LLDB gennem pakkehåndteringsystemet Homebrew.

Der er lavet en video (uden lydspor) der viser installationen.

Først installeres Homebrew og LLDB på macOS:

  1. Åben programmet Terminal. Det kan ligge under Applications -> Utilities -> Terminal (eller på dansk: Programmer -> Hjælpeprogrammer -> Terminal).
  2. Kopier den følgende kommando fra http://brew.sh/ over i Terminal-vinduet og afslut med enter:
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. Du bliver nu bedt om at indtaste dit password. Indtast dit password og afslut med enter. Du kan hverken se dit password eller et antal stjerner (*) når du taster det -- koden er usynlig.
  4. Du vil nu blive informeret om at Xcode Command Line Tools vil blive installeret. Tryk enter for at fortsætte installationen.
  5. Når installationen melder Installation Succesful! er Homebrew og LLDB installeret.
  6. Luk Terminal-vinduet.
  7. Homebrew og LLDB kan herefter køres i Terminal-vinduer med kommandoerne homebrew og lldb. Du kan gå videre til installationen af GCC.

Derefter installer GCC gennem Homebrew på macOS:

  1. Åben programmet Terminal. Det kan ligge under Applications -> Utilities -> Terminal (eller på dansk: Programmer -> Hjælpeprogrammer -> Terminal).
  2. Kopier den følgende kommando over i Terminal vinduet og afslut med enter: brew install gcc
  3. Luk Terminal-vinduet.
  4. GCC kan herefter køres i Terminal-vinduer med kommandoen gcc-versionummeret, hvilket på nuværende tidspunkt er gcc-11.

NOTE: Kommandoen gcc i de nyeste udgaver af macOS starter ikke GCC men derimod programmet Clang, der er en alternativ C compiler til GCC. Du kan se hvilken af de to programmer der blive kaldt på dit system med kommandoen gcc -v der printer versions-information i Terminal vinduet.

Tak til Anders Schlichtkrull og Johannes Bjerva for udarbejdelsen af denne vejledning. Tak til Søren Kejser Jensen for en tidligere formulering af denne opgave.

 


1.5   Windows: Installation af Cygwin GCC compiler  

Bemærk at dette IKKE er den anbefalede C installation på dette kursus (men Cygwin gcc har tidligere været anvendt, og det kan overvejes som et alternativ til gcc i MinGW). Se i stedet for en anden opgave.

I dette kursus anbefaler vi at du oversætter C programmer ved eksplicit at kalde en C compiler fra en kommando prompt (shell).

Denne opgave er kun relevant hvis du kører Windows, og hvis du ønsker at bruge gcc (GNU C Compileren) under Cygwin.

Cygwin etablerer en Unix/Posix omgivelse på Windows, og gcc på Cygwin laver programmer som kræver tilstedeværelsen af Cygwin (særlige cygwin DLL filer) for at kunne køre. I modsætning til dette skaber MinGW programmer, som er tættere på Windows (og uafhængig af særlige DLL filer).

Følg denne vejledning for at installere Cygwin på Windows - se også den tilhørende video

Hvis du har lavet en eller anden fejl i din Cygwin installation kan du på ethvert tidspunkt køre installationsprogrammet igen, og ændre på din opsætning.

Afprøv nu dit setup:

 


1.6   Installation af Visual Studio Code  

Visual Studio Code er en populær, gratis teksteditor fra Microsoft, som kan bruges til programmering i C i både Windows, Mac og Linux.

Du kan læse om Visual Studio Code på https://code.visualstudio.com/, og du kan downloade og installer editoren fra samme side.

Du kan bruge Visual Studio Code sammen med en vilkårlig af de gcc compilere, som vi har omtalt på dette kursus. Skriv dit C program i Visual Studio Code, gem det på en fil, og oversæt det med din gcc compiler.

Hvis du er Windows 10 bruger, kan du også anvende Visual Studio Code sammen med WSL (Windows Subsystem for Linux). Windows Subsystem for Linux og Visual Studio Code kan integreres med hinanden. Hvis du er interesseret WSL henvises du til opgaven om dette.

 


1.7   Windows 10: Installation af Windows Subsystem for Linux (WSL)  

Installation af Windows Subsystem for Linux (WSL) er kun relevant for Windows 10 brugere.

WSL er et Linux system som er direkte tilgængelig på Windows 10. I WSL kan du installere et udvalg af forskellige Linux systemer. Når dette er på plads kan du udvikle C programer på Windows 10 i et Linux miljø (med de fleste af de værktøjer som Linux brugere plejer at anvende). Det er endvidere muligt at integrere WSL med Visual Studio Code, hvilket vil være naturligt og attraktivt for mange Windows brugere.

Udgangspunktet for en installation af WSL er siden https://docs.microsoft.com/en-us/windows/wsl/.

Hvis du ønsker at bruge WSL kan du følge anvisninger i ovenstående side. WSL 1 er tilstrækkeligt for dette kursus, men du kan vælge WSL 2 hvis dit Win10 system er tilstrækkelig opdateret.

Med mindre du har en Linux favorit kan du vælge Ubuntu i installationen af WSL.

Undervejs i installationsprocessen skal du muligvis logge ind som Microsoft bruger. Hvis du allerede har et Microsoft login kan du forsøge at bruge det. Ellers skal du registrere dig på sædvanlig vis.

Når du har installeret WSL vil der være filer på dit Windows 10 system, som er Linux filer. Du må under ingen omstændigheder ændre på disse filer fra traditionelle Windows programmer.

Fra dit Linux delsystem vil der være adgang til Windows filer (via Linux mounting af filer).

Overvej at bruge WSL sammen med Visual Studio Code. I Visual Studio Code anbefales det at installere Remote WSL extension, og C/C++ extension.

 


1.8   Mac: Installation af en mulig teksteditor i macOS  

I dette kursus anbefaler vi en meget basal tilgang til udvikling af C-programmer. Vi vil skrive programmerne i en teksteditor (fordi et program er et stykke tekst).

Der er mange forskellige teksteditorer. Og mulighederne varierer naturligvis fra platform til platform (Windows/Linux/Mac). Hvis du allerede er godt i gang med en teksteditor, som du har fuld kontrol over, så brug blot denne til C-programmering. Hvis ikke, kan du overveje at bruge Visual Studio Code eller GNU Emacs. Selv om nogle undervisere bruger GNU Emacs er det er langt fra sikkert, at du skal lære at bruge denne editor.

Denne opgave er således kun relevant hvis du kører macOS, og hvis du ønsker at bruge GNU Emacs som din teksteditor.

Hvordan man downloader GNU Emacs på macOS - se også den tilhørende video (uden lydspor):

Der findes en video Kom godt i gang med Emacs som du måske vil have gavn af at se nu - eller om et par dage. Hvis du ser og forstår denne video, er du rigtig godt på vej!

Overvej at sætte dette bidrag ind i din .emacs fil. (Som beskrevet skal du tilpasse den lidt). .emacs filen diskuteres i videoen.

Tak til Anders Schlichtkrull og Johannes Bjerva for at tilpasse denne vejledning til macOS.

 


1.9   Programmeringsstil  

Denne opgave handler om hvordan et C program 'ser ud'. Opgaven giver dig indsigt i programmeringsstil, og den træner dig i brug af din valgte teksteditor og C-compiler.

Se indledningsvist på 'Hello World' programmerne på på denne slide. Læs kommentaren øverst i hvert program. Oversæt og kør programmerne (hvis det giver mening).

Et C program kan formateres på mange forskellige måder. Indrykning, tomme linier og ekstra mellemrum kan relativt frit tilføjes i ethvert C program. En bestemt programmeringsstil (programming style, coding style) giver anvisninger på, hvordan et program skal formateres. Dårlig og inkonsistent programmeringsstil hæmmer læsbarheden af et program. Formålet med denne opgave er at skabe bevidsthed om programmeringsstil. Emnet vil blive bragt op gentagne gange undervejs i kurset. Så hvorfor ikke starte allerede i dag?

Her er et eksempel på et program, som er formateret på en overordentlig uheldig måde:

#include              <stdio.h>  

int    main(
void
)
{float
first_number   ,
xxx, sidsteTal

;

  printf(
"Give me three: "    )

;scanf("%f    %f             %f"
,
&first_number,      &   xxx,    &
           sidsteTal);   printf(
"Theresult: %f\n", (first_number+xxx     +
sidsteTal                  ) / 3.0)

;  return 0
;}

Kan programmet oversættes? (Kopier det fra browseren over i en tekstfil via din teksteditor, og forsøg at oversætte programmet). Kan det køres?

Diskuterer svaghederne i det viste program. Kan du/I forstå hvad der sker i programmet?

Introducer en bedre programmeringsstil i programmet, ved udelukkende at ændre på 'white spacing' (indrykning, tomme linier, og antallet af mellemrum mellem programmets dele). Dette er en god øvelse, idet den tvinger jer til at tage stilling til rollen af hvert symbol I møder, uafhængig af hvordan symbolet indgår i opstillingen af programmet. Compileren arbejder på samme måde - i det mindste i udgangspunktet.

Lav evt. en version af programmet, som giver endnu større læsbarhed ved f.eks. at ændre på variabelnavngivning. Du må også gerne ændre på promten og øvrige udskrifter i programmet.

Der er mange ressourcer af programmeringsstil (i C) på nettet. Læs indledningsvis Wikipedia's artikel om emnet.

 


1.10   Kopier, editer, compiler og kør et program  

Formålet med denne opgave er at øve dig i arbejdsprocesserne på tværs af en teksteditor, en shell terminal, og en compiler.

Kopier først et program fra undervisningsmaterialet ind i din teksteditor. Du kan passende kopiere programmet som vises øverst i lektion 2 slide 23.

Lav en simpel ændring af programmet: Oversæt f.eks. den fast engelske tekst i printf til dansk.

Lav så et nyt directory (katalog/mappe) fra din terminal med navnet c-programmer. Brug kommandoen mkdir til dette. Dette nye directory kan passende placeres i dit bruger directory på din PC. Når du fremover i kurset skal lave C programmer anbefales det at du laver subdirectories (undermapper) af denne, f.eks. for hver lektion. Så har du orden i dine C-programmer.

Se på de forskellige terminalkommandoer, og prøv dem af.

Gem programmet, som du har i din teksteditor, på filen prog.c i det nye directory c-programmer.

Gå ind i c-programmer med cd kommandoen, og oversæt programmet med gcc. Brug gerne -ansi -pedantic og -Wall options, som beskrevet på compiler sliden.

Kør programmet, typisk med a.exe.

Prøv at lave forskellige små ændringer (fejl) i programmet, og find ud hvad compileren fortæller dig når du oversætter det ændrede program.

Når du er kommet godt igennem denne opgave er du klar til den rigtige IMPR start i næste lektion.

 


Genereret: Mandag 9. maj 2022, 13:53:35