Skip to content

Commit 66b3044

Browse files
committed
1.4 upto line 255
1 parent 0335e9c commit 66b3044

File tree

2 files changed

+140
-39
lines changed

2 files changed

+140
-39
lines changed

.vscode/settings.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
{
22
"files.eol": "\n",
33
"files.trimTrailingWhitespace": true,
4-
"files.insertFinalNewline": true
4+
"files.insertFinalNewline": true,
5+
"workbench.colorCustomizations": {
6+
"activityBar.background": "#213128",
7+
"titleBar.activeBackground": "#2E4537",
8+
"titleBar.activeForeground": "#FAFCFB"
9+
}
510
}

data/osa-1/4-muuttujat.md

Lines changed: 134 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,45 @@
11
---
2-
path: "/osa-1/4-muuttujat"
3-
title: "Muuttujat"
2+
# path: "/osa-1/4-muuttujat"
3+
# title: "Muuttujat"
4+
path: "/osa-1/4-muuttujat" # NOTE: not translated
5+
title: "Variables"
46
---
57

6-
<text-box variant='learningObjectives' name='Oppimistavoitteet'>
8+
<text-box variant='learningObjectives' name='Learning Objectives'>
79

8-
- Tunnet käsitteen muuttuja. Tiedät mitä ovat muuttujan tyyppi, muuttujan nimi, ja muuttujan arvo.
9-
- Osaat luoda ja käsitellä merkkijono-, kokonaisluku-, liukuluku-, ja totuusarvomuuttujia.
10+
<!-- - Tunnet käsitteen muuttuja. Tiedät mitä ovat muuttujan tyyppi, muuttujan nimi, ja muuttujan arvo.
11+
- Osaat luoda ja käsitellä merkkijono-, kokonaisluku-, liukuluku-, ja totuusarvomuuttujia. -->
12+
13+
- You understand the concept of a variable. You know what variable types, names and values are.
14+
- You know how to create and use string, integer, float, and boolean type variables.
1015

1116
</text-box>
1217

13-
Tutustuimme syötteen lukemisen yhteydessä jo pikaisesti merkkijonomuuttujiin. Tutustutaan seuraavaksi muihin usein käytettyihin Javan muuttujatyyppeihin.
18+
<!-- Tutustuimme syötteen lukemisen yhteydessä jo pikaisesti merkkijonomuuttujiin. Tutustutaan seuraavaksi muihin usein käytettyihin Javan muuttujatyyppeihin. -->
1419

15-
Muuttujaa kannattaa ajatella lokerona, johon voi tallettaa annetun tyyppistä tietoa. Tyyppejä ovat esimerkiksi teksti eli merkkijono (`String`), kokonaisluku (`int`), liukuluku (`double`) eli desimaaliluku, ja totuusarvo (`boolean`). Muuttujaan asetetaan arvo yhtäsuuruusmerkillä (`=`).
20+
We already familiarized ourselves with strings while reading inputs. Let's now move on to learn about other widely-used variable types in Java.
1621

