Linuxpalvelin kotitehtävät pt.6

Tehtävänannot täältä http://terokarvinen.com/2017/aikataulu-%e2%80%93-linux-palvelimet-ict4tn021-7-ti-ja-6-to-alkukevat-2018-5-op

h6

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).”


a) “hello world” kolmella valitsemallaan kielellä, meikäläisellä käytössä Java/Python/C

Lähdetään Javasta liikkeelle :
Asennus komennolla “sudo apt-get -y install default-jdk” (tähän pakettiin sisältyy myös metodi kääntää koodi ohjelmaksi, joten siksi default. Se on myös paras valinta, jos ei ole täysin varma mitä kaikke tarvitsee)
Java-tiedoston luonti toimii “nano tiedostonimi.java” komennolla aivan yhtä hyvin. Tarkkuutta tiedoston nimeämisen osalta, sillä sen täytyy olla .java muotoa.

javahelloworldkoodi
Kun vastaavanlainen setti on kirjoitettu, niin Ctrl+X , Y ja Enter jotta päästään muokkauksesta pois ja tallenetaan tiedosto.
Seuraavaksi kompiloidaan koodi käyttämällä “javac” komentoa, eli annetaan komento “javac tiedostonimi.java”, tässä tapauksessa “javac helloworld.java”. Tässä siis “käännetään” koodi ajettavaksi ohjelmaksi lähdekoodista.
Ei erroreita eikä muuta feedbackia kääntökomennon jälkeen, joten olettakaamme että se toimi. Testiin! “java helloworld” komentoa käyttäen :
javahelloworldtoimii
Siellähän se! (venäjäksi <3)

 

Tämäkään ei mennyt ihan ykkösellä, sillä koodista löytyi muutama kirjoitusvirhe…. hups!

Javasorsat :
https://introcs.cs.princeton.edu/java/11hello/HelloWorld.java.html
http://ubuntuhandbook.org/index.php/2016/01/how-to-install-the-latest-eclipse-in-ubuntu-16-04-15-10/


 

Kärmeksen vuoro :
Python on ymmärtääkseni vakiona tässä versiossa Xubuntusta, ja nopea tsekkaus komennolla “$ whereis python” kertookin että kyllä, se on koneella asennettuna.
Mikäli se ei ole, niin sen saa hommattua komennolla “sudo apt-get -y install python3”.
Luodaan tiedosto komennolla “nano helloworld.py”
Pythonissa, tähän tehtävään, riittää pelkkä “print (“Hello World!”)”, esimerkkinä oma koodi

pythonhelloworldcode

, ja taas Ctrl+X, Y ja Enter.
HUOM! Ohjelma ajetaan “python3 helloworld.py”, ei “python helloworld.py”! Tämä sen vuoksi että python3 on se asennettu versio ja sillä tämä kuuluu ajaa.
Testi!

pythonhelloworldtoimii.png
toimii!

Pythoniin en tarvinnut ohjeita, sillä sen kanssa on tullut nuorena kikkailtua jonkin verran.

I C treeeessss~~~ :
Mielestäni näistä hankalin näistä lähinnä koodin vuoksi. GCC, joka on eräs työkalu C-ohjelmointikielen tuottamiseen, on Pythonin lailla valmiiksi tässä versiossa Xubuntusta, joten erillistä asennusta ei tarvitse.
Kuitenkin asennus käy samalla tavalla : “sudo apt-get install gcc”. Jos tällä ei tärppää, niin on hyvä kokeilla myös “sudo apt-get install build-essential”.
Samasta liikkeelle kuin muissakin, tiedoston luonti –> “nano helloworld.c” tänne koodi jonka tulee näyttää kutakuinkin tältä

c_code_firstround
Jälleen kompilointi, komento “gcc helloworld.c -o helloworld” muuntaa siitä ajettavan tiedoston.
Ja sitten testi! “$ ./helloworld”

c_code_hello_toimii

Toimii!

Kääntämisen jälkeen sain jonkin errorin,
“helloworld.c:2:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
main() {
^”

Tämä ei siis estä ohjelman ajamista, ja oletettavasti tuosta pääsee eroon lisäämällä koodiin , kuten lähdelinkissäkin on laitettu, “int” ja “return 0;” oikeille paikoilleen (edeltävä includen jälkeen ja jälkimmäinen printf alle)
Käydään siis muokkaamassa tuota hiukan!

c_code_updated_toimii
Mikäli varoitusta ei tule, ohjelma kompiloitui ns. puhtaasti.

 

C-sorsa :
http://www.network-theory.co.uk/docs/gccintro/gccintro_9.html

 

~Alexi

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