FAQ k praktickym testom Flashcards

1
Q
  1. Preco sa mi vysledky ulohy pri pouziti grep -w slovo a grep \ odlisuju?
A

-w a \ v dostupnej verzii grep na ose pracuju rozne pri znaku ‘’,
pricom -w povazuje ‘
’ za sucast slova a \ ho za sucast slova nepovazuje.
Odporucany pristup je potom pouzivanie v ulohach \, nakolko prepinac
-w vlastne urobi zo zadanej vzorky novu vzorku a tak moze byt jeho
pouzitie menej transparentne. Prepinac -w sa hodi skor pre pouzitie na
prikazovom riadku, ked to chcem napisat rychlo a usetrit si pisanie
zlozitejsej vzorky.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q
  1. Co je to slovo?
A

V kazdej ulohe, kde sa s tymto pojmom pracuje je specialne napisane,
ako je pojem slovo chapany. Budto je chapany, ako suvisla postupnost
znakov, pripadne, ako postupnost znakov oddelena viacerymi medzerami,
v ulohe je uz potom konkretne napisane, ze ako sa pojem slovo chape.
Avsak, ak v ulohe nie je explicitne napisane, ako sa slovo chape, treba
sa riadit podla nasledovnej vety z hlavicky zadania:

“Pokial nie je v konkretnom zadani presne definovane co je slovo a neviete
alebo si nie ste isti co je slovo, prenechajte rozhodnutie o tom co je
slovo na vhodny program.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q
  1. Testovaci skript mi hlasi chybove hlasenia, ktorym nerozumiem.
A

Niekedy, najma v poslednych minutach, ked vsetci studenti na stroji odovzdavaju
svoje riesenia, moze dojst k pretazeniu stroja. Ihned zavolaj dozor a oznam
mu tuto skutocnost. Je mozne testovaci pokus pridat (kedze na teste mate
len obmedzeny pocet pouziti programu odovzdaj).

Toto plati pre oba testovacie skripty: aj odovzdaj (z testu 1 a 2), aj otestuj
(z testu 3 a 4). Otestuj navyse pri pretazeni stroja a vypisani chybovych
hlaseni moze niektore ulohy chybne vyhodnotit, ako spravne! Na to velky pozor,
lebo potom dochadza k nedorozumeniam, ked si student mysli, ze ulohu vyriesil
spravne, avsak skutocnost je ina.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q
  1. Dostal som hlasku “No more processes”, co teraz?
A

Osa ma na kazdeho usera len limitovany pocet procesov z bezpecnostneho hladiska.
Je stanoveny na istu konstantu, ktora nie je mala, avsak pri robeni istej
chyby pri rieseni uloh sa k tomuto cislu da dopracovat. Ta chyba je, ze
miesto ctrl+c pre prerusenie beziaceho programu stlacate klavesovu
skratku ctrl+z, ktora procesy uspava na pozadi. Co castokrat nie je zla
vec, ak viete kedy to spravne pouzit. Avsak ak si takto “odkladate” vsetky
procesy, k problemu dojde - miniete si vsetky volne procesy.

Rovnako si volne procesy mozete minut na testoch 3. a 4., kde mozete vytvorit
tzv. fork() v nekonecnom cykle, pripadne ked nepouzivate systemove volanie wait().

Ako ho riesit?
Samozrejme najlepsie riesenie je nestlacat ctrl+z, avsak ak sa to uz
nahodou stane, tak:
Pomocou programu ps si najdete konkretne PID procesov, ktore nepotrebujete
a tie nasledne ukoncite pomocou programu kill.

ps aux | grep pilarcik
kill 1234

Pripadne este jednoduhsie program jobs a nasledne kill %, pricom za znakom ‘%’
nasleduje cislo jobu.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q
  1. Co to znamena “v riadku”, resp. “na riadku”?
A

Tato otazka zaznela zoparkrat na teste. V principe “v riadku” je to iste, co
“na riadku” a znamena to, ze sa konkretne v jednej ulohe pyta na znaky V riadku.
Tzn. ani za nim, ani pred nim, ale len V riadku. Cize napriklad oddelovac je uz
ZA riadkom, resp. medzi riadkami.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q
  1. Co to znamena “z pohladu shellu”?
A

Z pohladu shellu znamena, ze sa na dany objekt mate pozerat z pohladu shellu,
nie z pohladu nejakeho ineho externeho programu. Zrejme pouzit nejake jeho
prostriedky a pod. :)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q
  1. Co presne znamenaju niektore obmedzenia pri ulohach a preco ich mame?
A

“Pri rieseni ulohy nesmiete pouzit program awk.”
Awk je samostatny jazyk urceny najma na spracovanie textu. Naraba sa s nim
velmi jednoducho a castokrat nam ulahcuje zivot. Avsak na predmete OS sa
uci shell a nie awk. Vsetko co sa da napisat v awk sa urcite da napisat aj v shelli.

