Please to interact with this component.

{}

Ohjelmointi 1, syksy 2020, luento 11

# L11

11. luento. ma 12.10.2020 klo 12:15-14:00: Olioviitteet, 2-ulotteiset taulukot

Muu sisältö: Aliohjelmien tekeminen, taulukot, silmukat, if-lauseet, etsiminen, debuggaus, pelikenttä merkkijonosta

1. Visual Studion sanastoa

Katso: Sanasto, löytyy myös menusta

  • assignment = sijoitus
  • unassigned = sijoittamaton, alustamaton

Kerro jos jotakin puuttuu, sinne voi jättää kommentin tai lisätä loppuun puuttuvia sanoja, niin siirretään oikealla paikalleen ja selitetään.

2. Kertausta

# Plugin1
# muuttujankasvatus
# loops

3. Animaatiot ja silmukat

Lasketaan robotilla yhteen Input-hihnalla olevat luvut ja lopetetaan kun tulee vastaan 0. Lopuksi laitetaan tulos Output-hihnalle. Oletetaan että hihnalla on aina ainakin yksi 0. Muistipaikka 0:aa käytetään summana.

3.1 while

  • muista myös debuggerilla mennä silmukoita läpi!
        while (ehto) 
        {
            lause1;
            lause2;
            lauseX;
        }
# k22

Kuva 22: while-silmukka vuokaaviona.

# ae_while
# ae_while3

Robotti joka "tulostaa" luvut 1-3 (alle 4). count on muistipaikassa 1:

3.2 do-while

do 
{
  lause1;
  lause2;
  lauseX;
} while (ehto);
# k24

Kuva 24: do-while-silmukka vuokaaviona.

# ae_doWhile

Robotti joka "tulostaa" luvut 1-3 (alle 4), count on muistipaikassa 1:

3.3 for

Kuva 25: for-silmukan syntaksi graafisessa "junaratamuodossa".
Kuva 25: for-silmukan syntaksi graafisessa "junaratamuodossa".
for (muuttujien alustukset; ehto; kasvatuslauseet)
{ 
   lauseet; // silmukan runko-osa
}
# ae_forloop1
# ae_forloop
# animfor
# robo1

3.4 Robottitehtävä

Muuta robotin ohjelma sellaiseksi, joka laskee Input-liukuhihnalla olevat positiiviset luvut yhteen ja "tulostaa" niiden summan Output-hihnalle. Laskeminen lopetetaan ja tulos tulostetaan kun hihnalta tulee vastaan luku 0. Oletetaan että hihnalla on aina luku 0.

# robotti1

3.5 foreach

int i = 0;
while (i < luvut.Length )
{
    int luku = luvut[i];
    ...
    i++;
}

vastaava for-silmukka

for (int i =0; i < luvut.Length; i++)
{
    int luku = luvut[i];
    ...
}

tätä vastaa foreach, jossa ei esiinny indeksiä:

foreach (int luku in luvut)
{
   ...
}
# ae_forloop_each

4. Viitteet

# olioviitejamuuttuja

4.1 Piirrostehtävä

Muokkaa alle kuvaa samaa tahtia kun etenet debuggerilla Olioviitteet-luokan ohjelmaa.

# viitteet2
# ae_olioviitteet

Muita kysymyksiä

# funktoita2

2-ulotteiset taulukot

# kerrostalo

[0,0], [1,3], [2,0], [2,3], [3,2], [3,3], [5,2], [5,4]

Piirrä kuva kun ukot on palautettu taulukossa.

# ukottaulukossa
# ukott
# matriisit
# kentanmuokkaus

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.