// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;

Koko: px
Aloita esitys sivulta:

Download "// // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1;"

Transkriptio

1 // // whiledemov1.c // #include <stdio.h> int main(void){ int luku1 = -1; int luku2 = -1; while( luku1 <= 0 ){ printf("\nanna nollaa suurempi kokonaisluku > "); scanf("%d", &luku1); //fpurge( stdin ); //while( '\n'!= getchar() ); printf("\nsyotit luvun: %d\n", luku1); while( luku2 <= 0 ){ printf("\nanna toinen nollaa suurempi kokonaisluku > "); scanf("%d", &luku2); printf("\nsyotit luvun: %d\n", luku2);! return 0;

2 // // whiledemov2.c // #include <stdio.h> int main(void){ int luku1 = 0; int luku2 = 0; do{ printf("\nanna nollaa suurempi kokonaisluku > "); scanf("%d", &luku1); while( '\n'!= getchar() ); while( luku1 <= 0 ); printf("\nsyotit luvun: %d\n", luku1); do{ printf("\nanna toinen nollaa suurempi kokonaisluku > "); scanf("%d", &luku2); while( '\n'!= getchar() ); while( luku2 <= 0 ); printf("\nsyotit luvun: %d\n", luku2); return 0;

3 #include <stdio.h> void piirraympyra(void); void piirrakolmio(void); void piirrasuorat(void); void piirrakanta(void); int main(void){ // piirr ympyr piirraympyra( ); // piirr kolmio piirrakolmio( ); // pirr suorat piirrasuorat( ); return 0; void piirraympyra(void){ printf("\npiirretaan ympyraa\n");

