Skip to content

Commit 7fe4955

Browse files
committed
about half of 1.4 done
1 parent 66b3044 commit 7fe4955

File tree

1 file changed

+159
-42
lines changed

1 file changed

+159
-42
lines changed

data/osa-1/4-muuttujat.md

Lines changed: 159 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ We already familiarized ourselves with strings while reading inputs. Let's now m
2121

2222
<!-- 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ä (`=`). -->
2323

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 (`=`). -->
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 include text (`String`), whole numbers (`int`), floating-point numbers (`double`), and true or false values (`boolean`). A value is assigned to a variable using the equals sign (`=`). -->
2525

2626
<!-- ```java
2727
int kuukausia = 12;
@@ -35,7 +35,7 @@ int months = 12;
3535
3636
Muuttujan arvo voidaan yhdistää merkkijonoon +-merkillä seuraavan esimerkin mukaisesti. -->
3737

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".
38+
In the statement above, the value of 12 is assigned to an integer variable named months. The statement reads: "the variable months gets the value 12".
3939

4040
A variable's value can be joined to a string using the + sign as seen in the following example.
4141

@@ -53,12 +53,12 @@ System.out.println("Totuusarvo: " + totuusarvo); -->
5353
```java
5454
String text = "contains text";
5555
int wholeNumber = 123;
56-
double decimalNumber = 3.141592653;
56+
double floatingPoint = 3.141592653;
5757
boolean trueOrFalse = true;
5858

