Model Examen SO 2012


# Enunt prima problema:
#
# a) Cum se numeste comanda folosita pentru a selecta portiuni din liniile din fisierele date ca
# parametru si care este optiunea ce specifica caracterele de selectat.
#
# b) Sa se scrie linia de comanda pentru a selecta primele 10 caractere ale fiecarei linii din fisierul
# /etc/passwd.

Rezolvare:

a) cut, -c
b) cut -c 1-10 /etc/passwd

# Enunt a doua problema:
#
# Sa se scrie comanda inlantuita care afiseaza numele de cont al utilizatorului care are asociat
# cel mai mic UID, din fisierul /etc/passwd.

Rezolvare:

sort -n -t: -k3 -u /etc/passwd | cut -d: -f1 | head -n 1

# Enunt a treia problema:
#
# Sa se scrie un script bash care primeste o valoare n ca parametru la
# linia de comanda si calculeaza in mod recursiv termenul x[n] al sirului
# x[0..m], definit prin:
# x[0] = 1, x[1] = 2, x[m] = 3 * x[m-1] + 2 * x[m-2] + m, pentru orice m>=2.
#
# La final se va afisa valoarea termenului cerut, x[n].
#
# Se vor trata toate cazurile de exceptie ce pot apare.

Rezolvare(singura problema apare la 0… acum da eroare daca ii da 0, pentru a evita cazul in care se adauga ca input altceva inafara de un numar sau un nr negativ…n-am mai avut timp sa-mi dau seama cum sa corectez)

if(($# == 0)); then
echo “Nu ai dat niciun parametru, introdu n:”
read nr;
else
nr=$1
fi
if(($nr =0.”;
else
{
calculate()
{
if(( $1 == 0 )); then
echo “1”
elif(( $1 == 1 )); then
echo “2”
elif(( $1 >= 1 )); then
var1=$( calculate $(($1-1)) )
var2=$( calculate $(( $1-2)) )
var3=$(( (3*var1)+(2*var2)+$1 ))
echo $var3
fi
}
echo “n=$nr, x[n] = $( calculate $nr)”
}
fi

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s

%d bloggers like this: