1. praktikum - Keskkond ja muutujate tõlgendamine
Kodutööd peavad töötama dijkstra nimelises serveris, seega tuleks sinna korra vähemasti sisse saada.
Muidu võib laboris kasutada ka praktikumiklassi arvuteid.
Dijkstra
NB! Dijkstrasse sisselogimiseks on tarvis edastada oma kasutajanimi õppejõule: iga klassi konto omanik serverisse sisse ei pääse.
TTÜ sisevõrgust ja väljastpoolt:
dijkstra.cs.ttu.ee
Windowsis ja kodus võite näiteks Putty või SSH Secure Shell nimelist programmi kasutada)
Ligipääs TTÜ parooli ja kasutajanimega üle ssh
ssh kasutajanimi@dijkstra.cs.ttu.ee
Info
Käsurea-tekstiredaktoriks sobib näiteks vim: kes ei soovi sellesse sisse elada, võib provida ka joe või pico nimelisi. (pico-ga on osadel praegu miskipärast probleemid)
Linuxi arvutis võite dijkstra ühendada ka oma failisüsteemiga (ja lisage sellele Bookmark, et teinekord trükivaeva vähem oleks), selleks tuleb failibrauseris kirjutada käsureale
sftp://dijkstra.cs.ttu.ee/home/kasutajanimi
Tutvuge praktikumiülesannetega.
1. Hello, World
Kompileerimiskatse. Kirjutage programm "Hello, World", salvestage nimega hello.c . Kompileerige see käsuga
gcc hello.c -o hello
-o argument ütleb gcc-le, mis nimega soovid väljundit (vaikimisi pakutakse sulle faili a.out).
- Vihje: programmiteksti leiate võrguavarustest
- Vihje2: programmi käivitamiseks kataloogist, kus te viibite kirjutage ./hello
2. Mälu tõlgendamine
Järgmise praktikumi eelharjutusena on mõistlik järele proovida mälu tõlgendamise viisid. Nendega tutvumiseks kirjutage programm, milles on järgmine konstant ning täiendage seda vastavalt ülesandele:
int x = 0x74736574;
Ülesanne:
- Trükkige x funktsiooni printf abil välja võimalikult paljudes tõlgendustes (täisarvuna, ujukomaarvuna, märgita täisarvuna, tähemärgina.
- Trükkige välja muutuja x mäluaadress (muutuja saab mäluaadressiks teisendada & operaatori abil ning mäluaadressi näitamiseks sobib printf stringis %p tähis.
- Kirjuta välja muutuja x kõik 4 baiti tähemärkidena tõlgendatult.