5959
System.out.println("Text variable: " + text);
6060
System.out.println("Integer variable: " + wholeNumber);
61-
System.out.println("Decimal variable: " + decimalNumber);
61+
System.out.println("Floating-point variable: " + floatingPoint);
6262
System.out.println("Boolean: " + trueOrFalse);
6363
```
6464

@@ -74,7 +74,7 @@ Totuusarvo: true -->
7474

7575
Text variable: contains text
7676
Integer variable: 123
77-
Decimal variable: 3.141592653
77+
floating-point variable: 3.141592653
7878
Booolean: true
7979

8080
</sample-output>
@@ -153,7 +153,7 @@ Zetor
153153

154154
<!-- 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. -->
155155

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.
156+
Variable names are unique - no two variables can have the same name. The program in the following example is erroneous as it attempts to create the variable `pi` twice. The variable is created the first time its introduced.
157157

158158
<!-- ```java
159159
public class Esimerkki {
@@ -169,10 +169,10 @@ public class Esimerkki {
169169
```java
170170
public class Example {
171171
public static void main(String[] args) {
172-
double pii = 3.14;
173-
double pii = 3.141592653;
172+
double pi = 3.14;
173+
double pi = 3.141592653;
174174

175-
System.out.println("The value of pi is: " + pii);
175+
System.out.println("The value of pi is: " + pi);
176176
}
177177
}
178178
```
@@ -182,13 +182,18 @@ public class Example {
182182

183183
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.
184184

185-
```java
185+
<!-- ```java
186186
int luku = 10;
187187
System.out.println(luku);
188188
luku = 4;
189189
System.out.println(luku);
190+
``` -->
191+
```java
192+
int value = 10;
193+
System.out.println(value);
194+
value = 4;
195+
System.out.println(value);
190196
```
191-
192197
<sample-output>
193198

194199
10
@@ -206,21 +211,30 @@ System.out.println(luku);
206211
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.
207212

208213

209-
```java
214+
<!-- ```java
210215
int luku = 123;
211216
System.out.println("Muuttujan arvo on " + luku);
212217
213218
luku = 42;
214219
System.out.println("Muuttujan arvo on " + luku);
220+
``` -->
221+
```java
222+
int value = 123;
223+
System.out.println("The value of the variable is " + value);
224+
225+
value = 42;
226+
System.out.println("The value of the variable is " + value);
215227
```
216228

217229
<!-- Tulostus: -->
218230
Output:
219231

220232
<sample-output>
221233

222-
Muuttujan arvo on 123
223-
Muuttujan arvo on 42
234+
<!-- Muuttujan arvo on 123
235+
Muuttujan arvo on 42 -->
236+
The value of the variable is 123
237+
The value of the variable is 42
224238

225239
</sample-output>
226240

@@ -252,123 +266,226 @@ The variable is then referred to again by its name -- the aim is once again to p
252266

253267
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.
254268

255-
## Muuttujan tyyppi pysyy
269+
<!-- ## Muuttujan tyyppi pysyy -->
256270

257-
Kun muuttujan tyyppi on kertaalleen määritelty, ei sitä voi enää muuttaa. Totuusarvoa ei siis voi esimerkiksi asettaa kokonaislukutyyppiseen muuttujaan, eikä totuusarvomuuttujaan voi asettaa kokonaislukua.
271+
## Variable type persists
258272

259-
```java
273+
<!-- Kun muuttujan tyyppi on kertaalleen määritelty, ei sitä voi enää muuttaa. Totuusarvoa ei siis voi esimerkiksi asettaa kokonaislukutyyppiseen muuttujaan, eikä totuusarvomuuttujaan voi asettaa kokonaislukua. -->
274+
275+
Once a variable's type has been declared, it can no longer be changed. For example, a boolean value cannot be assigned to a variable of type integer, nor can an integer be assigned to a variable of type boolean.
276+
277+
<!-- ```java
260278
boolean onnistuukoKokonaisLuvunAsetus = false;
261279
onnistuukoKokonaisLuvunAsetus = 42; // Ei onnistu
262280
263281
int luku = 10;
264282
onnistuukoKokonaisLuvunAsetus = luku; // Ei myöskään onnistu
283+
``` -->
284+
285+
```java
286+
boolean integerAssignmentWillWork = false;
287+
integerAssignmentWillWork = 42; // Does not work
288+
289+
int value = 10;
290+
integerAssignmentWillWork = value; // Neither does this
265291
```
292+
<!-- Poikkeus kuitenkin löytyy: liukulukutyyppiseen muuttujaan voi asettaa kokonaisluvun, sillä Java osaa muuttaa kokonaisluvun liukuluvuksi asetuksen yhteydessä. -->
266293

267-
Poikkeus kuitenkin löytyy: liukulukutyyppiseen muuttujaan voi asettaa kokonaisluvun, sillä Java osaa muuttaa kokonaisluvun liukuluvuksi asetuksen yhteydessä.
294+
However, there is an exception: an integer can be assigned to a variable of type double, since Java can convert an integer to a double upon assignment.
268295

269-
```java
296+
<!-- ```java
270297
double liukuluku = 0.42;
271298
liukuluku = 1; // Onnistuu
272299
273300
int luku = 10;
274301
liukuluku = luku; // Onnistuu myös
275302
276-
```
303+
``` -->
277304

305+
```java
306+
double floatingPoint = 0.42;
307+
floatingPoint = 1; // Works
278308

279-
Liukulukua ei kuitenkaan voi asettaa kokonaislukuun. Tämä johtuu siitä, että ohjelmointikielen suunnittelijat yrittävät suojella ohjelmoijaa tietoa kadottavilta ohjelmointivirheiltä.
309+
int value = 10;
310+
floatingPoint = value; // Also works
280311

281-
```java
312+
```
313+
314+
<!-- Liukulukua ei kuitenkaan voi asettaa kokonaislukuun. Tämä johtuu siitä, että ohjelmointikielen suunnittelijat yrittävät suojella ohjelmoijaa tietoa kadottavilta ohjelmointivirheiltä. -->
315+
A floting-point value cannot, however, be assigned to an integer variable. That is because the creators of the language try to prevent developrs from making errors that lead to information being lost.
316+
317+
<!-- ```java
282318
int luku = 4.2; // Ei onnistu
283319
284320
double liukuluku = 0.42;
285321
luku = liukuluku; // Ei myöskään onnistu
322+
``` -->
323+
324+
```java
325+
int value = 4.2; // Does not work
326+
327+
double floatingPoint = 0.42;
328+
value = floatingPoint; // Neither does this
286329
```
287330

288-
## Muuttujan nimentä
331+
<!-- ## Muuttujan nimentä -->
332+
## Naming variables
289333

290-
Muuttujien nimentä on oleellinen osa ohjelman kuvausta. Tarkastellaan kahta esimerkkiä.
334+
<!-- Muuttujien nimentä on oleellinen osa ohjelman kuvausta. Tarkastellaan kahta esimerkkiä. -->
335+
Naming variables is a fundamental aspect of describing a program. Let's look at two examples.
336+
337+
<!-- ```java
338+
double a = 3.14;
339+
double b = 22.0;
340+
double c = a * b * b;
291341
342+
System.out.println(c);
343+
``` -->
292344
```java
293345
double a = 3.14;
294346
double b = 22.0;
295347
double c = a * b * b;
296348

297349
System.out.println(c);
298350
```
299-
300351
<sample-output>
301352

302353
1519.76
303354

304355
</sample-output>
305356

306-
```java
357+
<!-- ```java
307358
double pii = 3.14;
308359
double sade = 22.0;
309360
double pintaAla = pii * sade * sade;
310361
311362
System.out.println(pintaAla);
312-
```
363+
``` -->
364+
```java
365+
double pi = 3.14;
366+
double radius = 22.0;
367+
double surfaceArea = pi * radius * radius;
313368

369+
System.out.println(surfaceArea);
370+
```
314371
<sample-output>
315372

316373
1519.76
317374

318375
</sample-output>
319376

320377

321-
Edellä olevat kaksi esimerkkiä sisältävät täsmälleen saman toiminnallisuuden ja tuottavat saman tulostuksen. Toinen esimerkeistä on kuitenkin paljon ymmärrettävämpi. Kyseessä on ympyrän pinta-alan laskevan ohjelman koodi. Ensimmäisellä rivillä määritellään piin arvo, toisella rivillä ympyrän säde, ja kolmannella rivillä lasketaan pinta-ala. Tämän jälkeen pinta-ala tulostetaan.
378+
<!-- Edellä olevat kaksi esimerkkiä sisältävät täsmälleen saman toiminnallisuuden ja tuottavat saman tulostuksen. Toinen esimerkeistä on kuitenkin paljon ymmärrettävämpi. Kyseessä on ympyrän pinta-alan laskevan ohjelman koodi. Ensimmäisellä rivillä määritellään piin arvo, toisella rivillä ympyrän säde, ja kolmannella rivillä lasketaan pinta-ala. Tämän jälkeen pinta-ala tulostetaan. -->
379+
380+
Both of the preceeding examples have exactly the same functionality, and print the same result. However, one of them is clearly more understandable. The idea is to compute the surface area of a circle. The value of pi is defined on the first row, the circle's radius on the second, and the surface area calculated on the third.
322381

323-
<text-box variant='hint' name="Muuttujat sanoittavat ohjelmaa ja ratkaistavaa ongelmaa">
382+
<!-- <text-box variant='hint' name="Muuttujat sanoittavat ohjelmaa ja ratkaistavaa ongelmaa"> -->
383+
<text-box variant='hint' name="Variables express the program and the problem to be solved">
384+
<!--
385+
Ohjelmointi on ongelmanratkaisuväline. Ohjelmoidessa luodaan ratkaisua jonkinlaiseen ongelmaan kuten autojen automaattiseen ohjaamiseen. Kun ongelmaa ratkaistaan, ohjelmoija päättää termeistä, joilla ongelmaa kuvataan. Tämä termistö, esimerkiksi ohjelmassa käytettävien muuttujien nimet, tulevat kuvaamaan ongelmaa ohjelman parissa tulevaisuudessa työskenteleville. -->
324386

325-
Ohjelmointi on ongelmanratkaisuväline. Ohjelmoidessa luodaan ratkaisua jonkinlaiseen ongelmaan kuten autojen automaattiseen ohjaamiseen. Kun ongelmaa ratkaistaan, ohjelmoija päättää termeistä, joilla ongelmaa kuvataan. Tämä termistö, esimerkiksi ohjelmassa käytettävien muuttujien nimet, tulevat kuvaamaan ongelmaa ohjelman parissa tulevaisuudessa työskenteleville.
387+
Programming is a problem-solving tool. Programming involves creating a solution to a given problem, such as automating the control of cars. Whenever a problem is being solved, the developer decides on the terms used to describe the problem. The terminology used in a program, such as the varibale names chosen, describes the problem for anyone working with the program in the future.
326388

327-
Kun sanoitat ratkaistavaa ongelmaa, mieti ongelmaan liittyviä käsitteitä ja niitä kuvaavia sanoja. Jos et keksi sopivia termejä, pohdi ensin mitkä sanat eivät ainakaan kuvaa ongelmaa. Valitse tämän jälkeen jonkinlainen termistö -- voit tyypillisesti onneksi parantaa käyttämääsi termistöä myös jälkikäteen.
389+
<!-- Kun sanoitat ratkaistavaa ongelmaa, mieti ongelmaan liittyviä käsitteitä ja niitä kuvaavia sanoja. Jos et keksi sopivia termejä, pohdi ensin mitkä sanat eivät ainakaan kuvaa ongelmaa. Valitse tämän jälkeen jonkinlainen termistö -- voit tyypillisesti onneksi parantaa käyttämääsi termistöä myös jälkikäteen. -->
390+
391+
As you're wording a problem to be solved, think about concepts related to that problem and words that describe them. If you struggle to come up with relevant terms, start off with thinking about the ones that definitely don't describe the porblem. When you're done, pick specific terminology that you're going to use -- fortunately, you can improve your terminology later on in most cases.
328392

329393
</text-box>
330394

331-
Muuttujan nimeämistä rajoittavat tietyt ehdot.
395+
<!-- Muuttujan nimeämistä rajoittavat tietyt ehdot.
396+
397+
Muuttujan nimessä ei saa olla tiettyjä erikoismerkkejä, kuten huutomerkkejä (!). Välilyönti ei ole sallittu, sillä se erottaa komentojen osat toisistaan. Välilyönti kannattaa korvata [camelCase](http://fi.wikipedia.org/wiki/CamelCase "CamelCase – Wikipedia")<-tyylillä, jolloin nimi `muistuttaneeKamelia`. **Huom!** Muuttujien nimien ensimmäinen kirjain kirjoitetaan aina pienellä: -->
332398

333-
Muuttujan nimessä ei saa olla tiettyjä erikoismerkkejä, kuten huutomerkkejä (!). Välilyönti ei ole sallittu, sillä se erottaa komentojen osat toisistaan. Välilyönti kannattaa korvata [camelCase](http://fi.wikipedia.org/wiki/CamelCase "CamelCase – Wikipedia")<-tyylillä, jolloin nimi `muistuttaneeKamelia`. **Huom!** Muuttujien nimien ensimmäinen kirjain kirjoitetaan aina pienellä:
399+
Variable naming is bound by certain conditions.
334400

401+
Variable names cannot contain certain special symbols, such as exclamation marks (!). Spaces are also not allowed, as they're used to seperate parts of commands. A space should be compensated with [camelCase](http://fi.wikipedia.org/wiki/CamelCase "CamelCase – Wikipedia") <-style, where the name's shape resembles that of a camel's. **Note!** The first letter of a variable's name is always lower-cased: -->
402+
403+
<!--
335404
```java
336405
int camelCaseMuuttuja = 7;
406+
``` -->
407+
408+
```java
409+
int camelCaseVariable = 7;
337410
```
338411

339-
Numeroita voidaan käyttää muuttujan nimessä, kunhan nimi ei ala numerolla. Nimi ei myöskään voi koostua pelkistä numeroista.
340412

413+
414+
<!-- Numeroita voidaan käyttää muuttujan nimessä, kunhan nimi ei ala numerolla. Nimi ei myöskään voi koostua pelkistä numeroista. -->
415+
416+
Numbers can be used within a variable name as long as the name does not begin with a number. Additionally, a name cannot consists of numbers only.
417+
418+
419+
<!--
341420
```java
342421
int 7muuttuja = 4; // Ei sallittu!
343422
int muuttuja7 = 4; // Sallittu, mutta ei kuvaava muuttujan nimi
423+
``` -->
424+
425+
```java
426+
int 7variable = 4; // Not allowed!
427+
int variable7 = 4; // Allowed, but not a descriptive variable name
344428
```
345429

430+
<!-- Muuttujan nimi ei saa olla jo entuudestaan käytössä. Tällaisia nimiä ovat mm. aikaisemmin määritellyt muuttujat ja Javan valmiit komennot, kuten `System.out.print` ja `System.out.println`. -->
346431

347-
Muuttujan nimi ei saa olla jo entuudestaan käytössä. Tällaisia nimiä ovat mm. aikaisemmin määritellyt muuttujat ja Javan valmiit komennot, kuten `System.out.print` ja `System.out.println`.
432+
A variable's name must not already be in use. These include, for instance, variables previously defined in the program and commands that come with Java, such as `System.out.print` ja `System.out.println`. -->
433+
434+
<!-- ```java
435+
int 7muuttuja = 4; // Ei sallittu!
436+
int muuttuja7 = 4; // Sallittu, mutta ei kuvaava muuttujan nimi
437+
```
348438
349439
```java
350440
int camelCase = 2;
351441
int camelCase = 5; // Ei sallittu -- muuttuja camelCase on jo käytössä!
442+
``` -->
443+
444+
```java
445+
int 7variable = 4; // Not Allowed!
446+
int variable7 = 4; // Allowed, but not a descriptive variable name
447+
```
448+
449+
```java
450+
int camelCase = 2;
451+
int camelCase = 5; // Not allowed -- camelCase variable already in use!
352452
```
353453

354-
Muuttujien nimissä ei tule myöskään käyttää ääkkösiä. Voit korvata ääkköset aakkosilla, eli muuta ä -> a ja ö -> o.
454+
<!-- Muuttujien nimissä ei tule myöskään käyttää ääkkösiä. Voit korvata ääkköset aakkosilla, eli muuta ä -> a ja ö -> o. -->
355455

356-
### Sallittuja muuttujien nimiä
456+
Letters containing diacritics should also not be used in variable names. You can replace these letters with their non-diacrtic equivalents, i.e. convert ä -> a and ö -> o. -->
357457

358-
* kuukaudenViimeinenPaiva = 20
458+
459+
<!-- ### Sallittuja muuttujien nimiä -->
460+
<!-- * kuukaudenViimeinenPaiva = 20
359461
* ensimmainenVuosi = 1952
360-
* nimi = "Essi"
462+
* nimi = "Essi" -->
463+
### Permissible variable names
464+
* lastDayOfMonth = 20
465+
* firstYear = 1952
466+
* name = "Essi"
361467

362-
### Virheellisiä muuttujien nimiä
468+
<!-- ### Virheellisiä muuttujien nimiä
363469
364470
* kuukauden viimeinen päivä = 20
365471
* 1paiva = 1952
366472
* varo! = 1910
473+
* 1920 = 1 -->
474+
475+
### Erroneous variable names
476+
477+
* last day of month = 20
478+
* 1day = 1952
479+
* beware! = 1910
367480
* 1920 = 1
368481

369-
## Muuttujan tyyppi kertoo muuttujan mahdollisista arvoista
370482

371-
Muuttujan tyyppi kerrotaan muuttujan esittelyn yhteydessä. Esimerkiksi merkkijonon "teksti" sisältävä merkkijonomuuttuja luodaan lauseella `String merkkijono = "teksti";` ja kokonaisluvun 42 sisältävä kokonaislukumuuttuja luodaan lauseella `int luku = 42;`.
483+
<!-- ## Muuttujan tyyppi kertoo muuttujan mahdollisista arvoista -->
484+
## Variable type informs of variable's possible values
485+
486+
<!-- Muuttujan tyyppi kerrotaan muuttujan esittelyn yhteydessä. Esimerkiksi merkkijonon "teksti" sisältävä merkkijonomuuttuja luodaan lauseella `String merkkijono = "teksti";` ja kokonaisluvun 42 sisältävä kokonaislukumuuttuja luodaan lauseella `int luku = 42;`. -->
487+
488+
A variable's type is stated when its declared. For example, a variable containing the string "text" is created with the statement `String string = "text";`, and an integer having the value 42 is created with the statement `int value = 42;`. -->
372489

373490
Muuttujan tyyppi määrää arvot, joita muuttuja voi saada. `String`-tyyppiset muuttujat saavat arvokseen merkkijonoja, `int`-tyyppiset muuttujat saavat arvokseen kokonaislukuja, `double`-tyyppiset muuttujat saavat arvokseen liukulukuja, ja `boolean`-tyyppiset muuttujat saavat arvokseen totuusarvoja.
374491

0 commit comments

Comments
 (0)