17-
```java
22+
<!-- Muuttujaa kannattaa ajatella lokerona, johon voi tallettaa annetun tyyppistä tietoa. Tyyppejä ovat esimerkiksi teksti eli merkkijono (`String`), kokonaisluku (`int`), liukuluku (`double`) eli desimaaliluku, ja totuusarvo (`boolean`). Muuttujaan asetetaan arvo yhtäsuuruusmerkillä (`=`). -->
23+
24+
A variable can be thought of as a container in which information of a particular type can be stored. Examples of these different types are text (`String`), whole numbers (`int`), decimal numbers(`double`), and true or false values (`boolean`). A value is placed in a variable using an equals sign (`=`). -->
25+
26+
<!-- ```java
1827
int kuukausia = 12;
28+
``` -->
29+
30+
```java
31+
int months = 12;
1932
```
2033

21-
Yllä olevassa lauseessa asetetaan kokonaisluku-tyyppiä (int) olevaan muuttujaan nimeltä kuukausia arvo 12. Lause luetaan "muuttuja kuukausia saa arvon 12".
34+
<!-- Yllä olevassa lauseessa asetetaan kokonaisluku-tyyppiä (int) olevaan muuttujaan nimeltä kuukausia arvo 12. Lause luetaan "muuttuja kuukausia saa arvon 12".
2235
23-
Muuttujan arvo voidaan yhdistää merkkijonoon +-merkillä seuraavan esimerkin mukaisesti.
36+
Muuttujan arvo voidaan yhdistää merkkijonoon +-merkillä seuraavan esimerkin mukaisesti. -->
2437

25-
```java
38+
In the statement above, a value of 12 is assigned to the integer variable named months. The statement reads: "the variable months gets the value 12".
39+
40+
A variable's value can be joined to a string using the + sign as seen in the following example.
41+
42+
<!-- ```java
2643
String teksti = "sisältää tekstiä";
2744
int kokonaisluku = 123;
2845
double liukuluku = 3.141592653;
@@ -31,27 +48,49 @@ boolean totuusarvo = true;
3148
System.out.println("Tekstimuuttuja: " + teksti);
3249
System.out.println("Kokonaislukumuuttuja: " + kokonaisluku);
3350
System.out.println("Liukulukumuuttuja: " + liukuluku);
34-
System.out.println("Totuusarvo: " + totuusarvo);
51+
System.out.println("Totuusarvo: " + totuusarvo); -->
52+
53+
```java
54+
String text = "contains text";
55+
int wholeNumber = 123;
56+
double decimalNumber = 3.141592653;
57+
boolean trueOrFalse = true;
58+
59+
System.out.println("Text variable: " + text);
60+
System.out.println("Integer variable: " + wholeNumber);
61+
System.out.println("Decimal variable: " + decimalNumber);
62+
System.out.println("Boolean: " + trueOrFalse);
3563
```
3664

37-
Tulostus:
65+
<!-- Tulostus: -->
66+
Output:
3867

3968
<sample-output>
40-
69+
<!--
4170
Tekstimuuttuja: sisältää tekstiä
4271
Kokonaislukumuuttuja: 123
4372
Liukulukumuuttuja: 3.141592653
44-
Totuusarvo: true
73+
Totuusarvo: true -->
74+
75+
Text variable: contains text
76+
Integer variable: 123
77+
Decimal variable: 3.141592653
78+
Booolean: true
4579

4680
</sample-output>
4781

48-
<programming-exercise name="Muuttuvat muuttujat" tmcname='osa01-Osa01_11.MuuttuvatMuuttujat'>
82+
<!-- <programming-exercise name="Muuttuvat muuttujat" tmcname='osa01-Osa01_11.MuuttuvatMuuttujat'> -->
4983

50-
Tehtäväpohja sisältää ohjelman, joka tulostaa seuraavaa.
84+
<programming-exercise name="Varying variables" tmcname='osa01-Osa01_11.MuuttuvatMuuttujat'>
85+
<!-- NOTE: tmcname not translated -->
86+
87+
<!-- Tehtäväpohja sisältää ohjelman, joka tulostaa seuraavaa. -->
88+
89+
The exercise base contains a program that prints the following:
5190

5291
<sample-output>
5392

54-
Kanoja:
93+
<!-- Kanoja:
5594
3
5695
Pekonia (kg):
5796
5.5
@@ -61,15 +100,30 @@ Ei ole!
61100
Tässä vielä tiivistelmä:
62101
3
63102
5.5
64-
Ei ole!
103+
Ei ole! -->
104+
105+
Chicken:
106+
3
107+
Bacon (kg):
108+
5.5
109+
Tractor:
110+
No!
111+
112+
And a summary:
113+
3
114+
5.5
115+
No!
116+
65117

66118
</sample-output>
67119

68-
Muuta ohjelmaa annetuista kohdista niin että tuloste on:
120+
<!-- Muuta ohjelmaa annetuista kohdista niin että tuloste on: -->
121+
122+
Change the program in the given places so that it outputs the following:
69123

70124
<sample-output>
71125

72-
Kanoja:
126+
<!-- Kanoja:
73127
9000
74128
Pekonia (kg):
75129
0.1
@@ -79,15 +133,29 @@ Zetor
79133
Tässä vielä tiivistelmä:
80134
9000
81135
0.1
136+
Zetor -->
137+
138+
Chucken:
139+
9000
140+
Bacon (kg):
141+
0.1
142+
Tractor:
143+
Zetor
144+
145+
And a summary:
146+
9000
147+
0.1
82148
Zetor
83149

84150
</sample-output>
85151

86152
</programming-exercise>
87153

88-
Muuttujien nimet ovat uniikkeja, eikä kahdella muuttujalla saa olla ohjelmassa samaa nimeä. Seuraavassa esimerkissä oleva ohjelma on virheellinen, koska ohjelmassa yritetään luoda kahteen kertaan muuttujaa nimeltä `pii`. Muuttujan luominen tapahtuu kun muuttuja esitellään ensimmäistä kertaa.
154+
<!-- Muuttujien nimet ovat uniikkeja, eikä kahdella muuttujalla saa olla ohjelmassa samaa nimeä. Seuraavassa esimerkissä oleva ohjelma on virheellinen, koska ohjelmassa yritetään luoda kahteen kertaan muuttujaa nimeltä `pii`. Muuttujan luominen tapahtuu kun muuttuja esitellään ensimmäistä kertaa. -->
89155

90-
```java
156+
Variable names are unique - no two variables can have the same name. The program in the following example is erroneous since it attempts to create the variable `pii` twice. The variable is created the first time its introduced.
157+
158+
<!-- ```java
91159
public class Esimerkki {
92160
public static void main(String[] args) {
93161
double pii = 3.14;
@@ -96,9 +164,23 @@ public class Esimerkki {
96164
System.out.println("Piin arvo on: " + pii);
97165
}
98166
}
167+
``` -->
168+
169+
```java
170+
public class Example {
171+
public static void main(String[] args) {
172+
double pii = 3.14;
173+
double pii = 3.141592653;
174+
175+
System.out.println("The value of pi is: " + pii);
176+
}
177+
}
99178
```
100179

