{"id":434,"date":"2026-02-24T15:49:28","date_gmt":"2026-02-24T13:49:28","guid":{"rendered":"https:\/\/blog.edu.turku.fi\/allu\/?page_id=434"},"modified":"2026-03-17T08:30:54","modified_gmt":"2026-03-17T06:30:54","slug":"valinta_tasot","status":"publish","type":"page","link":"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/ohjelmoinnin_aiheet\/valinta_tasot\/","title":{"rendered":"Valinta"},"content":{"rendered":"\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/ohjelmoinnin_aiheet\/\" style=\"background-color:#d6d6ff\">Palaa takaisin<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:43px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-color has-link-color wp-elements-edaf59ae4ad9e9481cdb7b10b01c7ad5\" style=\"color:#4e56b1\"><strong>Valinta<\/strong><\/h2>\n\n\n\n<div style=\"height:43px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-text-color has-link-color wp-elements-673867e2c5672a9fffa75ca7975e9d01\" style=\"color:#4e56b1;font-size:18px\"><strong><strong><strong>Teht\u00e4v\u00e4t on jaettu kolmeen eri vaikeustasoon. Valitse alta sinulle sopiva taso.<\/strong><\/strong><\/strong><\/h3>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75 .wp-block-button__link:hover {  background-color: red !important; }\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/alaspain-eriyttava\/valinta_tasot\/valinta-helpot\/\" style=\"background-color:#e6f3b7\">Helppo<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75 is-style-fill\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/alaspain-eriyttava\/valinta_tasot\/valinta-keskivaikea\/\" style=\"background-color:#d6d6ff\">Perus<\/a><\/div>\n\n\n\n<div class=\"wp-block-button has-custom-width wp-block-button__width-75\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"https:\/\/blog.edu.turku.fi\/allu\/sivu-1\/alaspain-eriyttava\/valinta_tasot\/valinta-vaikeat\/\" style=\"background-color:#fcd8c8\">Vaikea<\/a><\/div>\n<\/div>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-1&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item is-layout-flow wp-block-accordion-item-is-layout-flow\">\n<h3 class=\"wp-block-accordion-heading has-background has-medium-font-size\" style=\"background-color:#d6d6ff\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-1-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-1\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">Valinta &#8211; teoria<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-1\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-1-panel\" role=\"region\" class=\"wp-block-accordion-panel is-layout-flow wp-block-accordion-panel-is-layout-flow\">\n<h2 class=\"wp-block-heading\" style=\"font-size:25px\">Valinta<\/h2>\n\n\n\n<p>T\u00e4ss\u00e4 osiossa k\u00e4yd\u00e4\u00e4n l\u00e4pi valintaan liittyvi\u00e4 rakenteita ja niiden k\u00e4ytt\u00f6\u00e4. Materiaali vastaa sis\u00e4lt\u00f6suunnitelman kohtia 5.2.1-5.2.4<br>Ohjelman kulkua voidaan ohjata valintarakenteilla. N\u00e4it\u00e4 ovat esim. ehtolauseet, kuten if-lause. Niiden ideana on suorittaa koodia sill\u00e4 perusteella, toteutuuko jokin ehto.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Mik\u00e4 on <strong>if<\/strong>-lause?<\/h3>\n\n\n\n<p>If-lauseella voidaan m\u00e4\u00e4ritt\u00e4\u00e4 ehto, jonka toteutuessa sit\u00e4 seuraava (sisennetty) koodilohko suoritetaan.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if ehto (== True):\n    suorita koodilohko<\/code><\/pre>\n\n\n\n<p>Jos ehto ei toteudu (ehto == False), ei tehd\u00e4 mit\u00e4\u00e4n ja suoritus jatkuu.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">Mik\u00e4 on <strong>else<\/strong>?<\/h4>\n\n\n\n<p>If-lauseen per\u00e4\u00e4n voidaan lis\u00e4t\u00e4 else-rakenne, jolla voidaan suorittaa j\u00e4lleen sisennetty koodilohko, jos ehto ei toteudu.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if ehto:\n    suorita t\u00e4m\u00e4 koodilohko\nelse:\n    suorita t\u00e4m\u00e4 koodilohko<\/code><\/pre>\n\n\n\n<p>N\u00e4ist\u00e4 suoritetaan siis aina vain jompikumpi riippuen siit\u00e4, toteutuuko ehto. Elseen ei tule ehtoa.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Mitk\u00e4 ovat vertailuoperaattorit?<\/h3>\n\n\n\n<p><strong>&lt;<\/strong> pienempi kuin<\/p>\n\n\n\n<p><strong>&gt;<\/strong> suurempi kuin<\/p>\n\n\n\n<p><strong>&lt;=<\/strong> pienempi tai yht\u00e4 suuri kuin<\/p>\n\n\n\n<p><strong>&gt;=<\/strong> suurempi tai yht\u00e4 suuri kuin<\/p>\n\n\n\n<p><strong>==<\/strong> yht\u00e4 suuri kuin<\/p>\n\n\n\n<p><strong>!=<\/strong> eri suuri kuin<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h4 class=\"wp-block-heading has-medium-font-size\">Miss\u00e4 niit\u00e4 k\u00e4ytet\u00e4\u00e4n?<\/h4>\n\n\n\n<p>Vertailuoperaattoreita voidaan k\u00e4ytt\u00e4\u00e4 muun muassa ehtolauseissa. Niill\u00e4 voidaan verrata muuttujia ja arvoja kesken\u00e4\u00e4n. Voidaan my\u00f6s asettaa muuttujan arvoksi totuusarvo k\u00e4ytt\u00e4en vertailuoperaattoreita esim. arvo = 1 == 2, jolloin arvoksi tulee False.<\/p>\n\n\n\n<p>Esim.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if ehto == True:\n    suorita koodilohko<\/code><\/pre>\n\n\n\n<p>tai:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if ehto != True:\n    suorita koodilohko<\/code><\/pre>\n\n\n\n<p>tai:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if arvo &lt; 100:\n    suorita koodilohko<\/code><\/pre>\n\n\n\n<p>Vertailuoperaattoreita k\u00e4ytet\u00e4\u00e4n my\u00f6s mm. silmukoissa, joissa niill\u00e4 asetetaan ehto, jonka toteutuessa silmukan suoritus p\u00e4\u00e4ttyy. Silmukoita ei kuitenkaan k\u00e4sitell\u00e4 t\u00e4ss\u00e4 osiossa.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Miten kurssilla jo esitellyt konnektiivit vertautuvat ohjelmointikielen avainsanoihin?<\/h3>\n\n\n\n<p>Python-kieless\u00e4 on monta avainsanaa, joilla on vastaavuudet matemaattisissa konnektiiveissa. \u2019<strong>not<\/strong>\u2019 on <strong>negaatio<\/strong>, \u2019<strong>and<\/strong>\u2019 on <strong>konjuktio<\/strong>, \u2019<strong>or<\/strong>\u2019 on <strong>disjunktio<\/strong>. Totuustauluja k\u00e4ytt\u00e4en voi p\u00e4\u00e4tell\u00e4, miten jokin if-lause toimii.<\/p>\n\n\n\n<p>Esimerkkin\u00e4 on ehtolause, josta luodaan totuustaulu:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>if ehto or ehto2:\n    tee jotain<\/code><\/pre>\n\n\n\n<p>Totuustaulu olisi seuraavanlainen:<\/p>\n\n\n\n<table style=\"width:100%;border-collapse: collapse\">\n  <tr>\n    <th style=\"width:20%;border-bottom:1px solid #808080\">ehto<\/th>\n    <th style=\"width:20%;border-bottom:1px solid #808080\">ehto2<\/th>\n    <th style=\"width:25%;border-bottom:1px solid #808080\">ehto or ehto2<\/th>\n    <th style=\"width:35%;border-bottom:1px solid #808080\">Suoritetaan &#8221;tee jotain&#8221;<\/th>\n  <\/tr>\n  <tr style=\"background-color:#d6d6ff\">\n    <td>tosi<\/td>\n    <td>tosi<\/td>\n    <td>tosi<\/td>\n    <td>kyll\u00e4<\/td>\n  <\/tr>\n  <tr>\n    <td>tosi<\/td>\n    <td>ep\u00e4tosi<\/td>\n    <td>tosi<\/td>\n    <td>kyll\u00e4<\/td>\n  <\/tr>\n  <tr style=\"background-color:#d6d6ff\">\n    <td>ep\u00e4tosi<\/td>\n    <td>tosi<\/td>\n    <td>tosi<\/td>\n    <td>kyll\u00e4<\/td>\n  <\/tr>\n  <tr>\n    <td>ep\u00e4tosi<\/td>\n    <td>ep\u00e4tosi<\/td>\n    <td>ep\u00e4tosi<\/td>\n    <td>ei<\/td>\n  <\/tr>\n<\/table>\n\n\n\n<p>Eli mik\u00e4li toinen ehdoista tai molemmat toteutuvat, suoritetaan koodilohko.<\/p>\n\n\n\n<p><strong>Implikaatio<\/strong> on kyseess\u00e4 silloin, kun ehdosta A seuraa B. Jos A:sta ei seuraa B:t\u00e4, kyseess\u00e4 ei ole implikaatio. Jos B ei riipu A:sta, kyseess\u00e4 on silti implikaatio.<\/p>\n\n\n\n<p>Implikaatio esimerkin kautta:<\/p>\n\n\n\n<p>Aleksi on sanonut ostavansa Alinalle auton, jos Aleksi voittaa lotossa. A on t\u00e4ll\u00f6in lottovoitto ja B on auton ostaminen. Lottovoitosta seuraa auton ostaminen. Jos A toteutuu, B toteutuu, eli A takaa B:n.<\/p>\n\n\n\n<p>Jos Aleksi ei voita lotossa, h\u00e4n voi olla ostamatta Alinalle autoa, sill\u00e4 lupauksessa oli ehtona lottovoitto. Aleksi voi my\u00f6s ostaa Alinalle auton, vaikkei olisi voittanut lotossa, sill\u00e4 rahaa voi saada muillakin tavoin ja lupauksessa ei kielletty auton ostamista ilman lottovoittoa. Implikaatio toteutuu n\u00e4iss\u00e4 tapauksissa.<\/p>\n\n\n\n<p>Vain jos Aleksi voittaa lotossa, eik\u00e4 osta autoa, implikaatio ei toteudu, sill\u00e4 lupaus on rikottu. Implikaatio on siis ik\u00e4\u00e4n kuin ehdollinen lupaus.<\/p>\n\n\n\n<p><strong>Ekvivalenssi<\/strong> on kyseess\u00e4 silloin, kun A ja B ovat yht\u00e4pit\u00e4v\u00e4t, eli A:n ja B:n totuusarvot ovat samat, eli Python-symbolein: silloin kun ehto 1 ja ehto2 yhdistettyn\u00e4 == -operaattorilla palauttavat True. Eli: (ehto1 == ehto2) = True. Eli toisin sanoen, jos A ja B ovat molemmat tosia tai ep\u00e4tosia, ekvivalenssi toteutuu.<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading has-medium-font-size\">Mik\u00e4 on <strong>elif<\/strong>?<\/h3>\n\n\n\n<p>Voimme if-else-rakennetta k\u00e4ytt\u00e4en luoda valintarakenteita, joissa on rajallinen m\u00e4\u00e4r\u00e4 vaihtoehtoja. Vaihtoehtoja voi kuitenkin lis\u00e4t\u00e4 lis\u00e4\u00e4m\u00e4ll\u00e4 elif-lauseen. Elif-lauseita voi lis\u00e4t\u00e4 saman if-lauseen alle rajattomasti. Elif onkin lyhennelm\u00e4 sanoista else if.<\/p>\n\n\n\n<p>Elif toimii seuraavasti:<\/p>\n\n\n\n<p>Jos if-lauseen ehto ei p\u00e4de, siirryt\u00e4\u00e4n elif-lauseen ehtoon.<\/p>\n\n\n\n<p>Esim.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>luku = 100\nif luku &gt; 120:\n    tee jotain\nelif luku &gt; 110:\n    tee jotain muuta\nelif luku &gt;= 100:\n    tee viel\u00e4 jotain muuta\nelse:\n    \u00e4l\u00e4 tee mit\u00e4\u00e4n<\/code><\/pre>\n\n\n\n<p>Elif ei ole sama kuin else, sill\u00e4 else ei voi sis\u00e4lt\u00e4\u00e4 ehtoa ja elifin tulee aina sis\u00e4lt\u00e4\u00e4 ehto. Kumpikaan ei voi esiinty\u00e4 ilman if-lausetta (t\u00e4ss\u00e4 kontekstissa) ja molemmat sijoittuvat aina if-lauseen j\u00e4lkeen. Else tulee kuitenkin aina my\u00f6s elifin j\u00e4lkeen.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button has-custom-width wp-block-button__width-100\"><a class=\"wp-block-button__link has-black-color has-text-color has-background has-link-color wp-element-button\" href=\"#\" style=\"background-color:#d6d6ff\">Hurraa! Teoriaosuus on nyt k\u00e4yty l\u00e4pi. On aika siirty\u00e4 teht\u00e4vien pariin.<\/a><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Valinta Teht\u00e4v\u00e4t on jaettu kolmeen eri vaikeustasoon. Valitse alta sinulle sopiva taso.<\/p>\n","protected":false},"author":3743,"featured_media":0,"parent":187,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-434","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/434","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/users\/3743"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/comments?post=434"}],"version-history":[{"count":73,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/434\/revisions"}],"predecessor-version":[{"id":2010,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/434\/revisions\/2010"}],"up":[{"embeddable":true,"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/pages\/187"}],"wp:attachment":[{"href":"https:\/\/blog.edu.turku.fi\/allu\/wp-json\/wp\/v2\/media?parent=434"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}