C-ohjelmoinnin peruskurssi. Pasi Sarolahti

Samankaltaiset tiedostot
C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

AS C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

5. HelloWorld-ohjelma 5.1

Loppukurssin järjestelyt

4. Lausekielinen ohjelmointi 4.1

5. HelloWorld-ohjelma 5.1

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

KYMENLAAKSON AMMATTIKORKEAKOULU

Ohjelmointi 1 / syksy /20: IDE

Loppukurssin järjestelyt C:n edistyneet piirteet

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

4. Lausekielinen ohjelmointi 4.1

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

P e d a c o d e ohjelmointikoulutus verkossa

BlueJ ohjelman pitäisi löytyä Development valikon alta mikroluokkien koneista. Muissa koneissa BlueJ voi löytyä esim. omana ikonina työpöydältä

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

Ohjelmoinnin perusteet Y Python

T harjoitustehtävät, syksy 2011

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Pedacode Pikaopas. Web-sovelluksen luominen

Laiteläheinen C-kieli osa 1 pva

BL40A1810 Mikroprosessorit, harjoitus 1

Ohjelmoinnin peruskurssi Y1

D-OHJELMOINTIKIELI. AA-kerho, 33. Antti Uusimäki. Arto Savolainen

Ohjelmointi Linuxissa. Sisällysluettelo. 1. Mitä tarvitaan sovellusten tuottamiseen? Tehnyt: Antti Martikainen ( )

Kääntäjän virheilmoituksia

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

Osa. Miksi C++ on oikea valinta. Oppitunnit 1 Aloitetaan 2 C++ -ohjelmat osat 3 Muuttujat ja vakiot 4 Ilmaukset ja ohjelmalauseet 5 Funktiot

OHJELMOINNIN TYYLISÄÄNTÖJÄ

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

Ohjelmointi 1. Kumppanit

Apuja ohjelmointiin» Yleisiä virheitä

Työkalut ohjelmistokehityksen tukena

Dynaaminen muisti. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät 2017.

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Laiteläheinen C-kieli, mitä C-käännösprosessissa tapahtuu

T harjoitustyö, kevät 2012

PLA Mobiiliohjelmointi. Mika Saari

Dart. Ryhmä 38. Ville Tahvanainen. Juha Häkli

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Chapel. TIE Ryhmä 91. Joonas Eloranta Lari Valtonen

Ohjelmoinnin perusteet Y Python

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Test-Driven Development

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Modulaarinen ohjelmointi

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

TIE Principles of Programming Languages. Seminaariesityksen essee. Ryhmä 18: Heidi Vulli, Joni Heikkilä

Ohjelmoinnin perusteet, syksy 2006

Ohjelmoinnin perusteet Y Python

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Ohjelmoinnin perusteet Y Python

Luento 5. Timo Savola. 28. huhtikuuta 2006

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Pedacode Pikaopas. Web Service asiakasohjelman luominen

MITÄ JAVASCRIPT ON?...3

Ohjelmoinnin perusteet Y Python

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

C-ohjelmointi, syksy Modulaarinen ohjelmointi. Luento C-ohjelmointi Syksy

PLA Mobiiliohjelmointi. Mika Saari

Ohjelmoinnin peruskurssien laaja oppimäärä

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

P e d a c o d e ohjelmointikoulutus verkossa

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

XML tehtävien työnkulku

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Test-Driven Development

(Tätä ohjetta saa käyttää yliopiston opetustarkoituksiin ja jatkokehittelyyn.)

Oppimisympäristön ominaisuudet

Visma Econet -ohjelmat ActiveX on epävakaa -virheilmoituksen korjausohjeet

Sangen lyhyt L A T E X-johdatus

Ohjelmoinnin peruskurssien laaja oppimäärä

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaihe 3. Antti Jääskeläinen Matti Vuori

.NET ajoympäristö. Juha Järvensivu 2007

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

GIS-automatisointi ja ohjelmointi/skriptaus. Harri Antikainen

Johdatus edistyneeseen web-kehitykseen. Juuso Lappalainen

58160 Ohjelmoinnin harjoitustyö

Sangen lyhyt L A T E X-johdatus

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Muistutus aikatauluista

TIE Principles of Programming Languages CEYLON

Soveltuvuustutkimus Lifebelt-ohjelman ideologian käytettävyydestä olioorientoituneeseen

Valppaan asennus- ja käyttöohje

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

Transkriptio:

C! C-ohjelmoinnin peruskurssi Pasi Sarolahti

Mitä haluan oppia C-kurssilla? ja miksi? Tutustu lähimpään naapuriin Keskustelkaa miksi halusitte / jouduitte tulemaan kurssille 3 minuuttia è kootaan vastauksia yhteen (Presemo) presemo.aalto.fi/c17 2

C-koodia näkee esimerkiksi 3