4 void piirrakolmio(void){ printf("\npiirretaan Kolmiota\n"); piirrasuorat( ); piirrakanta( ); void piirrasuorat(void){ printf("\npiirretaan suorat\n"); void piirrakanta(void){ printf("\npiirretaan kantaviivaa\n");

5 #include <stdio.h> void vaihda( int *, int * ); //esittely int main(void){ int luku1 = 0; int luku2 = 0; printf("\nanna luku >"); scanf("%d", &luku1); printf("\nanna luku >"); scanf("%d", &luku2); printf("\nluku1: %d ja luku2: %d\n", luku1, luku2); if( luku1 > luku2 ){ printf("\nvaihto kaynnistyy\n"); vaihda( &luku1, &luku2 ); printf("\nluku1: %d ja luku2: %d\n", luku1, luku2); return 0;

6 void vaihda( int * p1, int * p2){ int temp = 0; printf("\nn1: %d ja n2: %d\n", *p1, *p2); temp = *p1; *p1 = *p2; *p2 = temp; printf("\nn1: %d ja n2: %d\n", *p1, *p2);

7 #include <stdio.h> #include "omat.h" #define MAX 1000 int main(void){ int n=0; int minjakaja=0; printf("\nanna luku > "); scanf("%d", &n); if( n < 2 ){ printf("\nliian pieni arvo\n"); else if( n < MAX ){ minjakaja = haejakaja( n ); if( minjakaja == n ){ printf("\nluku %d on alkuluku\n", n); else{ printf("\nluvun %d pienin jakaja on %d\n", n, minjakaja); else{ printf("\nliian suuri arvo\n"); return 0;

8 // // omat.h // // // Created by on 11/27/13. // Copyright (c) 2013 MyCompanyName. All rights reserved. // #ifndef _omat_h #define _omat_h int haejakaja(int ); int parillinen( int ); #endif // //omat.c // #include <stdio.h> #include <math.h> #include "omat.h" int parillinen( int n ){ return ( n%2 == 0);

9 int haejakaja(int n){ int testi = 0; int jakaja = 0; if( parillinen(n) ){ jakaja = 2; else{ jakaja = 0; testi = 3; while( jakaja == 0){ printf("\ntesti on nyt %d\n", testi); if( testi > sqrt(n) ){ jakaja = n; else if( n % testi == 0){ jakaja = testi; else{ testi = testi + 2; return jakaja; !!!!

10 #include <stdio.h> int main( void ){ int komento; do{ printf("\npaina 1 jos haluat nostaa rahaa\n"); printf("\npaina 2 jos haluat tallettaa rahaa\n"); printf("\npaina 3 jos haluat tietaa saldon\n"); printf("\nvalintasi > "); scanf("%d", &komento); switch( komento ){ case 1: printf("\nnostetaan RAHAA\n"); break; case 2: printf("\ntalletetaan RAHAA\n"); break; case 3: printf("\nsaldon KYSELY\n"); break; case 0: break; default: printf("\nvirheellinen KOMENTO!!!\n"); break;

11 if( komento == 0 ) break; while( 1 ); printf("\nloppu\n"); return 0; //main !

12 // // kertolaskudemo.c // // // Created by on 11/20/13. // Copyright (c) 2013 MyCompanyName. All rights reserved. // #include <stdio.h> int main(void){ int tulo = 1; int luku; while( tulo < 1000 ){ printf("anna luku > "); scanf("%d", &luku); fpurge(stdin); if( 0!= luku ) tulo = tulo * luku; printf("\ntulo on %d \n\n", tulo); return 0;

13 #include <stdio.h> int lueint(void); int main(void){ int luku1=0, luku2=0; printf("\nanna yksi kokonaisluku > "); luku1 = lueint(); printf("\nanna toinen kokonaisluku > "); luku2 = lueint(); printf("\nsyotit luvut %d ja %d \n", luku1, luku2); return 0; int lueint(void){ int luku=0; int status=0; do{ status = scanf("%d", &luku); while( fgetc(stdin)!= '\n'){ ; if( 0 == status ){ printf("\nei kelpaa, yrita uudelleen > "); while( 0 == status ); return luku;

14 #include <stdio.h> #define KOKO 51 #define LUKUMAARA 3 typedef struct { char etunimi[koko]; char sukunimi[koko]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja Opiskelija_t luetiedot( void); void tulostatiedot( Opiskelija_t opiskelijat[ ], int maara ); void tulostaopiskelija( Opiskelija_t opiskelija ); void lueroskat(void); int lueint(char kehote[]); void tulostavalikko(void); void lisaauusiopiskelija( Opiskelija_t opiskelijat[], int maara ); int etsiopiskelijaa( Opiskelija_t opiskelijat[], int maara, int opnro );

15 int main(void){ int i; int loppu = 0; int valinta = 0; int maara = 0; int opnro = 0; int paikka = 0; Opiskelija_t opiskelijat[lukumaara]={"\0","\0", -1, -1 ; do{ tulostavalikko(); valinta = lueint("valintasi > "); switch( valinta ){ case 1: //lis t n uusi opiskelija if( maara < LUKUMAARA ){ lisaauusiopiskelija( opiskelijat, maara ); printf("\nlisattiin UUSI OPISKELIJA\n"); maara++; //maara = maara + 1 else{ printf("\ntaulukko ON TAYSI\n"); break;

16 case 2: //etsit n opiskelijaa opiskelijanumeron perusteella opnro = lueint("anna etsittavan opiskelijan numero >"); paikka = etsiopiskelijaa( opiskelijat, maara, opnro ); if( paikka >=0 ){ tulostaopiskelija( opiskelijat[ paikka ] ); else{ printf("\nei LOYDY MITAAN\n"); break; case 3: //tulostetaan koko "rekisteri" tulostatiedot( opiskelijat, maara ); break; case 0: //lopetetaan loppu = 1; break; default: printf("\nvirheellinen KOMENTO!\n"); break; while(!loppu ); return 0; //main p ttyy

17 void tulostavalikko(void){ printf("\n1: LISAA UUSI OPISKELIJA\n"); printf("2: ETSI OPISKELIJAA \n"); printf("3: TULOSTA KAIKKI TIEDOT \n"); printf("0: LOPETA\n"); Opiskelija_t luetiedot(void){ Opiskelija_t temp; printf("\nanna nimi> "); fgets( temp.etunimi, KOKO, stdin ); printf("\nanna sukunimi> "); fgets( temp.sukunimi, KOKO, stdin ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp; void lisaauusiopiskelija( Opiskelija_t opiskelijat[], int maara ){ opiskelijat[maara]= luetiedot();

18 void tulostatiedot(opiskelija_t opiskelijat[ ], int maara){ int i; for(i=0; i< maara; i++){ tulostaopiskelija( opiskelijat[i] ); void tulostaopiskelija( Opiskelija_t opiskelija ){ printf(" \n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro ); printf("arvosana: %d\n", opiskelija.jo_arvosana ); printf(" \n");

19 int etsiopiskelijaa( Opiskelija_t opiskelijat[], int maara, int opnro ){ int i; for(i=0; i < maara; i++){ if( opiskelijat[ i ].opiskelijanro == opnro ) return i; return -1; void lueroskat(void){ char roska; while( (roska = fgetc(stdin))!='\n'){ //printf("\nluettiin merkki: %c ja sen koodi on %d", roska, (int)roska); ;

20 int lueint(char kehote []){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei kay, yrita uudelleen >"); return luku;

21 #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 51 #define LUKUMAARA 3 typedef struct { char etunimi[nimen_pituus]; char sukunimi[nimen_pituus]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja Opiskelija_t luetiedot( void); void luekaikkiopiskelijat( Opiskelija_t opiskelijat[ ], int maara ); void tulostatiedot( Opiskelija_t opiskelijat[ ], int maara ); void tulostaopiskelija( Opiskelija_t opiskelija ); int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ); void luemerkkijono( char * mjono, int maara, char * kehote ); void lueroskat(void); int lueint( char * kehote );

22 int main(void){ int opnro; int paikka; Opiskelija_t opiskelijat[lukumaara]; luekaikkiopiskelijat( opiskelijat, LUKUMAARA ); opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); paikka = etsiopiskelijaa( opiskelijat, LUKUMAARA, opnro ); if( paikka!= -1 ){ tulostaopiskelija( opiskelijat[ paikka ] ); else { printf("\nopiskelijanumerolla %d ei loydy opiskelijaa\n", opnro ); tulostatiedot( opiskelijat, LUKUMAARA ); return 0; void luekaikkiopiskelijat( Opiskelija_t opiskelijat[], int maara ){ int i; for(i=0; i<maara; i++){ opiskelijat[ i ] = luetiedot( );

23 Opiskelija_t luetiedot(void){ Opiskelija_t temp; luemerkkijono( temp.etunimi, NIMEN_PITUUS, "Anna nimi> " ); luemerkkijono( temp.sukunimi, NIMEN_PITUUS, "Anna sukunimi> " ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp; int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ){ int i = 0; while( i < maara ){ if( opiskelijat[i].opiskelijanro == opnro ) return i; i++; return -1;

24 void tulostatiedot(opiskelija_t opiskelijat[ ], int maara){ int i; for(i=0; i< maara; i++){ tulostaopiskelija( opiskelijat[i] ); void tulostaopiskelija( Opiskelija_t opiskelija ){ printf(" \n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro); printf("arvosana: %d\n", opiskelija.jo_arvosana); printf(" \n"); void lueroskat(void){ while( fgetc(stdin)!='\n');

25 int lueint(char * kehote){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei käy, yritä uudelleen >"); return luku; void luemerkkijono( char * mjono, int maara, char * kehote ){ printf("\n%s", kehote ); fgets(mjono, maara, stdin); if( mjono[ strlen(mjono)-1 ] =='\n'){ mjono[ strlen(mjono)-1 ] ='\0'; else { lueroskat();

26 #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 51 #define LUKUMAARA 3 typedef struct { char etunimi[nimen_pituus]; char sukunimi[nimen_pituus]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja void tulostavalikko(void); Opiskelija_t luetiedot( void); void lisaaopiskelija( Opiskelija_t opiskelijat[ ], int paikka ); void tulostatiedot( Opiskelija_t opiskelijat[ ], int maara ); void tulostaopiskelija( Opiskelija_t opiskelija ); int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ); void luemerkkijono( char * mjono, int maara, char * kehote ); void lueroskat(void); int lueint( char * kehote );

27 int main(void){ int opnro; int paikka; int lasnaolijat = 0; int valinta; int loppu = 0; Opiskelija_t opiskelijat[lukumaara]; do { tulostavalikko(); valinta = lueint("anna valintasi > "); switch( valinta ){ case 1: if( lasnaolijat < LUKUMAARA ){ lisaaopiskelija( opiskelijat, lasnaolijat ); lasnaolijat++; printf("\nlisattiin uusi opiskelija\n"); else{ printf("\nsori, ei mahdu uusia opiskelijoita,\nsinun täytyy odottaa, kunnes joku valmistuu\n"); break; case 2: opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); paikka = etsiopiskelijaa( opiskelijat, lasnaolijat, opnro ); if( paikka!= -1 ){ tulostaopiskelija( opiskelijat[ paikka ] );

28 else { printf("\nopiskelijanumerolla %d ei loydy opiskelijaa\n", opnro ); break; case 3: tulostatiedot( opiskelijat, lasnaolijat ); break; case 0: loppu = 1; break; default: printf("\ntuntematon VALINTA\n"); break; while(!loppu); return 0; void tulostavalikko(void){ printf("\n1 LISAA OPISKELIJA\n"); printf("2 ETSI OPISKELIJAA\n"); printf("3 TULOSTA KAIKKI\n"); printf("0 LOPETA\n");

29 void lisaaopiskelija( Opiskelija_t opiskelijat[], int paikka ){ opiskelijat[paikka] = luetiedot(); Opiskelija_t luetiedot(void){ Opiskelija_t temp; luemerkkijono( temp.etunimi, NIMEN_PITUUS, "Anna nimi> " ); luemerkkijono( temp.sukunimi, NIMEN_PITUUS, "Anna sukunimi> " ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp;

30 int etsiopiskelijaa( Opiskelija_t opiskelijat[ ], int maara, int opnro ){ int i = 0; while( i < maara ){ if( opiskelijat[i].opiskelijanro == opnro ) return i; i++; return -1; void tulostatiedot(opiskelija_t opiskelijat[ ], int maara){ int i; for(i=0; i< maara; i++){ tulostaopiskelija( opiskelijat[i] );

31 void tulostaopiskelija( Opiskelija_t opiskelija ){ printf(" \n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro); printf("arvosana: %d\n", opiskelija.jo_arvosana); printf(" \n"); void lueroskat(void){ while( fgetc(stdin)!='\n'); int lueint(char * kehote){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei käy, yritä uudelleen >"); return luku;

32 void luemerkkijono( char * mjono, int maara, char * kehote ){ printf("\n%s", kehote ); fgets(mjono, maara, stdin); if( mjono[ strlen(mjono)-1 ] =='\n'){ mjono[ strlen(mjono)-1 ] ='\0'; else { lueroskat();

33 #include <stdio.h> int palautapaivienlkm( int ); //esittely int lueint(void); int main(void){ int kuukausi=0; int lkm=0; do{ printf("\nanna kuukauden numero > "); kuukausi=lueint( ); if( kuukausi < 1 ) printf("\nliian pieni arvo!"); else if( kuukausi > 12 ) printf("\nliian suuri arvo!"); while( kuukausi < 1 kuukausi > 12); lkm = palautapaivienlkm( kuukausi ); printf("\nkuukaudessa %d on %d paivaa\n", kuukausi, lkm); return 0;

34 int palautapaivienlkm( int kk ){ int paivat[13]={-1,31,28,31,30,31,30,31,31,30,31,30,31; return (paivat[kk]); int lueint(void){ int luku=0; int status=0; do{ status = scanf("%d", &luku); while( fgetc(stdin)!= '\n'){ ; if( 0 == status ){ printf("\nei kelpaa, yrita uudelleen > "); while( 0 == status ); return luku;!

35 !

36 #include <stdio.h> #include <string.h> #define NIMEN_PITUUS 51 #define LUKUMAARA 3 typedef struct { char etunimi[nimen_pituus]; char sukunimi[nimen_pituus]; int opiskelijanro; int JO_arvosana; Opiskelija_t; //kuvaa yhden opiskelijan tietoja void tulostavalikko(void); Opiskelija_t luetiedot( void); void lisaaopiskelija( FILE * tiedosto ); void tulostatiedot(file * tiedosto); void tulostaopiskelija( Opiskelija_t opiskelija ); Opiskelija_t etsiopiskelijaa( FILE * tiedosto, int opnro ); void luemerkkijono( char * mjono, int maara, char * kehote ); int poistaopiskelija( FILE * tiedosto, int opnro); void lueroskat(void); int lueint( char * kehote );

37 int main(void){ int opnro; int paikka; Opiskelija_t temp; int tila; int valinta; int loppu = 0; FILE * tiedosto = NULL; if( ( tiedosto = fopen("opiskelijat.dat", "a+"))== NULL){ if( (tiedosto = fopen("opiskelijat.dat", "w"))== NULL){ printf("\nsyntyi VIRHETILANNE; OHJELMAN SUORITUS PAATTYY\n"); return 0; else{ fclose(tiedosto); if( (tiedosto = fopen("opiskelijat.dat", "a+"))== NULL){ printf("\nsyntyi TAAS VIRHETILANNE; OHJELMAN SUORITUS PAATTYY\n"); return 0;

38 do { tulostavalikko(); valinta = lueint("anna valintasi > "); switch( valinta ){ case 1: lisaaopiskelija(tiedosto); break; case 2: opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); temp = etsiopiskelijaa( tiedosto, opnro ); if( temp.opiskelijanro!= -1 ){ tulostaopiskelija( temp ); else { printf("\nopiskelijanumerolla %d ei loydy opiskelijaa\n", opnro ); break; case 3: tulostatiedot( tiedosto ); break; case 4: opnro = lueint("anna etsittava opiskelijan opiskelijanumero >"); tila = poistaopiskelija( tiedosto, opnro ); if( tila==1 )

39 printf("\npoistettiin opiskelija\n"); else if( tila =-1 ) printf("\ntapahtui virhe\n"); else printf("\nopiskelijaa EI LOYDY\n"); break; case 0: loppu = 1; fclose( tiedosto ); break; default: printf("\ntuntematon VALINTA\n"); break; while(!loppu); return 0; void tulostavalikko(void){ printf("\n1 LISAA OPISKELIJA\n"); printf("2 ETSI OPISKELIJAA\n"); printf("3 TULOSTA KAIKKI\n"); printf("0 LOPETA\n");

40 void lisaaopiskelija( FILE * tiedosto ){ Opiskelija_t temp; int result = 0; temp = luetiedot(); result = fwrite( &temp, sizeof(opiskelija_t), 1, tiedosto ); if( result ) printf("\ntallennettiin opiskelijan tiedot\n"); else printf("\nvirhetilanne TALLENNUKSESSA\n"); Opiskelija_t luetiedot(void){ Opiskelija_t temp; luemerkkijono( temp.etunimi, NIMEN_PITUUS, "Anna nimi> " ); luemerkkijono( temp.sukunimi, NIMEN_PITUUS, "Anna sukunimi> " ); temp.opiskelijanro=lueint("anna opiskelijanumero> "); temp.jo_arvosana=lueint("anna opiskelija JO arvosana> "); return temp;

41 Opiskelija_t etsiopiskelijaa( FILE * tiedosto, int opnro ){ Opiskelija_t temp; int result = 0; rewind( tiedosto ); result = fread( &temp, sizeof(opiskelija_t),1,tiedosto); while(!feof(tiedosto) ){ if( temp.opiskelijanro == opnro ) return temp; result = fread( &temp, sizeof(opiskelija_t),1,tiedosto); temp.opiskelijanro = -1; return temp;

42 void tulostatiedot(file * tiedosto){ Opiskelija_t temp; int result = 0; rewind( tiedosto ); result = fread( &temp, sizeof(opiskelija_t),1,tiedosto); while(!feof(tiedosto) ){ tulostaopiskelija( temp ); result = fread( &temp, sizeof(opiskelija_t),1,tiedosto);

43 int poistaopiskelija( FILE * tiedosto, int opnro){ Opiskelija_t temp; FILE * kopio; if((kopio = fopen("apu.dat", "w"))==null){ return -1; int result = 0; rewind(tiedosto); fread( &temp, sizeof(opiskelija_t),1,tiedosto); while(!feof(tiedosto) ){ if( temp.opiskelijanro!= opnro ){ fwrite( &temp, sizeof(opiskelija_t),1, kopio); result = 1; fread( &temp, sizeof(opiskelija_t),1,tiedosto); fclose( tiedosto ); fclose( kopio ); remove( "opiskelijat.dat" ); rename( "apu.dat", "opiskelijat.dat" ); if( (tiedosto = fopen("opiskelijat.dat", "a+"))== NULL){

44 printf("\nsyntyi HIRMUINEN VIRHETILANNE\n"); return -1; return result; void tulostaopiskelija( Opiskelija_t opiskelija ){ printf(" \n"); printf(" ETUNIMI: %s\n", opiskelija.etunimi ); printf("sukunimi: %s\n", opiskelija.sukunimi ); printf("opisknro: %d\n", opiskelija.opiskelijanro); printf("arvosana: %d\n", opiskelija.jo_arvosana); printf(" \n"); void lueroskat(void){ while( fgetc(stdin)!='\n');

45 int lueint(char * kehote){ int luku; int result; char merkki; printf("\n%s", kehote ); while( (result=scanf("%d%c", &luku, &merkki))== 0 result == 2 && merkki!= '\n'){ lueroskat(); printf("\nei käy, yritä uudelleen >"); return luku;

46 void luemerkkijono( char * mjono, int maara, char * kehote ){ printf("\n%s", kehote ); fgets(mjono, maara, stdin); if( mjono[ strlen(mjono)-1 ] =='\n'){ mjono[ strlen(mjono)-1 ] ='\0'; else { lueroskat();!

#include <stdio.h> // io-toiminnot. //#define KM_MAILISSA int main( ){

#include <stdio.h> // io-toiminnot. //#define KM_MAILISSA int main( ){ demo1.c 30/09/15 08:19 #include // io-toiminnot //#define KM_MAILISSA 1.609 int main( ){ double mailit = 0.0; double kilometrit; const double KM_MAILISSA = 1.609; printf("anna maililukema > ");

Lisätiedot

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

Merkkijono 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ätiedot

Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot. Tiedostot

Tiedostot. 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ätiedot

Tietueet. Tietueiden määrittely

Tietueet. 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ätiedot

Ohjausrakenteet. Valinta:

Ohjausrakenteet. Valinta: Ohjausrakenteet Luento antaa yleiskuvan siitä kuinka ohjelmassa suorittaan vaihtoehtoisia tehtäviä valintarakenteiden avulla ja kuinka samanlaisia ohjelma-askeleita toistetaan toistorakenteiden avulla

Lisätiedot

Tiedosto on yhteenkuuluvien tietojen joukko, joka tavallisimmin sijaitsee kiintolevyllä, muistitikulla tai jollakin muulla fyysisellä tietovälineellä.

Tiedosto 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ätiedot

Luokan muodostimet (Constructors)

Luokan muodostimet (Constructors) Mikä on muodostin? Luokan muodostimet (Constructors) Millaisia muodostimia on? Oletusmuodostin (Default Constructor) Parametrillinen muodostin Kopiointimuodostin (Copy Constructor) this-muuttuja Miten

Lisätiedot

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla:

Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: KERTAUSTEHTÄVIÄ Tietue Tietuetyypin määrittely toteutetaan C-kielessä struct-rakenteena seuraavalla tavalla: struct henkilotiedot char nimi [20]; int ika; char puh [10]; ; Edellä esitetty kuvaus määrittelee

Lisätiedot

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

C-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ätiedot

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

Koottu 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ätiedot

Moduli 5: Kehittyneitä piirteitä

Moduli 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ätiedot

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Ohjelmassa 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ätiedot

Listarakenne (ArrayList-luokka)

Listarakenne (ArrayList-luokka) Listarakenne (ArrayList-luokka) Mikä on lista? Listan määrittely ArrayList-luokan metodeita Listan läpikäynti Listan läpikäynti indeksin avulla Listan läpikäynti iteraattorin avulla Listaan lisääminen

Lisätiedot

3. Binääripuu, Java-toteutus

3. Binääripuu, Java-toteutus 3. Binääripuu, Java-toteutus /*-------------------------------------------------------------/ / Rajapinta SearchTree: binäärisen hakupuun käsittelyrajapinta / / Metodit: / / void insert( Comparable x );

Lisätiedot

Muuttujien roolit Kiintoarvo cin >> r;

Muuttujien roolit Kiintoarvo cin >> r; Muuttujien roolit Muuttujilla on ohjelmissa eräitä tyypillisiä käyttötapoja, joita kutsutaan muuttujien rooleiksi. Esimerkiksi muuttuja, jonka arvoa ei muuteta enää kertaakaan muuttujan alustamisen jälkeen,

Lisätiedot

TIETORAKENTEET JA ALGORITMIT

TIETORAKENTEET JA ALGORITMIT TIETORAKENTEET JA ALGORITMIT Timo Harju 1999-2004 1 typedef link List; /* Vaihtoehtoisia nimiä */ typedef link Stack; /* nodepointterille */ typedef link Queue typedef struct node Node; /* itse nodelle

Lisätiedot

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro:

TAITAJA 2007 ELEKTRONIIKKAFINAALI 31.01-02.02.07 KILPAILIJAN TEHTÄVÄT. Kilpailijan nimi / Nro: KILPAILIJAN TEHTÄVÄT Kilpailijan nimi / Nro: Tehtävän laatinut: Hannu Laurikainen, Deltabit Oy Kilpailutehtävä Kilpailijalle annetaan tehtävässä tarvittavat ohjelmakoodit. Tämä ohjelma on tehty laitteen

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Rekursio Rekursion käyttötapauksia Rekursio määritelmissä Rekursio ongelmanratkaisussa ja ohjelmointitekniikkana Esimerkkejä taulukolla Esimerkkejä linkatulla listalla Hanoin

Lisätiedot

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

ICS-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ätiedot

Tietorakenteet ja algoritmit

Tietorakenteet 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ätiedot

Tietotyypit ja operaattorit

Tietotyypit 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ätiedot

Loppukurssin järjestelyt

Loppukurssin 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ätiedot

Loppukurssin järjestelyt C:n edistyneet piirteet

Loppukurssin 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ätiedot

OPINTOJAKSON OHJELMOINTI HARJOITUSTEN RATKAISUJA

OPINTOJAKSON OHJELMOINTI HARJOITUSTEN RATKAISUJA OPINTOJAKSON OHJELMOINTI HARJOITUSTEN RATKAISUJA HARJOITUS 1 1. Laadi algoritmi opiskelijan aamutoimista ja koulumatkasta. 2. Laadi algoritmi, joka lukee käyttäjän antamia lukuja niin kauan, kunnes sille

Lisätiedot

Luennon sisältö Tyypit int, char, float, double signed, unsigned short, long Vakiot const Rakenteet if, for, while, switch, do-while Syöttö ja tulostu

Luennon 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ätiedot

Taulukoiden käsittely Javalla

Taulukoiden käsittely Javalla 1 Taulukoiden käsittely Javalla Mikä taulukko on? Taulukon syntaksi Merkkijonotaulukko Lukutaulukko Taulukon kopiointi 1 Mikä taulukko on? Taulukko on rakenne, minne saadaan talteen usea saman tyyppinen

Lisätiedot

if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta.

if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. if- valintarakenne Yksittäisen vaihtoehdon valinta if-lauseen yksinkertaisin muoto on sellainen, missä tietyt lauseet joko suoritetaan tai jätetään suorittamatta. Syntaksi: if (ehto) lauseita; Aaltosulkeiden

Lisätiedot

C-kurssi kevät Luennon sisältö

C-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ätiedot

Luennon 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 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ätiedot

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2 Syntaksilomake (22.4.2007) C-kielen standardikirjaston funktioita gets(merkkijono); scanf("formaatti", &muuttuja1,..., &muuttujan); sscanf(merkkijono,

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Binäärioperaatiot Tiedostot ja I/O

Binäärioperaatiot Tiedostot ja I/O C! Binäärioperaatiot Tiedostot ja I/O 8.3.2018 Tiedotteita Viimeinen luento to 29.3. Ohjelmointitehtävä, ohjelmointikoe ja niiden järjestelyt Ohjelmointikokeeseen ilmoittautuminen auki 2 .c tiedostot ja.h

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 3.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 3.2.2010 1 / 36 Esimerkki: asunnon välityspalkkio Kirjoitetaan ohjelma, joka laskee kiinteistönvälittäjän asunnon

Lisätiedot

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

C-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ätiedot

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

Perusteet. 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.2.2011 1 / 37 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ...

1.1 Pino (stack) Koodiluonnos. Graafinen esitys ... 1. Tietorakenteet Tietorakenteet organisoivat samankaltaisten olioiden muodostaman tietojoukon. Tämä järjestys voidaan saada aikaan monin tavoin, esim. Keräämällä oliot taulukkoon. Liittämällä olioihin

Lisätiedot

Lyhyt kertaus osoittimista

Lyhyt 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ätiedot

13 Operaattoreiden ylimäärittelyjä

13 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ätiedot

C-kurssi syksy ltö. Luennon sisält. Luento 2: tyypit, rakenteet, makrot Tyypit. signed, unsigned short,, long Vakiot const Rakenteet

C-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ätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2 Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua

Lisätiedot

Luennon sisält. ltö. C-kurssi syksy ääreet: int ja char. Yksinkertaiset tyypit. Kokonaisluvut. Merkit

Luennon 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ätiedot

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

Perusteet. 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ätiedot

11. Javan valintarakenteet 11.1

11. Javan valintarakenteet 11.1 11. Javan valintarakenteet 11.1 Sisällys If- ja if-else-lauseet. Orpo else. Valintaa toisin: switch-lause. 11.2 If-lause Merkitään varatulla sanalla if. Kuvaa yksisuuntaisen päätöksen: rakenteen lauseet

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa 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ätiedot

Binäärioperaatiot Tiedostot ja I/O

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ätiedot

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

1.3Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä OULUN YLIOPISTO Tietojenkäsittelytieteiden laitos Johdatus ohjelmointiin 81122P (4 ov.) 30.5.2005 Ohjelmointikieli on Java. Tentissä saa olla materiaali mukana. Tenttitulokset julkaistaan aikaisintaan

Lisätiedot

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu Taulukot Taulukon määrittely ja käyttö Taulukko metodin parametrina Taulukon sisällön kopiointi toiseen taulukkoon Taulukon lajittelu esimerkki 2-ulottoisesta taulukosta 1 Mikä on taulukko? Taulukko on

Lisätiedot

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä.

Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. 3. Funktiot Modulaarisessa ohjelmoinnissa jaetaan ohjelma osiin (moduuleihin), jotka ovat yksinkertaisia ja lyhyitä. Modulaarisuudella pyritään parantamaan ohjelman ymmärrettävyyttä, testattavuutta sekä

Lisätiedot

Ohjeet. AS C-ohjelmoinnin peruskurssi Aalto-yliopiston sahkotekniikan korkeakoulu Tentti , Raimo Nikkila

Ohjeet. 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ätiedot

Esimerkki 1: Kahviautomaatti.

Esimerkki 1: Kahviautomaatti. Esimerkki 1: Kahviautomaatti. ÄÄRELLISET AUTOAATIT JA SÄÄNNÖLLISET KIELET 2.1 Tilakaaviot ja tilataulut Tarkastellaan aluksi tietojenkäsittelyjärjestelmiä, joilla on vain äärellisen monta mahdollista tilaa.

Lisätiedot

5/20: Algoritmirakenteita III

5/20: Algoritmirakenteita III Ohjelmointi 1 / syksy 2007 5/20: Algoritmirakenteita III Paavo Nieminen nieminen@jyu.fi Tietotekniikan laitos Informaatioteknologian tiedekunta Jyväskylän yliopisto Ohjelmointi 1 / syksy 2007 p.1/17 Tämän

Lisätiedot

Java-kielen perusteita

Java-kielen perusteita Java-kielen perusteita valintalauseet 1 Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa

Lisätiedot

Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl;

Demo 6 vastauksia. 1. tehtävä. #ifndef #define D6T1 H D6T1 H. #include <iostream> using std::ostream; using std::cout; using std::endl; Demo 6 vastauksia 1. tehtävä #ifndef #define D6T1 H D6T1 H #include using std::ostream; using std::cout; using std::endl; #include using std::string; 10 template class

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

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

Perusteet. 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ätiedot

Tietorakenteet ja algoritmit

Tietorakenteet 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ätiedot

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout:

C++ rautaisannos. Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: C++ rautaisannos Kolme tapaa sanoa, että tulostukseen käytetään standardikirjaston iostreamosassa määriteltyä, nimiavaruuden std oliota cout: # include #include main ( ) main (

Lisätiedot

Kirjoita, tallenna, käännä ja suorita alla esitelty ohjelma, joka tervehtii käyttäjäänsä.

Kirjoita, 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ätiedot

tietueet eri tyyppisiä tietoja saman muuttujan arvoiksi

tietueet 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ätiedot

1. Mitä seuraava ohjelma tulostaa? Vastaukseksi riittää yksi rivi joka esittää tulosteen. (6 p)

1. 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö. Muistin käyttö C-ohjelmassa

Muistin 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ätiedot

ehdollinen kääntäminen

ehdollinen kääntäminen C-ohjelmointi, viikko2 materiaalia qtekstitiedostot ja niiden käyttö qesikääntäjä, makrot ja ehdollinen kääntäminen 1 Tekstitiedostot ja niiden käyttö Tekstitiedosto Tiedostokahva (Müldnerin kirjassa luku

Lisätiedot

ehdollinen kääntäminen

ehdollinen kääntäminen , kevät 2006 qtekstitiedostot ja niiden käyttö qesikääntäjä, makrot ja ehdollinen kääntäminen Luento 3 31.1.2006 Kevät 2006 Liisa Marttinen & Tiina Niklander 1 Tekstitiedostot ja niiden käyttö Tekstitiedosto

Lisätiedot

Lista luokan sisällä

Lista luokan sisällä Lista luokan sisällä Luokan sisällä on lista Joukkue-luokka, joka sisältää listän joukkueen pelaajista Pelaaja Joukkueen metodit, jotka käyttävät listaa Ohjelmaluokka Luokan sisällä on lista Tarkoitta

Lisätiedot

Rakenteiset tietotyypit Moniulotteiset taulukot

Rakenteiset 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ätiedot

TAMPEREEN TEKNILLINEN YLIOPISTO

TAMPEREEN TEKNILLINEN YLIOPISTO TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja Tietokonetekniikan laitos TKT-3200 Tietokonetekniikka ASSEMBLER: QSORT 06.09.2005 Ryhmä 00 nimi1 email1 opnro1 nimi2 email2 opnro2 nimi3 email3 opnro3 1. TEHTÄVÄ

Lisätiedot

Plagioinnin tunnistaminen lähdekielisistä ohjelmista

Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagioinnin tunnistaminen lähdekielisistä ohjelmista Plagiointi- ja tutkimusetiikka seminaari 30.09.2003 Kirsti Ala-Mutka TTY/Ohjelmistotekniikka Sisältö Plagiointi ohjelmointikursseilla Tyypillisiä ulkoasumuutoksia

Lisätiedot

C-kieli mahdollistaa hyvin tiiviin ja samalla sekavan tavan esittää asioita, kuitenkin hyvän ohjelman tulisi olla mahdollisimman helppolukuinen ja

C-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ätiedot

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012

ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 ALGORITMIT 1 DEMOVASTAUKSET KEVÄT 2012 1.1. (a) Jaettava m, jakaja n. Vähennetään luku n luvusta m niin kauan kuin m pysyy ei-negatiivisena. Jos jäljelle jää nolla, jaettava oli tasan jaollinen. int m,

Lisätiedot

C-ohjelmointi, syksy 2006

C-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ätiedot

C-ohjelmointi, syksy Yksiulotteiset taulukot Moniulotteiset taulukot Dynaamiset taulukot. Binääritiedostot. Luento

C-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ätiedot

Luennon sisältö. Taulukot (arrays) (Müldnerin kirjan luku 10) Yksiulotteiset taulukot. Mikä taulukko on? Taulukko-osoitin. tavallinen osoitin

Luennon 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ätiedot

1. luento. Ohjelmointi (C) T0004 Syksy 2003. 1. luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

1. 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ätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 25.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 25.2.2009 1 / 34 Syötteessä useita lukuja samalla rivillä Seuraavassa esimerkissä käyttäjä antaa useita lukuja samalla

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 18.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 18.3.2009 1 / 51 Olioista (kertausta) Olioiden avulla voidaan kuvata useammasta arvosta koostuvaa kokonaisuutta

Lisätiedot

Ohjeet. Jaa vastauksesi konsepteille siten, etta:

Ohjeet. 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ätiedot

Tekstitiedostot ja niiden käyttö

Tekstitiedostot ja niiden käyttö , syksy 2007 qtekstitiedostot ja niiden käyttö qesikääntäjä, makrot ja ehdollinen kääntäminen Luento 3 12.9.2007 Syksy 2007 1 Tekstitiedostot ja niiden käyttö Tekstitiedosto Tiedostokahva (Müldnerin kirjassa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2011 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2011 1 / 46 Kännykkäpalautetteen antajia kaivataan edelleen! Ilmoittaudu mukaan lähettämällä ilmainen tekstiviesti

Lisätiedot

C-kurssi kevät t Luento 2: tyypit, rakenteet, makrot

C-kurssi kevät t Luento 2: tyypit, rakenteet, makrot C-kurssi kevät t 2006 Luento 2: tyypit, rakenteet, makrot 24.1.2006 Luennon sisält ltö Tyypit int, char, float, double signed, unsigned short,, long Vakiot const Rakenteet if,, for, while, switch, do-while

Lisätiedot

Tekstitiedostot ja niiden käyttö

Tekstitiedostot ja niiden käyttö , kevät 2006 qtekstitiedostot ja niiden käyttö qesikääntäjä, makrot ja ehdollinen kääntäminen Luento 3 31.1.2006 Kevät 2006 Liisa Marttinen & Tiina Niklander 1 Tekstitiedostot ja niiden käyttö Tekstitiedosto

Lisätiedot

Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit Tietorakenteet ja algoritmit Pino Pinon määritelmä Pinon sovelluksia Järjestyksen kääntäminen Palindromiprobleema Postfix-lausekkeen laskenta Infix-lausekkeen muunto postfix-lausekkeeksi Sisäkkäiset funktiokutsut

Lisätiedot

Tiedosto. Tiedostot ovat joko binääritiedostoja tai tekstitiedostoja. Tekstitiedostot

Tiedosto. Tiedostot ovat joko binääritiedostoja tai tekstitiedostoja. Tekstitiedostot Tiedosto Monessa tilanteessa olisi hyvä pystyä tallentamaan ohjelman suorituksen aikana syntyvää tietoa pysyvämmin. Nythän kaikki katoaa kun ohjelman suoritus lopetetaan. Tietoja on mahdollista tallentaa

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 9.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 9.2.2009 1 / 35 Listat Esimerkki: halutaan kirjoittaa ohjelma, joka lukee käyttäjältä 30 lämpötilaa. Kun lämpötilat

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia 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

2. C-kieli ja ongelmanratkaisu

2. 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ätiedot

11. Javan toistorakenteet 11.1

11. Javan toistorakenteet 11.1 11. Javan toistorakenteet 11.1 Sisällys Laskuri- ja lippumuuttujat. Sisäkkäiset silmukat. Tyypillisiä ohjelmointivirheitä: Silmukan rajat asetettu kierroksen verran väärin. Ikuinen silmukka. Silmukoinnin

Lisätiedot

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen

List-luokan soveltamista. Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan soveltamista List-luokan metodeja Listaan lisääminen Listan läpikäynti Listasta etsiminen Listan sisällön muuttaminen Listasta poistaminen Listan kopioiminen 1 List-luokan metodeja List-luokan

Lisätiedot

Luento 5. Timo Savola. 28. huhtikuuta 2006

Luento 5. Timo Savola. 28. huhtikuuta 2006 UNIX-käyttöjärjestelmä Luento 5 Timo Savola 28. huhtikuuta 2006 Osa I Shell-ohjelmointi Ehtolause Lausekkeet suoritetaan jos ehtolausekkeen paluuarvo on 0 if ehtolauseke then lauseke

Lisätiedot

Java-kielen perusteet

Java-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ätiedot

Muuttujat ja kontrolli. Ville Sundberg

Muuttujat ja kontrolli. Ville Sundberg Muuttujat ja kontrolli Ville Sundberg 14.9.2007 Alkeistyyppi Alin abstraktiotaso josta tarvitsee välittää Yksittäinen, jakamaton tiedonjyvä Tavallaan kaikki alkeistyypit ovat lukuja arvojoukko vaihtelee

Lisätiedot

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen Metodit Metodien määrittely Metodin parametrit ja paluuarvo Metodien suorittaminen eli kutsuminen Metodien kuormittaminen 1 Mikä on metodi? Metodi on luokan sisällä oleva yhteenkuuluvien toimintojen kokonaisuus

Lisätiedot

Algoritmit 2. Luento 7 Ti Timo Männikkö

Algoritmit 2. Luento 7 Ti Timo Männikkö Algoritmit 2 Luento 7 Ti 4.4.2017 Timo Männikkö Luento 7 Joukot Joukko-operaatioita Joukkojen esitystapoja Alkiovieraat osajoukot Toteutus puurakenteena Algoritmit 2 Kevät 2017 Luento 7 Ti 4.4.2017 2/26

Lisätiedot

Java-kielen perusteet

Java-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ätiedot

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

Ohjelmointi 1 / 2009 syksy Tentti / 18.12 Tentti / 18.12 Vastaa yhteensä neljään tehtävään (huomaa että tehtävissä voi olla useita alakohtia), joista yksi on tehtävä 5. Voit siis valita kolme tehtävistä 1 4 ja tehtävä 5 on pakollinen. Vastaa JOKAISEN

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 4.3.2009 T-106.1208 Ohjelmoinnin perusteet Y 4.3.2009 1 / 35 Tiedostot Tiedostojen käsittelyä tarvitaan esimerkiksi seuraavissa tilanteissa: Ohjelman käsittelemiä

Lisätiedot