Linuxpalvelimet osa 6. Automaatio ja ohjelmointiympäristöt

a) Kirjoita ja suorita “Hei maailma” kolmella kielellä. Asenna tarvittavat ympäristöt.
b) (vapaaehtoinen) Kirjoita kullakin kielellä yksinkertainen ohjelma, jolla on jokin käyttötarkoitus. Ideoita: hyödynnä kielen vahvuuksia. Ota käyttäjältä syöte, tee jokin lasku ja tulosta vastaus (input-processing-output).

1.Python

a) Asennus: ‘sudo apt-get install python3’. Asennuksen jälkeen ‘python3’ komento käynnistää ohjelman jolla pääsee testaamaan koodia. ‘print(“Hello World!”)’ tulostaa näytölle tekstin “HelloWorld!”.

b) Tein ohjelman joka laskee toisen asteen yhtälön käyttäjän syöttämillä luvuilla.
‘nano yhtalo.py’

#!/usr/bin/python3

import math
print(“ax**2+bx+c=0”)
a = int(input(“Anna a:n arvo “))
b = int(input(“Anna b:n arvo “))
c = int(input(“Anna c:n arvo “))

d = b**2-4*a*c # diskriminantti

if d < 0:
print (“Yhtälöllä ei ole yhtään reaalilukujuurta”)
elif d == 0:
x = (-b+math.sqrt(b**2-4*a*c))/2*a
print (“Yhtälöllä on kaksoisjuuri: X1,2 = “), x
else:
x1 = (-b+math.sqrt((b**2)-(4*(a*c))))/(2*a)
x2 = (-b-math.sqrt((b**2)-(4*(a*c))))/(2*a)
print (“Yhtälöllä on kaksi erisuurta reaalista juurta:X1= “, x1, ” ja X2= “,x2)

yhtälö

Koodin alussa oleva “#!/usr/bin/python3” kertoo että tiedosto ajetaan python3 ohjelmalla. ‘chmod a+rx yhtalo.py’ komento antaa kaikille käyttäjille ‘a’ oikeudet lukea ‘r’ ja suorittaa ‘x’ ohjelman, jonka jälkeen ohjelman voi ajaa komennolla ‘./yhtalo.py’

2.JavaScript

a) Asennus: ‘sudo apt-get install nodejs’. Asennuksen jälkeen ‘nodejs’ komento käynnistää ohjelman jolla pääsee testaamaan koodia. ‘console.log(‘Hello World’);’ tulostaa näytölle tekstin “HelloWorld!”.

b) Tein AJAX ohjelman joka hakee Chuck Norris vitsejä JSON.ina osoitteesta ‘http://api.icndb.com/jokes/random&#8217; ja printtaa sen HTML sivulle.

index.html:

<!DOCTYPE html>
<html>
<head>
<title>Chuck Norris jokes</title>
<meta charset=”utf-8″ />
</head>
<body>

<header>
<h1>Badass facts about Chuck Norris!</h1>
</header>

<button onclick=”reloadPage()”>New fact</button>

function reloadPage() {
location.reload();
}

http://main.js

</body>
</html>

main.js:

var chuck = document.getElementById(‘fact’)

var joke = new XMLHttpRequest();
joke.open(‘GET’, ‘http://api.icndb.com/jokes/random&#8217;);
joke.onload = function() {
var jokeData = JSON.parse(joke.responseText);
renderHTML(jokeData);
};
joke.send();

function renderHTML(data) {
var htmlString = data.value.joke;

chuck.insertAdjacentHTML(‘beforeend’, htmlString);
}

Siirsin tiedostot omalle palvelimelleni. Osoitteesta ‘http://ilkkakatajamaki.me/chuck/&#8217; voi käydä lukemassa.

3.Java

a) Asennus: ‘sudo apt install default-jdk’ (jdk=Java Development Kit). Loin HelloWorld.java nimisen tiedoston jonne kirjoitin

public class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello, World”);
}
}

Tämän jälkeen komennolla ‘javac HelloWorld.java’ jdk-ohjelma muutti .java tiedoston .class tiedostoksi joka ajetaan ‘java HelloWorld’ komennolla. Java tapansa mukaan vaati hieman monimutkaisempia askeleita.

b) Tein yksinkertaisen numeronarvauspelin. Loin Arvaus.java tiedoston jonne kirjoitin:

import java.util.Scanner;

public class Arvaus {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int arvaus;
int lkm = 1;
System.out.print(“Arvaa lukua väliltä 1-100: “);
arvaus = input.nextInt();
while (arvaus < 78 || arvaus > 78) {
lkm = lkm + 1;
if (arvaus > 78) {
System.out.print(“Arvaa pienempää: “);
arvaus = input.nextInt();
} else if (arvaus < 78) {
System.out.print(“Arvaa suurempaa: “);
arvaus = input.nextInt();
}
}
System.out.println(“Arvasit oikein. Arvauksia oli ” + lkm);
}
}

Muutin tiedoston ajettavaan muotoon ‘javac Arvaus.java’.
arvaus.png

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s