Kurssin tavoitteet C-kielen perusteiden hallinta, mm. Perusrakenteet, tietotyypit ja syntaksi Osoittimet ja muistinhallinta Binäärioperaatiot Kyky toteuttaa itsenäisesti lyhyitä C-ohjelmia Kyky löytää ja korjata virheitä omasta (ja toisten) koodista Tarvittavien koodaus- ja debugaustyökalujen tunteminen Ymmärrys siitä miten oma C-ohjelma suhtautuu tietokoneeseen ja käyttöjärjestelmään 4

Työskentelytavat Ohjelmoimaan oppii parhaiten ohjelmoimalla Paljon ohjelmointiharjoituksia Palautus automaattiselle tarkistimelle Materiaali verkossa Ei varsinaisia luentoja Lopussa isompi ohjelmointitehtävä ja ohjelmointikoe 5

Keskustelualue: Slack Ensisijainen: Slack https://aalto-c.slack.com/signup Käytettävä aalto.fi sähköpostiosoitetta Jos et omista aalto.fi osoitetta, voimme lisätä käsin Toimii web-selaimella: https://aalto-c.slack.com/ Saatavana myös sovellukset monille käyttökärjestelmille: OS X, ios, Android, 14

C - ohjelman tuottaminen

Kännös C-lähdekoodi C vs. Python ohjelma.c Python-koodi Suoritus ohjelma.py C-kääntäjä Python-tulkki Suoritus Käyttöjärjestelmä Ohjelmabinääri a.out Käyttöjärjestelmä Tietokone Tietokone 17

C vs. Python - eroja Muotoilu C-kielessä sisennyksillä tai rivinvaihdoilla ei väliä - Äärimmillään koko ohjelman voi kirjoittaa (melkeinpä) yhdelle riville - Käytännössä käytetään koodia selkeyttämään Muuttujat C:ssä staattinen tyypitys: tyyppi määritellään käännösaikana Muuttujien yhteydessä niiden tyyppi on aina määriteltävä Syntaksi Puolipiste lopettaa aina lauseen: unohtaminen aiheuttaa virheen Lohkorakenteet merkitään aaltosuluilla Muistinhallinta 18

C-ohjelmoinnin vaiheet 1. Kirjoitetaan ohjelmakoodi tekstieditorilla Ohjelmatiedostot nimetään.c päätteellä Suuret ohjelmistot koostuvat useista lähdetiedostoista 2. Käännetään ohjelmakoodi Esikäännös: koodin alkuprosessointi Käännös: c-koodista objektitiedostoksi (yksi per.c tiedosto) Linkkaus: koostetaan objektitiedostot suoritettavaksi ohjelmaksi Mikäli varoituksia tai virheitä, mennään kohtaan 1 ja korjataan 3. Testataan ohjelmaa Mikäli virheitä, mennään kohtaan 1 ja korjataan 19

C-kehityksessä käytetyt tiedostot.c päätteiset tiedostot sisältävät lähdekoodin Suurempi ohjelma voi sisältää näitä useita Yhdistetään yhdeksi ohjelmaksi linkkausvaiheessa.h päätteiset tiedostot ovat otsakkeita Tietotyyppien ja funktioiden määrittelyt Viittaukset.c tiedostoista #include - komennolla Tarvitaan, jotta lähdekoodi voi käyttää ulkopuolisia määrittelyjä Makefile ohjeistus make-työkalulle Kertoo mitkä tiedostot ohjelmaan kuuluvat Sisältää ohjeet ohjelman kääntämiseksi Sekä mahdollisesti muita kehityksessä tarvittavia toimintoja 20

Ohjelman kääntäminen Usein käytetään GNU C (gcc) kääntäjää Yksinkertaisimmillaan komentorivillä: gcc <lähdetiedosto.c> Tuottaa a.out nimisen tiedoston, joka suorittaa ohjelman Jos ohjelma koostuu useasta lähdetiedostosta, kaikki.c tiedostot listataan komentorivillä.h tiedostoja ei listata komennon yhteydessä 21

Kääntämisen tulos Jos kaikki sujuu hyvin: ei tulostetta Kurssin ohjelmissa syntyy src/main ja test/test - tiedostot Käännösvirheet Kääntäjä ei pysty tuottamaan suoritettavaa binääritiedostoa Tutki virheilmoitukset, ja yritä korjata koodi niiden mukaan Varoitukset Kääntäjä tuottaa suoritettavan koodin ja binääritiedosto syntyy Koodissa on hyvin todennäköisesti vikaa Varoitukset syytä aina korjata Ilmoituksissa rivinumero ongelman paikantamiseksi 22

Työkaluista Perinteinen: komentorivi + tekstieditori Editori: esimerkiksi Kate, Emacs, Vi, Notepad++ Ohjelman kääntäminen ja suorittaminen komentoriviterminaalissa Integroitu kehitysympäristö (IDE) Kaikki toiminnot yhdessä paketissa Esim: Xcode, Visual Studio, (Eclipse, Netbeans) 23