// Hedelmäinen suklaa - ruokaohje jouluisia herkutteluhetkiä varten // ---------------------------------------------------------------- // Vakioiden ja muuttujatyyppien esittelyt // --------------------------------------- #define gramma 20; #define litra 500; struct AINE { int maara; int lämpötila = 20; // oletukseksi huoneen lämpötila... string olomuoto = "kiinteä"; int sulamispiste; int kiehumispiste; }; struct SEOS { AINE aineet[]; int maara; int lämpötila; string olomuoto; int sulamispiste; int kiehumispiste; }; // Funktio, jolla jaetaan aine pienempiin osiin (viipaloidaan) // ----------------------------------------------------------- function viipaloi ( *aine, osat ) { if ( aine->olomuoto != "kiinteä" ) { print "Ainetta ei voi viipaloida!!"; return false; } else { for ( t = 0; t < osat; t++ ) { viipaleet[t] = aine / osat; } return viipaleet; } } // Funktio, joka kuumentaa aineen haluttuun lämpötilaan // ---------------------------------------------------- funktion kuumenna ( aine, lämpötila ) { aine->lämpötila = lämpötila; if ( aine->lämpötila > aine->sulamispiste ) aine->olomuoto == "neste"; if ( aine->lämpötila > aine->kiehumispiste ) aine->lämpötila = aine->kiehumispiste; } // Funktio, joka lämmittää ainetta niin kauan kunnes se sulaa // ---------------------------------------------------------- function sulata_aines ( *aine, lämpötila ) { while ( aine->olomuoto == "kiintea" && aine->lämpötila < lämpötila) { aine->lämpötila++; if ( aine->läpötila > aine->sulamispiste ) aine->olomuoto = "neste"; } if ( aine->olomuoto == "kiinteä" ) { print "Lämpötila ei riitä sulattamaan ainetta!!"; return false; } else return true; } // Aineiden Haudutukseen käytettävä funktio // ---------------------------------------- function hauduta ( &aine, vesi ) { sulata_aines ( aine, vesi->lämpötila ); } // Funktio, jolla sekoitetaan kaksi ainesta keskenään // -------------------------------------------------- function yhdista ( aine1, aine2 ) { AINE uusi_aine; uusi_aine.maara = aine1.maara + aine2.maara; uusi_aine.lampotila = ( aine1.lampotila + aine2.lampotila ) / 2; uusi_aine.sulamispiste = ( aine1.sulamispiste + aine2.sulamispiste ) / 2; uusi_aine.kiehumispiste = ( aine1.kiehumispiste + aine2.kiehumispiste ) / 2; if ( uusi_aine.lampotila > uusi_aine.sulamispiste ) uusi_aine.olomuoto = "neste"; else uusi_aine.olomuoto = "kiinteä"; return uusi_aine; } // Funktio, jolla lisätään aine seokseen (taikinaan) // ------------------------------------------------- function sekoita ( seos, aine) { maara = seos->aineita; seos->aineet[maara+1] = aine; seos->lämpötila = ( seos.lampotila + aine.lampotila ) / 2; if ( aine.olomuoto == "neste" ) seos->olomuoto = "neste"; } // Funktio joka tarjoilee aineen function tarjoile ( aine ) { print "hyvää ruokahalua!"; print "Tarjolla tänään...."; print aine; } // Pääfunktio, jossa kootaan ohje kasaan ja toteutetaan ruoka // ---------------------------------------------------------- function main () { AINE suklaa; // taloussuklaata suklaa->maara = 200 * gramma; AINE kookosrasva: kookosrasva->maara = 50 * gramma; AINE kirsikat; // punaisia säilykekirsikoita kirsikat->maara = 1 * ( litra / 10 ); AINE mantelit; // kokonaisia manteleita mentelit->maara = 1 * ( litra / 10 ); AINE vesi; vesi->maara = 2 * litra; SEOS suklaaseos; // seos, joka kootaan ohjeen aikana // Sulatetaan suklaa ja kookosrasvat vesihauteessa. kuumenna ( vesi, 80 ); hauduta ( suklaa, vesi ); hauduta ( kookosrasva, vesi ); AINE suklaarasva = yhdista ( suklaa, kookosrasva ); // Viipaloidaan kirsikat ja murskataan mantelit. AINE kirsikkaviipaleet[] = viipaloi ( kirsikat, 5 ); AINE mantelimurska[] = viipaloi ( mantelit, 20 ); // sekoitetaan aineet keskenään sekoita ( suklaaseos, suklaarasva ); sekoita ( suklaaseos, kirsikkaviipaleet ); sekoita ( suklaaseos, mantelimurska ); // Jäähdytetään seos, niin että se jähmettyy ) jäähdytä ( suklaaseos, 4 ); // Ja leikataan se paloiksi... AINE suklaapalat[] = viipaloi ( suklaaseos, 25 ); // Ja sitten se onkin valmis tarjoiltavaksi!! tarjoile ( suklaapalat ); }