101-
Muuttujan tyyppi kerrotaan kun muuttuja esitellään ensimmäistä kertaa. Kun muuttujaan asetetaan uusi arvo, ei muuttujan tyyppiä enää kerrota.
180+
181+
<!-- Muuttujan tyyppi kerrotaan kun muuttuja esitellään ensimmäistä kertaa. Kun muuttujaan asetetaan uusi arvo, ei muuttujan tyyppiä enää kerrota. -->
182+
183+
The variable type is mentioned when the variable is first declared. When a new value is assigned to the variable, its type is no longer mentioned.
102184

103185
```java
104186
int luku = 10;
@@ -115,10 +197,13 @@ System.out.println(luku);
115197
</sample-output>
116198

117199

118-
## Muuttujaan asetetun arvon muuttaminen
200+
<!-- ## Muuttujaan asetetun arvon muuttaminen -->
119201

120-
Muuttuja on olemassa sen esittelyhetkestä lähtien, ja sen arvo säilyy kunnes muuttujaan asetetaan toinen arvo. Muuttujan arvon muuttaminen onnistuu lauseella, jossa on muuttujan nimi, yhtäsuuruusmerkki, ja muuttujan uusi arvo. Huomaa että muuttujan tyyppi kirjoitetaan vain kun muuttuja esitellään ohjelmassa ensimmäistä kertaa.
202+
## Altering a value assigned to a variable
121203

204+
<!-- Muuttuja on olemassa sen esittelyhetkestä lähtien, ja sen arvo säilyy kunnes muuttujaan asetetaan toinen arvo. Muuttujan arvon muuttaminen onnistuu lauseella, jossa on muuttujan nimi, yhtäsuuruusmerkki, ja muuttujan uusi arvo. Huomaa että muuttujan tyyppi kirjoitetaan vain kun muuttuja esitellään ohjelmassa ensimmäistä kertaa. -->
205+
206+
A variable exist from the moment it first appears, and its initial value is preserved until another value is assigned to it. A variable's value is changed using an statement that comprises the variable name, an equals sign, and the new value to be assigned. Remember to keep in mind that the variable type is only written during the initial variable declaration.
122207

123208

124209
```java
@@ -129,7 +214,8 @@ luku = 42;
129214
System.out.println("Muuttujan arvo on " + luku);
130215
```
131216

132-
Tulostus:
217+
<!-- Tulostus: -->
218+
Output:
133219

134220
<sample-output>
135221

@@ -138,23 +224,33 @@ Muuttujan arvo on 42
138224

139225
</sample-output>
140226

141-
Tarkastellaan edellisen ohjelmakoodin suoritusta askel askeleelta. Kun muuttuja esitellään ohjelmakoodissa ensimmäistä kertaa, eli sekä muuttujan tyyppi (tässä `int`) että sen nimi (tässä `luku`) kerrotaan tietokoneelle, tietokone luo muuttujaa varten "nimetyn lokeron". Tämän jälkeen yhtäsuuruusmerkin oikealla puolella oleva arvo kopioidaan tähän nimettyyn lokeroon.
227+
<!-- Tarkastellaan edellisen ohjelmakoodin suoritusta askel askeleelta. Kun muuttuja esitellään ohjelmakoodissa ensimmäistä kertaa, eli sekä muuttujan tyyppi (tässä `int`) että sen nimi (tässä `luku`) kerrotaan tietokoneelle, tietokone luo muuttujaa varten "nimetyn lokeron". Tämän jälkeen yhtäsuuruusmerkin oikealla puolella oleva arvo kopioidaan tähän nimettyyn lokeroon. -->
228+
229+
Let's look at the preceding program's execution step-by-step. When the variable appears in the program for the first time, the computer is informed of both its type (`int` in this case) and its name (`luku` in this case), and the computer creates a 'named container' for the variable. Then, the value on the right side of the equals sign is copied to this named container.
142230

143231
![](../img/drawings/muuttujan-arvon-vaihto-1.png)
144232

145-
Kun ohjelmakoodissa viitataan muuttujaan sen nimellä -- tässä halutaan tulostaa merkkijono "Muuttujan arvo on " sekä muuttujan `luku` arvo, muuttujan `luku` arvo haetaan sen nimellä löytyvästä lokerosta.
233+
<!-- Kun ohjelmakoodissa viitataan muuttujaan sen nimellä -- tässä halutaan tulostaa merkkijono "Muuttujan arvo on " sekä muuttujan `luku` arvo, muuttujan `luku` arvo haetaan sen nimellä löytyvästä lokerosta. -->
234+
235+
Whenever a variable is referred to by its name in a program - here the goal is to print the string "The value of the variable is " and the value of `luku` variable, the variable is retrieved from a container that's found by its name.
146236

147237
![](../img/drawings/muuttujan-arvon-vaihto-2.png)
148238

149-
Kun muuttujaan asetetaan arvo (tässä `luku = 42`), tarkistetaan ensin löytyykö muuttujan nimistä lokeroa. Jos lokero löytyy, uusi arvo kopioidaan lokeroon vanhan arvon tilalle ja vanha arvo katoaa. Jos muuttujan nimellä ei löydy lokeroa, ohjelman suoritus päättyy virheilmoitukseen tai ohjelmaa ei voida käynnistää.
239+
<!-- Kun muuttujaan asetetaan arvo (tässä `luku = 42`), tarkistetaan ensin löytyykö muuttujan nimistä lokeroa. Jos lokero löytyy, uusi arvo kopioidaan lokeroon vanhan arvon tilalle ja vanha arvo katoaa. Jos muuttujan nimellä ei löydy lokeroa, ohjelman suoritus päättyy virheilmoitukseen tai ohjelmaa ei voida käynnistää. -->
240+
241+
Whenever a value is assigned to a variable (here `luku = 42`), a check is run to see whether or not a container of the given name already exists. If a container exists, a new value is copied in the place of the old value, and the old value disappears. If a container of the given name is not found, the program execution ends in an error message or it fails to run.
150242

151243
![](../img/drawings/muuttujan-arvon-vaihto-3.png)
152244

153-
Seuraavaksi ohjelmakoodissa viitataan taas muuttujaan sen nimellä -- tässäkin halutaan tulostaa merkkijono "Muuttujan arvo on " sekä muuttujan `luku` arvo. Toimitaan kuten normaalisti, eli haetaan muuttujan `luku` arvo sen nimellä löytyvästä lokerosta.
245+
<!-- Seuraavaksi ohjelmakoodissa viitataan taas muuttujaan sen nimellä -- tässäkin halutaan tulostaa merkkijono "Muuttujan arvo on " sekä muuttujan `luku` arvo. Toimitaan kuten normaalisti, eli haetaan muuttujan `luku` arvo sen nimellä löytyvästä lokerosta. -->
246+
247+
The variable is then referred to again by its name -- the aim is once again to print the string "The value of the variable is " and the value of `luku`. We proceed as normal by retrieving the value of `luku` from a container having its name.
154248

155249
![](../img/drawings/muuttujan-arvon-vaihto-4.png)
156250

157-
Kuten huomaat, ohjelman lopputilanteessa muuttujan alkuperäinen arvo on kadonnut. Muuttuja voi sisältää kerrallaan aina vain yhden arvon.
251+
<!-- Kuten huomaat, ohjelman lopputilanteessa muuttujan alkuperäinen arvo on kadonnut. Muuttuja voi sisältää kerrallaan aina vain yhden arvon. -->
252+
253+
At the end of the program, you'll notice that the original value of the variable has disappeared. A given variable can hold only one value at a time.
158254

159255
## Muuttujan tyyppi pysyy
160256

@@ -281,12 +377,12 @@ Kunkin tyypin mahdolliset arvot ovat siis rajattuja. Esimerkiksi merkkijonomuutt
281377
TODO: korjaa taulukko? koodinpätkät oikein rivittyvinä!
282378

283379

284-
| Tyyppi | Esimerkki | Sallitut arvot |
285-
|--------|-----------|----------------|
286-
| Kokonaisuluku, eli `int` | `int luku = 4;` | Kokonaislukumuuttuja voi sisältää kokonaislukuja, joiden arvot ovat välillä -2147483648 ja 2147483647. |
287-
| Liukuluku, eli `double` | `double luku = 4.2;` | Liukulukumuuttuja sisältää desimaalilukuja, joiden suurin mahdollinen arvo on noin 2<sup>1023</sup> Kun desimaaliluku esitetään liukuluvun avulla, voi luku olla epätarkka; liukuluvulla ei pysty esittämään mitä tahansa desimaalilukua. Taustasyihin palataan kurssilla Tietokoneen toiminta. |
288-
| Merkkijono, eli `String` | `String teksti = "Hei!";` | Merkkijonomuuttuja voi sisältää merkkijonoja. Merkkijonot rajataan hipsuilla. |
289-
| Totuusarvo, eli `boolean` | `boolean tosi = true;` | Totuusarvomuuttuja sisältää joko arvon `true` eli totta tai arvon `false` eli epätotta. |
380+
| Tyyppi | Esimerkki | Sallitut arvot |
381+
| ------------------------- | ------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
382+
| Kokonaisuluku, eli `int` | `int luku = 4;` | Kokonaislukumuuttuja voi sisältää kokonaislukuja, joiden arvot ovat välillä -2147483648 ja 2147483647. |
383+
| Liukuluku, eli `double` | `double luku = 4.2;` | Liukulukumuuttuja sisältää desimaalilukuja, joiden suurin mahdollinen arvo on noin 2<sup>1023</sup> Kun desimaaliluku esitetään liukuluvun avulla, voi luku olla epätarkka; liukuluvulla ei pysty esittämään mitä tahansa desimaalilukua. Taustasyihin palataan kurssilla Tietokoneen toiminta. |
384+
| Merkkijono, eli `String` | `String teksti = "Hei!";` | Merkkijonomuuttuja voi sisältää merkkijonoja. Merkkijonot rajataan hipsuilla. |
385+
| Totuusarvo, eli `boolean` | `boolean tosi = true;` | Totuusarvomuuttuja sisältää joko arvon `true` eli totta tai arvon `false` eli epätotta. |
290386

291387

292388
## Erityyppisten muuttujien lukeminen käyttäjältä

0 commit comments

Comments
 (0)