“Ulohu rieste s pouzitim riadiacich konstrukcii shell-u.”

Riadiace konstrukcie shellu su: if, foreach, while, switch, goto… Ulohu JE
ODPORUCANE riesit pomocou nich - nie je tam napisane, ani slovo MUSITE, ani
slovo LEN). Cize je to len odporucanie.

“Ulohu rieste len s pouzitim prostriedkov shell-u.”

Sem patria premenne, polia, operatory presmerovania ,», rura | a aj
riadiace konstrukcie - if, foreach… Toto uz nie je len odporucanie, ale
konkretne obmedzenie (slovko LEN). Dovod tohto obmedzenia spociva v tom, ze
v danej ulohe sa ma overit, ci studenti tieto prostriedky a riadiace konstrukcie
poznaju - kedze to je cielom jednej casti cviceni. T.j. ci vedia nielen rurovat,
ale aj ostatne veci.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q
  1. Co znamenaju jednotlive vysledky hodnotenia uloh programu odovzdaj?
A

neriesene - za slovo VYSLEDOK ste neuviedli vas vysledok. Nezabudajte, ze
za vasim vysledkom (konkretnym, nie za slovom VYSLEDOK) nesmu uz byt
ziadne znaky! (Ani medzery). Medzi slovom VYSLEDOK a vasim vysledkom ma byt
jedna medzera. “ZA slovo VYSLEDOK” znamena za neho, nie nad neho, ani pod neho,
ani pred neho, ale ZA neho. Priklad:

VYSLEDOK 53

bez riesenia - medzi slova RIESENIE_ZACIATOK a RIESENIE_KONIEC ste neuviedli
prikazy (kod), ktorymi ste ulohu riesili

nespravne - vysledok vasho riesenia je nespravny

spravne - vysledok vasho riesenia je spravny, avsak kod bude este neskor
kontrolovany a ak sa zisti, ze nedava vysledok, tak uloha bude posudena, ako
nespravna

neakceptovane - riesenie nemoze byt akceptovane, pretoze ste zrejme pouzili
niektore z obmedzeni, ktore sa na tuto ulohu vztahuju, alebo ste zneuzili prikaz “cat”.
Pri rieseni uloh nesmiete pouzit prikaz cat bez prepinacov alebo
s prepinacmi, ktore nemenia jeho vystup. Tento zakaz sa vztahuje na take
pripady, ked pouzitie prikazu cat nie je potrebne a je mozne namiesto neho
pouzit jednoduche prostriedky shellu (napr. presmerovanie). V ostatnych
pripadoch je mozne prikaz cat vhodne pouzit. Toto obmedzenie plati aj pre ostatne
programy, ako more, less.

poskodene - zrejme ste zasiahli do klucovych slov (pisane CAPS LOCKOM) vo
vasom zadani podla ktorych odovzdavaci skript nedokaze vase zadanie ohodnotit.
Je mozne, ze ste nieco zmazali, pozmenili… Takisto nemozte zasahovat do
hlavicky zadania. Davat si na to pozor!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q
  1. Mam problem s editorom!
A

Ani nie tak otazka, ako skor moja dobra rada k 1. testu.
Casto, najma na prvych testoch sa stava, ze niektori studenti ani len nevedia
pouzivat editor na pisanie, resp. nedokazu v nom pouzivat niektore jeho
vymozenosti,ktore by mu mohli ulahcit zivot. Obsluha editora patri k
uplne elementarnym cinnostiam a jeho 100% ovladanie je prvy krok, bez
ktoreho sa nepohnete. Preto nenechajte nic na nahodu a vsetky “ficury” vasho
editoru majte dobre vychytane a naucte sa vhodne reagovat na jeho spravanie,
pripadne chybove hlasky.

K uzitocnym ficuram vim patri napriklad:

:set numbers - zapnutie cislovania riadkov - rychlo sa tak hlada chyba, ked kompilator
zahlasi cislo riadku
:set nonumbers - vypne riadkovanie
:syntax on/off - zapne/vypne zvyraznovanie syntax
dd - mazanie celeho riadku - zaroven tento riadok skopiruje do “clipboardu” a je
ho nasledne mozne pastnut pomocou ‘p’
yy - kopirovanie celeho riadku, pastnutie nasledne pomocou ‘p’
v, resp. shift+v - oznacovanie textu, jeho nasledne skopirovanie potom
pomocou ‘y’ a nasledne pastnutie pomocou ‘p’
= - formatovanie textu. Po pastnuti textu z jednej putty do druhej, je text cely
rozhadzany. Jednoduchym riesenim je ho cely oznacit (pomocou v - visual line +
kombinacia prikazov na pohyb kurzoru) a nasledne stlacit klaves - ‘=’

