C-programmering – Grundkurs
Utbildningen C-programmering – Grundkurs vänder sig till programmerare och systemerare som ska underhålla befintlig C-programvara.
Du får lära dig läsa, förstå, vidare- och nyutveckla C-kod, vad som ger portabilitet respektive icke-portabilitet och ANSI-standardbiblioteket. Du får också en orientering i moderna utvecklingsverktyg.
Utbildningsformer
Classroom
Remote
Längd
4 dagar
Pris
31450 kr
Målgrupp
Programmerare och systemerare som ska underhålla befintlig C-mjukvara. För den som ska nyutveckla rekommenderas att gå direkt på C++ programmering.
Mål
Du får lära dig:
- Läsa och förstå all slags C-kod
- Underhålla och modifiera/bygga ut befintliga C-program
- Utveckla nya programmoduler
- Vad som skapar portabilitet och icke portabilitet
- Hur ANSI-standardbiblioteket är uppbyggt
- Vilka moderna utvecklingsverktyg som finns
Förkunskaper
Allmän kunskap i dataprogrammering och gärna kunnande och erfarenhet från något annat språk. Kursen genomförs normalt i Windowsmiljö, varför användarkunnande i Windows underlättar.
Kursinnehåll: C-programmering – Grundkurs
1. Introduktion
- Egenskaper hos språket
- Historik och standardisering
- Användandet av C i olika miljöer och för olika ändamål
2. Översikt över C
- Grundläggande syntaxregler
- Main-funktionen och anrop till andra funktioner
- Variabler och typer
- Lagringsklasser och synlighet
- De vanligaste operatorerna
- Parameteröverföring i C - alltid med värdeöverföring
- Programflödeskontroll
- Härledda, egendefinierade typer
3. Utvecklingsmiljön
- Operativsystemet - vanligen Windows-verktyget behandlas endast i den mån det behövs för enkel kompilering av teckenbaserade applikationer. Ev prövas också debugfunktioner.
4. Variabler och typer
- Skillnaden mellan definition och deklaration
- Namnregler för lokala och globala variabler
- Heltalstyper och flyttalstyper
- Tecken, konstanttecken och escapesekvenser
5. Programflödeskontroll
- Flera satser i ett block
- Villkor -if och if-else, nästlade if-else
- Slingor med for, while och do-while
- Switch-satsen, alternativ till nästlade if-else-satser
6. Uttryck och operatorer
- Vad är operator kontra operander?
- Språkets grupper av operatorer –aritmetiska, logiska, jämförande och bitvisa
- Avsaknaden av logisk variabeltyp
- Prioritet och associativitet
- Sizeof-operatorn
- Typkontroll och implicit/explicit typkonvertering i C
7. Funktioner
- Funktionsdefinition (prototyp) kontra definition
- Strukturering med hjälp av funktionell nedbrytning
- Parameteröverföring och returnering
- Synlighetsregler – lokala variabler
- Vad händer egentligen vid ett funktionsanrop?
- Rekursiva funktioner – funktioner som anropar sig själva
8. Preprocessorn
- Makron – ett sätt att definiera konstanter och små funktioner
- Inkludering av header-filer
- Villkor för kompileringen
9. Vektorer och pekare
- Vektorer – en indexerad rad av variabler
- Pekare är minnesadresser
- Sambandet mellan vektorer och pekare, en egenhet i C
- Möjligheten att använda vektornamn som pekare och pekare som vektornamn
- Dynamisk minnesallokering ger en pekare
- Strängar som ett specialfall
- Pekare till funktioner
10. Strukturer
- Möjlighet att kombinera data i större strukturer
- Användandet av pekare till strukturer.
- Olika medlemsdata
- Unioner, ett sätt att komprimera data
- Strukturdeklarationer med typedef
11. Modularisering
- Uppdelning i header och implementation
- Header-filen som interface
- Synlighetsregler vid modularisering
12. Standardbiblioteket
- Historik kring standardiseringen
- Standardbibliotekets omfattning och huvudgrupper - filhantering, stränghantering, minneshantering och matematikfunktioner m m
- Möjligheten att använda andra bibliotek och API:er
13. Vanliga fel
- Genomgång av typiska fel, logiska och syntaktiska
14. Verktyg
- Make-filer, Debugger och Browsers
15. Framtiden
Övningar:
- Ett första program i C
- Beräkna cirkelarea
- Visa teckenrepresentation
- Konvertera teckenrepresentation
- Beräkna typstorlekar
- Enkel fickräknare
- Bitvis skift och maskning
- Beräkna maxtal
- Siffror till text
- Behandla argumentsträng
- Räkna tecken i strängar
- Allokera dynamiskt minne
- Litet register med länkad lista
- Konstruera en stack
- Program för filkopiering