Binäärioperaatiot Tiedostot ja I/O
|
|
- Kauko Hyttinen
- 5 vuotta sitten
- Katselukertoja:
Transkriptio
1 C! Binäärioperaatiot Tiedostot ja I/O
2 Tiedotteita Viimeinen luento to Ohjelmointitehtävä, ohjelmointikoe ja niiden järjestelyt Ohjelmointikokeeseen ilmoittautuminen auki 2
3 .c tiedostot ja.h - tiedostot C-ohjelman lähdekoodi kirjoitetaan.c päätteiseen tiedostoon Ohjelman käyttämät määrittelyt kirjoitetaan.h päätteiseen otsaketiedostoon Funktioiden esittelyt (mutta ei toteutuksia) Tietotyypit, tietorakenteet, jne Ohjelmakoodia tai funktioiden toteutuksia ei kirjoiteta.h tiedostoon.c - lähdetiedostoista viitataan.h - otsaketiedostoihin 3
4 Binääriluvut Laitteistolle luonnollinen tapa käsitellä tietoa Tietokone on (iso) sarja kytkimiä jotka ovat joko päällä tai pois Kaikki isommat lukuarvot rakentuvat biteistä Esim tietokoneen muistissa 10-järjestelmän 6 == 110 bitteinä Binäärilukuja ei voi suoraan esittää standardi C-kielellä (jotkut kääntäjät toteuttavat oman binäärivakio-esitysmuotonsa) Esitetään usein heksadesimaalivakioiden avulla Yksi heksadesimaalimerkki vastaa neljää binäärimerkkiä (bittiä) 4
5 Heksadesimaaliluvut 16-kantainen lukujärjestelmä Voidaan helposti muuntaa binääriluvuiksi (koska 16 == 2 4 ) Yksi heksadesimaalimerkki vastaa neljää bittiä Yksi tavu (= 8 bittiä) mahtuu kahteen heksamerkkiin C-kielessä heksavakiot esitetään 0x - alkuliitteellä 16 merkkiä: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 0xF == 15, 0x10 == 16, 0x1F == 31, 0x20 == 32, Printf ja scanf tulostusformaatti: %x tai %X Vaikka esitystapa vaihtuu, luku pysyy samana 74 == 0x4A == == J 5
6 Lukujärjestelmien vertailua 6
7 Bittioperaattorit Lukujen bittisisällön käsittelyyn Vastaavat loogisia operaattoreita (AND, OR, NOT) Loogiset operaattorit (&&,,!) palauttavat kokonaisluvun 0 tai 1 Binäärioperaattorit (&,, ~, ^) muokkaavat lukua yksittäisten bittien tasolla Kaksi lukua käydään läpi bitti kerrallaan, tuloksena syntyy uusi luku kokonaisluvun arvoksi voi tulla muutakin kuin 0 tai 1 Vertailuehdoissa kannattaa olla tarkkana Esim. && vs. & Toimivat vain kokonaislukutyypeillä 7
8 Bittitason JA A & B: Jos sekä A- ja B-bitti ovat 1, tulos on 1. Muuten tulos on 0 8
9 Bittitason TAI A B: Jos joko A - tai B - bitti on 1, tulos on 1. Jos molemmat ovat 0, tulos on 0 9
10 Bittitason poissulkeva TAI A ^ B: Jos vain jompikumpi bitti on 1, tulos on 1. Jos molemmat bitit ovat samoja, tulos on 0 10
11 Bittitason EI ~A: Käännä bittien tila vastakkaisiksi: 0:sta tulee 1; 1:stä tulee 0 11
12 Esimerkki bittitason operaatioista int main(void) { unsigned char a = 0x69; // unsigned char b = 0xca; // printf("a & b = %x\n", a & b); unsigned char c = a b; } printf("a b = %x\n", c); b ^= a; // b = b ^ a printf("a ^ b = %x\n", b); printf("~a = %x\n", ~a); printf("~a & 0xff = %x\n", ~a & 0xff); Tulostuu: a & b = 48 a b = eb a ^ b = a3 ~a = ffffff96 ~a & 0xff = 96 12
13 Bittien siirtäminen >> operaattori siirtää bittejä oikealle Vastaa kahden potenssilla jakamista << - operaattori siirtää bittejä vasemmalle Vastaa kahden potenssilla kertomista Käytetään kokonaislukutyypin kanssa Arvoalueen ulkopuolelta siirtyvien bittien paikalle tulee 0 13
14 Bittien siirtäminen -- esimerkkejä
15 kahoot.it A) 0110 heksadesimaalimuodossa B) 0x37 binäärimuodossa C) 0xB3 binäärimuodossa D) 0101 & 1100 E) F) 6 & 1 G) << 2 H) 0x4C >> 4 source: eugbug.hubpages.com 15
16 kahoot.it 16
17 2 tavun paketti A B 17
18 I/O virrat FILE *f = fopen("testfile", "w"); if (!f) { fprintf(stderr, "Opening file failed\n"); exit(exit_failure); } writestring(f, mystring); fclose(f); gcc /home/psarolah/file.txt /etc/httpd.conf 18
19 I/O - virta C-kielessä (tiedoston, terminaalin, ) luku ja kirjoitus tapahtuu I/O virtojen kautta Ohjelman liittymä ulkomaailmaan Ennen käyttöä virta pitää avata Muutama oletusvirta on valmiiksi avattuna Useita virtoja voi olla auki kerrallaan Toistaiseksi ollaan käytetty paria I/O operaatiota printf: muotoillun tekstin kirjoittaminen virtaan scanf: tietyn muotoisen syötteen lukeminen virrasta Nämä ovat kohdistuneet oletusvirtoihin, mutta muitakin on 19
20 Puskurointi Syöttö- ja tulostusvirrat ovat puskuroituja Puskuri on tietorakenne, joka taltioi tietoa tilapäisesti Voi näkyä viiveenä syötteen/tulostuksen toimituksessa 20
21 Puskurointi Syöttö- ja tulostusvirrat ovat puskuroituja Puskuri on tietorakenne, joka taltioi tietoa tilapäisesti Voi näkyä viiveenä syötteen/tulostuksen toimituksessa Erityyppisiä puskurointipolitiikkoja Käyttäjän syöte ja tuloste oletuksena rivipuskuroituja Data toimitetaan kun rivi vaihtuu I/O virran puskurin toimintaa voidaan ohjata Ei puskuria tai täysi puskurointi setvbuf funktio Lisäksi käyttöjärjestelmässä on muita puskureita Kaikkeen puskurointiin ei voi helposti vaikuttaa 21
22 I/O-virran käsittely: FILE* - tietotyyppi I/O virtaa käsitellään FILE* - tietotyypin kautta Vain siihen tarkoitettuja funktoita käyttäen I/O - toiminnallisuus määritelty stdio.h otsakkeessa I/O virta avataan fopen - kutsulla: FILE *fopen(const char *path, const char *mode) Path: esimerkiksi tiedoston nimi Mode: käsittelymoodi (luetaanko r, kirjoitetaanko w, jne.) I/O virta täytyy sulkea käytön jälkeen fclose(file *fp) Vapautetaan käytetyt resurssit Virtaa ei voi tämän jälkeen enää käyttää 22
23 I/O-virran avaaminen ja sulkeminen #include <stdlib.h> #include <stdio.h> int main(void) { char *mystring = "One line written to file\n"; } // open 'testfile' for writing (remove previous content) FILE *f = fopen("testfile", "w"); if (!f) { fprintf(stderr, "Opening file failed\n"); exit(exit_failure); } writestring(f, mystring); fclose(f); 23
24 Esimerkki: merkin kirjoitus int writestring(file *fp, const char *str) { while (*str) { // write characters until the end of string if (fputc(*str, fp) == EOF) return -1; // error in writing } } return 0; str++; Huom: stdio.h:ssa myös valmis funktio merkkijonon kirjoitukseen (fputs) 25
25 Standardi I/O - virrat Järjestelmässä on oletusarvoisesti auki kolme I/O-virtaa stdin käyttäjältä tuleva syöte Luetaan esim. scanf funktiolla stdout käyttäjälle menevä tuloste Esim. printf kutsun tuottama teksti stderr virheulostulo puskuroimaton: tuloste näkyy heti Oletuksena stdin ja stdout ovat rivipuskuroituja Oletusarvoisesti syötteet ja tulosteet ohjautuvat terminaali-ikkunaan (mutta voidaan ohjata muualle) 26
26 Eri tyyppisiä I/O - virtoja Putki Esim. terminaalisyöte ja tuloste (esim. stdin ja stdout) Rivipuskuroitu Ei ennalta määriteltyä loppua Syötettä ja tulostetta luetaan/kirjoitetaan koko ajan eteenpäin Tiedosto Täysin puskuroitu Tiedostolla on määritelty loppu Käytetään vakiota EOF: end-of-file Tiedoston käsittelyssä voidaan hypätä mielivaltaiseen kohtaan Ja esim. lukea sama kohta useaan kertaan 27
27 Tekstidata ja Binääridata Monet I/O virrat ovat tekstimuotoisia Lukemisen jälkeen voidaan käsitellä ja tulostaa kuten merkkijonoja Koostuu yleensä riveistä Funktiot fputs ja fgets kirjoittavat ja lukevat tekstisisältöä Olettavat sisällön merkkijonoiksi I/O-virta voi olla myös binäärimuotoinen Esim. Muistissa olevien tietorakenteiden sisältö sellaisenaan Virran arvoja ei voi tulkita tulostettavina merkkeinä Esim. Arvoilla 0 tai 10 (ASCII \n ) ei ole mitään erityismerkitystä Funktiot fwrite ja fread kirjoittavat ja lukevat binäärisisältöä 28
28 Fgets/fputs - esimerkki int main(void) { FILE *f; char buffer[100]; } f = fopen("test.c", "r"); // open file for reading if (!f) { fprintf(stderr, "Opening file failed\n"); return EXIT_FAILURE; } while (fgets(buffer, sizeof(buffer), f)!= NULL) { if (fputs(buffer, stdout) == EOF) { fprintf(stderr, "Error writing to stdout\n"); fclose(f); return EXIT_FAILURE; } } fclose(f); 29
29 Muotoiltu syöte ja tulostus fprintf: yleisempi muoto printf tulostuksesta Voidaan kirjoittaa mihin tahansa virtaan muotoilumääreitä käyttäen Esim. fprintf(stream, %d, luku); printf( %d, luku); on sama kuin fprintf(stdout, %d, luku); fscanf: yleisempi muoto scanf syötteen lukemisesta Lähteenä voi olla mikä tahansa virta Esim. fscanf(stream, %d, &luku); scanf( %d, luku); on sama kuin fscanf(stdin, %d, luku); 31
30 Merkkijonoon tulostus sprintf(char *merkkijono, muotoilu,.) tulostaa annetun muotoilun merkkijonoksi snprintf(char *merkkinono, size_t size, muotoilu, ) Kuten edellä, mutta rajaa merkkijonon enintään size pituiseksi 32
Binäärioperaatiot Tiedostot ja I/O
C! Binäärioperaatiot Tiedostot ja I/O 16.3.2017 Tiedotteita Määräaikoja pidennetty Myös 7. kierros uudestaan auki perjantaihin asti Seuraava ja viimeinen luento 30.3. Makrot, funktio-osoittimet Kokeen
LisätiedotModuli 5: Kehittyneitä piirteitä
C! : Kehittyneitä piirteitä 19.4.2016 Aikataulusta 5. harjoituskierroksen määräaika: pe 22.4. Maari-C keskiviikkoisin ja torstaisin (12-14) Ti 26.4. Harjoitustentti (eli kertausluento) Normaalin luennon
LisätiedotModuli 4: Moniulotteiset taulukot & Bittioperaatiot
C! : Moniulotteiset taulukot & Bittioperaatiot 15.3.2016 Agenda Pieni kertausharjoitus Moniulotteiset taulukot Esimerkki taulukoista Tauko (bittitehtävä) Binäärioperaatioista Esimerkki (vilkaistaan IP
LisätiedotTiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot
Tiedosto yhteenkuuluvien tietojen joukko, joka on tavallisesti talletettu pysyväismuistiin muodostuu tietueista, jotka voivat olla keskenään samanlaisia tai vaihdella tyypiltään tiedostot ovat joko tekstitiedostoja
LisätiedotMuistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa
ssa ohjelman käytössä suoritusaikana oleva muisti jakautuu neljään osaan: koodisegmentti datasegmentti pinosegmentti (stack) kasa (heap) ssa ohjelman koodisegmentti sisältää käännetyn ohjelmakoodin sisältö
LisätiedotLoppukurssin järjestelyt
C! Loppukurssin järjestelyt 29.3.2018 Ohjelmassa Yhteenvetoa palautteesta Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Kysyttävää / kerrattavaa 10-kierroksen asioista? Aikatauluista 10. kierroksen
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) Toistaiseksi helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Vaikeaa eroavuudet Pythonin ja C:n
LisätiedotTiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä.
Tiedostot Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä. C-kielessä syöttö ja tulostus kuvataan laiteriippumattomasti
LisätiedotMerkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:
Merkkijonot C-kielessä merkkijono on taulukko, jonka alkiot ovat char -tyyppiä. Taulukon viimeiseksi merkiksi tulee merkki '\0', joka ilmaisee merkkijonon loppumisen. Merkkijono määritellään kuten muutkin
Lisätiedot1. Mitä seuraava ohjelma tulostaa? Vastaukseksi riittää yksi rivi joka esittää tulosteen. (6 p)
C- ohjelmoinnin peruskurssi, Tentti 28.5.2015 Lyhyt referenssi funktioista tehtäväpaperin lopussa. Paperilla on 5 tehtävää, joista useimmissa on muutama alikohta. Maksimipistemäärä on 30 pistettä. Kirjoita
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2017 Palautteesta (1. kierros toistaiseksi) (Erittäin) helppoa Miksi vain puolet pisteistä? Vaikeinta oli ohjelmointiympäristön asennus ja käyttö Ei selvää että main funktion pitikin
LisätiedotLyhyt kertaus osoittimista
, syksy 2007 Kertausta Luento 10 12.10.2007 Syksy 2007 1 Lyhyt kertaus osoittimista char *p; /* char, int, jne ilmoittavat, minkä tyyppisiä */ Keskusmuisti int *q; /* olioita sisältäviin muistilohkoihin
LisätiedotOhjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila
AS-0.1103 C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti 15.05.2013, Raimo Nikkila Ohjeet Kaikki ohjelmointitehtavat tulee toteuttaa C-kielella hyvaa ohjelmointityylia noudattaen.
LisätiedotLoppukurssin järjestelyt C:n edistyneet piirteet
C! Loppukurssin järjestelyt C:n edistyneet piirteet 30.3.2017 Ohjelmassa Ohjelmontitehtävän järjestelyt Tietokonetentin järjestelyt Esikääntäjä Parametrilistat Funktio-osoittimet Kunniamainintoja Kuura
LisätiedotTietotyypit ja operaattorit
Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto
LisätiedotC-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys
Loogisia operaatioita - esimerkkejä Tänään on lämmin päivä ja perjantai Eilen satoi ja oli keskiviikko tai tänään on tiistai. On perjantai ja kello on yli 13 Ei ole tiistai tai ei sada. Ei pidä paikkaansa,
LisätiedotC-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja
1. C-kieli yleiskäyttöinen ohjelmointikieli, standardoitu 1990. siirrettävä laiteläheinen pieni ydin, monimutkaiset kokonaisuudet rakennetaan aliohjelmakirjastojen avulla. direktiivit ja esikääntäjien
LisätiedotC-ohjelmointi, syksy 2006
, syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot
LisätiedotC-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento
, syksy 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 3.10.2006 Syksy 2006 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset taulukot
LisätiedotOhjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:
1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri
LisätiedotPerusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti
C! Perusteet 19.1.2015 Työkaluista Perinteinen: komentorivi + tekstieditori Editori: esimerkiksi Kate, Notepad++, Aquamacs (Emacs) Ohjelman kääntäminen ja suorittaminen komentoriviterminaalissa TMC - komentorivityökalu
LisätiedotICS-C2000 Tietojenkäsittelyteoria Kevät 2016
ICS-C2000 Tietojenkäsittelyteoria Kevät 2016 Kierros 6, 22. 26. helmikuuta Huom: arviointiviikolla 15. 19.2. ei ole laskuharjoituksia! Demonstraatiotehtävien ratkaisut D1: (a) Osoita, että seuraava yhteydetön
LisätiedotOhjeet. Jaa vastauksesi konsepteille siten, etta:
/ AS-0.1103/4 C~ohjelmoinnin peruskurssi Aalto-yliopiston teknillinen korkeakoulu Tentti 12.05.2010, Raimo Nikkilii Ohjeet Kaikki ohjelmointitehtavat tulee toteuttaa C-kielella hyvaa ohjelmointityylia
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotRakenteiset tietotyypit Moniulotteiset taulukot
C! Rakenteiset tietotyypit Moniulotteiset taulukot 22.2.2018 Agenda Rakenteiset tietotyypit Vilkaisu 6. kierroksen tehtäviin Moniulotteiset taulukot Esimerkki Seuraava luento to 8.3. Ilmoittautuminen ohjelmointikokeeseen
LisätiedotOhjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.
Osoittimet Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan. Muistilohkon koko riippuu muuttujan tyypistä, eli kuinka suuria arvoja muuttujan
LisätiedotHarjoitustyö: virtuaalikone
Harjoitustyö: virtuaalikone Toteuta alla kuvattu virtuaalikone yksinkertaiselle olio-orientoituneelle skriptauskielelle. Paketissa on testaamista varten mukana kaksi lyhyttä ohjelmaa. Ohjeita Noudata ohjelman
LisätiedotKappale 20: Kantaluvut
Kappale 20: Kantaluvut 20 Johdanto: Kantaluvut... 328 Kantalukujen syöttäminen ja muuntaminen... 329 Matemaattiset toiminnot Hex- ja Bin-luvuilla... 330 Bittien vertaileminen ja manipulointi... 331 Huom!
LisätiedotTietueet. Tietueiden määrittely
Tietueet Tietueiden määrittely Tietue on tietorakenne, joka kokoaa yhteen eri tyyppistä tietoa yhdeksi asiakokonaisuudeksi. Tähän kokonaisuuteen voidaan viitata yhteisellä nimellä. Auttaa ohjelmoijaa järjestelemään
LisätiedotC-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.
Taulukot C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa. Taulukon muuttujilla (muistipaikoilla) on yhteinen nimi. Jokaiseen yksittäiseen
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, literaalivakio, nimetty vakio Tiedon merkkipohjainen tulostaminen 1 Tunnus Java tunnus Java-kirjain Java-numero
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen
LisätiedotC-ohjelmoinnin peruskurssi. Pasi Sarolahti
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 4.6.2018 Mikä C? 4 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 5 C vs Python Python friends = ['john',
Lisätiedottietueet eri tyyppisiä tietoja saman muuttujan arvoiksi
tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi ero taulukkoon taulukossa alkiot samantyyppisiä tietueessa alkiot voivat olla erityyppisiä tiedot kuitenkin yhteen kuuluvia ohjelmoinnin perusteet,
LisätiedotOhjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin
Ohjausjärjestelmien jatkokurssi Visual Basic vinkkejä ohjelmointiin http://www.techsoft.fi/oskillaattoripiirit.htm http://www.mol.fi/paikat/job.do?lang=fi&jobid=7852109&index=240&anchor=7852109 Yksiköt
Lisätiedot9/20: Puhu mun stdinille
Ohjelmointi 1 / syksy 2007 9/20: Puhu mun stdinille Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/12 Tällä luennolla
LisätiedotC-ohjelmoinnin peruskurssi. Pasi Sarolahti
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
LisätiedotLuennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin
, kevät 2006 Taulukot Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot Binääritiedostot Luento 8 21.3.2006 Kevät 2006 Liisa Marttinen 1 Luennon sisältö Taulukoiden käsittelyä Yksiulotteiset
LisätiedotKoottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.
2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet
Lisätiedot2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)
2. Lisää Java-ohjelmoinnin alkeita Muuttuja ja viittausmuuttuja Vakio ja literaalivakio Sijoituslause Syötteen lukeminen ja Scanner-luokka 1 Muuttuja ja viittausmuuttuja (1/4) Edellä mainittiin, että String-tietotyyppi
LisätiedotTähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python
Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 6: Python 15. helmikuuta 2009 Merkkijonot Yleistä Käsittely Muotoiltu tulostus Tiedostot Käsittely Lukeminen Kirjoittaminen Modulit Käyttö Seuraava luento
Lisätiedot2. C-kieli ja ongelmanratkaisu
2. C-kieli ja ongelmanratkaisu Taustaa Esimerkki C-kielisen ohjelman kehityksestä Kielen yleispiirteet Muuttujat Suoritettavat lauseet Tietotyypit ja lausekkeet Tietojen lukeminen ja tulostaminen 64 C
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 20.1.2010 T-106.1208 Ohjelmoinnin perusteet Y 20.1.2010 1 / 40 Arvon pyytäminen käyttäjältä Käyttäjän antaman arvon voi lukea raw_input-käskyllä. Käskyn sulkujen
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 28.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 28.2.2011 1 / 46 Ohjelmointiprojektin vaiheet 1. Määrittely 2. Ohjelman suunnittelu (ohjelman rakenne ja ohjelman
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 3.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.3.2010 1 / 44 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle
LisätiedotLuennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu
C-kurssi Viikko 1: tyypit, rakenteet, makrot Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostus Makrot
LisätiedotHarjoitus 3 (viikko 39)
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Vältä liian pitkiä rivejä. Ohjelmointitehtävien
Lisätiedot5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma
5.6. C-kielen perusteet, osa 6/8, Taulukko 6.1.2008, pva, kuvat jma Every cloud has a silver line. - englantilainen sananlasku Tässä osiossa tärkeää: yksi- ja moniulotteinen taulukko Sisältö Yleistä Yksiulotteinen
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Kurssin sisältö pääpiirteittäin Tarvittavat pohjatiedot Avainsanat Abstraktio Esimerkkiohjelman tehtäväkuvaus Abstraktion käyttö tehtävässä Abstrakti tietotyyppi Hyötyjä ADT:n
LisätiedotPythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b
Pythonin Kertaus Cse-a1130 Tietotekniikka Sovelluksissa Versio 0.01b Listat 1/2 esimerkkejä listan peruskäytöstä. > lista=['kala','kukko','kissa','koira'] ['kala','kukko','kissa','koira'] >lista.append('kana')
LisätiedotOhjelmointiharjoituksia Arduino-ympäristössä
Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet
Lisätiedot// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;
// // whiledemov1.c // #include int main(void){ int luku1 = -1; int luku2 = -1; while( luku1
Lisätiedot13 Operaattoreiden ylimäärittelyjä
248 13 C++-kielessä voidaan operaattoreita ylimäärittää. Ylimääriteltävää operaattoria voidaan pitää ikäänkuin metodina, joka esitellään luokan esittelyssä ja määritellään luokan ulkopuolella kuten metoditkin.
LisätiedotC-ohjelmoinnin peruskurssi. Pasi Sarolahti
C! C-ohjelmoinnin peruskurssi Pasi Sarolahti 12.1.2017 presemo.aalto.fi/c17 1/12/17 Mikä C? 3 Ken Thompson & Dennis Ritchie http://www.computerhistory.org/fellowawards/hall/bios/ken,thompson/ 4 Mikä C?
LisätiedotEsimerkki luokkahierarkiasta: C++-kielen IOstream-kirjasto
Esimerkki luokkahierarkiasta: C++-kielen IOstream-kirjasto Tässä materiaalissa tutustutaan tarkemmin C++:n luokkahierarkiaan. Koska kyseessä on oliopohjainen kieli, C++:n luokat on järjestetty hierarkisesti
LisätiedotOsoittimet ja taulukot
C! ja taulukot 1.2.2018 Tiedotteita Tämän jälkeen taas pari väliviikkoa (tenttiviikko) Seuraava luento 22.2. Laskareita ei tenttiviikolla 12.2. 16.2. 2 ja muisti Muisti Keskusyksikkö Suorittaa muistissa
LisätiedotTiedon esitysmuodot. Luento 6 (verkkoluento 6) Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto
Luento 6 (verkkoluento 6) Tiedon esitysmuodot Lukujärjestelmät Kokonaisluvut, liukuluvut Merkit, merkkijonot Äänet, kuvat, muu tieto Ohjelman esitysmuoto Rakenteellinen tieto 1 Tiedon tyypit Kommunikointi
LisätiedotAS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin
AS-0.1103 C-ohjelmoinnin peruskurssi 2013: C-kieli käytännössä ja erot Pythoniin Raimo Nikkilä Aalto-yliopiston sähkötekniikan korkeakoulu - Automaation tietotekniikan tutkimusryhmä 17. tammikuuta 2013
LisätiedotJavan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi
1 Javan perusteet Ohjelmointi IPO-malli Java lähdekoodista suoritettavaksi ohjelmaksi Vakio Muuttuja Miten Javalla näytetään tietoa käyttäjälle, miten Javalla luetaan käyttäjän antama syöte Miten Javalla
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 19.1.2011 T-106.1208 Ohjelmoinnin perusteet Y 19.1.2011 1 / 39 Haluatko antaa palautetta luennoista? Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti Vast
LisätiedotRakenne. C-ohjelmointi: Tietorakenteita ja tyyppejä. Tyyppimuunnoksia aritmeettisten tyyppien välillä. Tyyppimuunnokset. & (bitti and) Bittioperaatiot
C-ohjelmointi: Tietorakenteita ja tyyppejä Liisa Marttinen & Tiina Niklander 22.3.2005 Tyyppimuunnokset Tyyppimuunnoksia aritmeettisten tyyppien välillä Laskutoimituksissa tehdään automaattisia tyyppimuunnoksia
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin
LisätiedotC-ohjelmointi, kevät Merkkijonot Komentoriviparametrit. Luento
, kevät 2006 Merkkijonot Komentoriviparametrit Luento 7 14.3.2006 Kevät 2006 Liisa Marttinen 1 Merkkijonot (strings) (Müldnerin kirjan luku 9) C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten
LisätiedotMerkkijonot Komentoriviparametrit
, kevät 2006 Merkkijonot Komentoriviparametrit Luento 7 14.3.2006 Kevät 2006 Liisa Marttinen 1 Merkkijonot (strings) (Müldnerin kirjan luku 9) C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Useampitasoiset ADT:t Käytetään esimerkkiohjelmaa Ratkaisuyritys 1 Ratkaisuyritys 2 Lopullinen ratkaisu Lopullisen ratkaisun toteutusyritys Lopullisen ratkaisun oikea toteutus
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 13.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 13.9.2017 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 14.9.2016 CS-A1111 Ohjelmoinnin peruskurssi Y1 14.9.2016 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 12.9.2018 CS-A1111 Ohjelmoinnin peruskurssi Y1 12.9.2018 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 11.9.2019 CS-A1111 Ohjelmoinnin peruskurssi Y1 11.9.2019 1 / 19 Oppimistavoitteet: tämän luennon jälkeen osaat kirjoittaa Python-ohjelman, joka pyytää käyttäjältä lukuja,
Lisätiedot815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset
815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 2 vastaukset Harjoituksen aiheena on BNF-merkinnän käyttö ja yhteys rekursiivisesti etenevään jäsentäjään. Tehtävä 1. Mitkä ilmaukset seuraava
LisätiedotKirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.
Tehtävä 1. Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä. #include /* mm. I/O-funktiot */ #include /* mm. EXIT_SUCCESS */ /*main-funktio,
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CS-A1111 27.9.2017 CS-A1111 Ohjelmoinnin peruskurssi Y1 27.9.2017 1 / 30 Mahdollisuus antaa luentopalautetta Luennon aikana voit kirjoittaa kommentteja ja kysymyksiä sivulle
LisätiedotModuli 2: Osoittimet ja taulukot. Joel Huttunen
: Osoittimet ja taulukot 26.1.2016 Moduli 1 yhteenvetoa laskuharjoituksista (PS: palautteen saa jättää myös suomeksi jos haluaa) Ongelmia ympäristön asennuksessa Hoitakaa kuntoon ajoissa, niin loppukurssilla
LisätiedotC-ohjelmointi, syksy Merkkijonot Komentoriviparametrit. Luento C-ohjelmointi Syksy
, syksy 2008 Merkkijonot Komentoriviparametrit Luento 7 26.9.2008 Syksy 2008 1 Merkkijonot (strings) luku 9) (Müldnerin kirjan C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten Javassa) Merkkijono
LisätiedotJava-kielen perusteet
Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero
LisätiedotMerkkijonot Komentoriviparametrit
C-ohjelmointi Merkkijonot Komentoriviparametrit Viikko 5 1 Merkkijonot (strings) luku 9) (Müldnerin kirjan C:ssä merkkijono ei ole ennaltamääritelty datatyyppi (kuten Javassa) Merkkijono on osoitin merkkeihin
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 1.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 1.3.2010 1 / 36 Monikko Monikko (engl. tuple) muistuttaa listaa, mutta monikon sisältöä ei voi muuttaa sen jälkeen,
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Mikäli tehtävissä on jotain epäselvää, laita sähköpostia vastuuopettajalle (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja sisentää koodisi. Ohjelmointitehtävien osalta palautetaan
LisätiedotTietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla
Tietojen syöttäminen ohjelmalle Tähän mennessä on käsitelty Javan tulostuslauseet System.out.print ja System.out.println sekä ohjelman perusrakenneosat (muuttujat, vakiot, lauseet). Jotta päästään tekemään
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2009 1 / 28 Puhelinluettelo, koodi def lue_puhelinnumerot(): print "Anna lisattavat nimet ja numerot." print
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 21.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 21.1.2009 1 / 32 Tyypeistä Monissa muissa ohjelmointikielissä (esim. Java ja C) muuttujat on määriteltävä ennen
LisätiedotOhjelmointi 1 Taulukot ja merkkijonot
Ohjelmointi 1 Taulukot ja merkkijonot Jussi Pohjolainen TAMK Tieto- ja viestintäteknologia Johdanto taulukkoon Jos ohjelmassa käytössä ainoastaan perinteisiä (yksinkertaisia) muuttujia, ohjelmien teko
LisätiedotC-kurssi kevät Luennon sisältö
C-kurssi kevät 2006 Luento 2: tyypit, rakenteet, makrot 24.1.2006 Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö
LisätiedotLuennon sisältö. C-kurssi kevät Tasokokeen kohta 1: Taulukon järjestäminen. Tasokokeen kohta 2. Tasokokeen kohta 2. Tasokokeen kohta 3
Luennon sisältö C-kurssi kevät 2006 Luento 2: tyypit, rakenteet, makrot 24.1.2006 Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö
LisätiedotC-kurssi syksy ltö. Luennon sisält. Luento 2: tyypit, rakenteet, makrot Tyypit. signed, unsigned short,, long Vakiot const Rakenteet
C-kurssi syksy 2007 Luento 2: tyypit, rakenteet, makrot 5.9.2008 Luennon sisält ltö Tyypit int, char, float, double signed, unsigned short,, long Vakiot const Rakenteet if,, for, while, switch, do-while
LisätiedotLuennon sisält. ltö. C-kurssi syksy ääreet: int ja char. Yksinkertaiset tyypit. Kokonaisluvut. Merkit
Luennon sisält ltö C-kurssi syksy 2007 Luento 2: tyypit, rakenteet, makrot 5.9.2008 Tyypit int, char, float, double signed, unsigned short,, long Vakiot const Rakenteet if,, for, while, switch, do-while
LisätiedotOperaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta
C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus
LisätiedotTietorakenteet ja algoritmit
Tietorakenteet ja algoritmit Muuttujat eri muisteissa Ohjelman muistialueen layout Paikallisen ja globaalin muuttujan ominaisuudet Dynaamisen muistinkäytön edut Paikallisten muuttujien dynaamisuus ADT
LisätiedotOhjelmoinnin peruskurssi Y1
Ohjelmoinnin peruskurssi Y1 CSE-A1111 9.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 9.9.2015 1 / 26 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.
Lisätiedot1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.
EVTEK Teknillinen ammattikorkeakoulu Ohjelmointi (C) T0004 Syksy 2003 Olli Hämäläinen kurssin sisältö ja tavoitteet työmuodot luennot 1-2/2003 laboratorioharjoitukset 1-2/2003 kotitehtävät, laboratoriokerrat
LisätiedotOsoittimet ja taulukot
Osoittimet ja taulukot Hannu Laine Copyright Hannu Laine Osoittimet int main (void) { int a; int *p; //p on osoitinmuuttuja p = &a; *p = 10; printf( %d, *p); //tulostuu muuttujan a sisältö scanf( %d, p);
Lisätiedot3. Binääripuu, Java-toteutus
3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );
LisätiedotATK tähtitieteessä. Osa 4 - IDL input/output. 19. syyskuuta 2014
19. syyskuuta 2014 IDL - INPUT/OUTPUT-rutiinit IDL pystyy lukemaan ja kirjoittamaan monentyyppisiä tiedostoja, esim. FORTRAN ja C-kielten ohjelmien tulostusta. Käytössä on myös monipuoliset tulostuksen
LisätiedotSystem.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);
Kysy Karilta tai Kimmolta, jos tehtävissä on jotain epäselvää. Kerro WETOon liittyvät ongelmat suoraan Jormalle sähköpostitse (jorma.laurikkala@uta.fi). Muista nimetä muuttujat hyvin sekä kommentoida ja
LisätiedotHarjoitus 6 (viikko 42)
Nämä ovat kurssin viimeiset harjoitukset. Hyväksytyistä ratkaisuista ja läsnäoloista kerättyjen pisteiden summan tulee olla vähintään 40 % ( pistettä) tehtävien ja läsnäolopisteiden kokonaislukumäärien
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja
LisätiedotVIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto
Osa VIII Liitteet Liitteet A B C Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto Osa VIII A. Liite Operaattoreiden suoritusjärjestys On tärkeää ymmärtää, että operaattoreilla on prioriteettinsa,
LisätiedotOhjelmoinnin perusteet Y Python
Ohjelmoinnin perusteet Y Python T-106.1208 16.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 16.3.2009 1 / 40 Kertausta: tiedostosta lukeminen Aluksi käsiteltävä tiedosto pitää avata: tiedostomuuttuja = open("teksti.txt","r")
Lisätiedotint puts(char *buff) Kirjoittaa puskurissa buff \0 :lla päätetyn merkkijonon standarditulostukseen. Formatoitu konsoli-i/o Tiedostot
1. Standardikirjasto Ohjelmankehitysympäristössä on joukko kirjastoituja funktioita. on joukko otsikkotiedostoja, joissa on kirjastofunktioiden prototyypit (esittelyt) ja tarvittavien vakioiden, tietotyyppien
Lisätiedot12. Näppäimistöltä lukeminen 12.1
12. Näppäimistöltä lukeminen 12.1 Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In-luokka. Luetun arvon tarkistaminen. Tietovirrat ja ohjausmerkit.
Lisätiedot