+ kopec inych, odporucam: google -> hladat obrazky -> “vim cheatsheet”

+ nezabudnite mat nastavenu premennu prostredia TERM na hodnotu: xterm-color

[pilarcik@osa:~$] echo $TERM
xterm-color
[pilarcik@osa:~$]

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q
  1. Aka je postupnost zadavania prikazov suvisiacich so zadavanim/testovanim a
    odovzdavanim?
A
  1. a 2. test:
    zadaj, …, odovzdaj(max 5 krat)
  2. a 4. test:
    zadaj, …, otestuj, …, odovzdaj

Ak ste uz vase riesenie odovzdali a chcete odovzdat este novsiu verziu, tu
staru musite zmazat pomocou “odovzdaj -d”. Este raz zdoraznujem, ze “odovzdaj -d”
sa pouziva len na 3. a 4. teste. Btw. a nikdy nie je na skodu si pozriet
help pre programy, s ktorymi pracujete - “odovzdaj -h”.

Vsimnite si, ze jedine obmedzenie je pri prvom a druhom teste. V ostatnych
pripadoch ste obmedzeni len vypoctovou silou osy.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q
  1. Aku strategiu mam zvolit na odovzdavanie a testovanie?
A
  1. a 2. test:
    Tu je dobre riesit vsetky najjednoduhsie ulohy najprv. Hlavne zbytocne nestracat
    cas na ulohach, v ktorych sa zacnete motat. Po vyrieseni polovice uloh, alebo
    v polovici testu odporucam prvy krat odovzdat, aby ste vedeli na com ste. Od
    prveho odovzdaj sa potom odvija dalsi postup. Budto sa vratite k niektorym
    predoslym, ktore vam odovzdaj vyhodnotil, ako nepsravne, alebo pokracujete dalej.
    Samozrejme vzdy plati pravidlo riesenia od najlahsej po najtazsiu. Myslite na to,
    ku koncu sa doba na zbehnutie skriptu odovzdaj zvysuje, nakolko vsetci studenti si
    nechavaju odovzdaj na zaver testu. Odporucam sa tomuto pokial mozno vyhnut.
  2. a 4. test:
    Tu mozte testovat nekonecno krat. Avsak berte do uvahy narocnost jednotlivych
    zadani. Ich vyhodnotenie spravidla trva dlhsie, ako pri 1. a 2. teste. Tu odporucam
    testovat NIJAK INAK, ako:

otestuj “uloha x”, pricom x je cislo ulohy

V pripade, ak zadate nespravne cislo, resp. cislo neexistujucej ulohy, otestuj zbehne
bez ziadneho vystupu. Toto prirodzene neznamena, ze uloha je spravna. Pozor na to.

Ku koncu samozrejme cakanie na vyhodnotenie otestuj trva velmi dlho a opat odporucam
sa tomuto vyhnut a otestovat niektore ulohy v predstihu. Na zaver testu je potrebne
vase riesenie odovzdat. Odovzdaj v tomto pripade sluzi len na odovzdanie riesenia,
nie na vyhodnotenie vysledkov. Na posudenie spravnosti uloh na 3. a 4. teste sluzi
spominany otestuj!

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q
  1. Preco mi niektore ulohy s wtmp subormi neboli uznane?
A

Tieto ulohy su zamerane na znalost systemovych programov. Ak ulohu riesite zbytocnou
“obklukou” alebo nejakym sposobom, ktory na to nie je priamo vhodny, uloha bude posudena,
ako neakceptovana. Vo vseobecnosti plati, ze na riesneie kazdej ulohy treba pouzit program,
ktory je na to najviac vhodny, t.j. najpriamociarejsie ulohu riesit a preukazat ze tento
program poznate.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q
  1. Co presne znamena tento text: “Pokial nie je v konkretnom zadani presne
    definovane co je slovo a neviete alebo si nie ste isti co je slovo,
    prenechajte rozhodnutie o tom co je slovo na vhodny program.” ?
A

Tento text nehovori o tom co presne treba pouzit. Naopak, zavisi to len
od zadania ulohy.

Napriklad ak treba spocitat slova v subore, pouzijeme asi ‘wc’ s jeho
chapanim slova. Ak treba vyhladavat nejake slova, pouzijeme asi ‘grep’
a jeho chapanie slova. Ak mame pracovat so slovami, ktore su v premennej
shell-u, pouzijeme shell a jeho chapanie slova.

Treba sa teda zamerat viac na to, ktory program je vhodny pre riesenie
konkretnej ulohy, nez na to, coho je slovo postupnost alebo cim su slova
oddelene.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly