Sunteți pe pagina 1din 5

Refacere colocviu #1

Avaliable from: Wednesday, 27 May 2020, 11:00 AM


Due date: Wednesday, 27 May 2020, 1:00 PM
Maximum number of files: 5
Type of work: Individual work
Se citesc de la tastatură un număr necunoscut de mare de puncte într-un spațiu cartezian de
coordonate 2D. Abscisa și ordonata sunt separate printr-o virgulă, punctele sunt separate
între ele prin unul sau mai multe whitespaces. Coordonatele sunt valori floating point, dublă
precizie. Toate calculele trebuie realizate în virgulă mobilă, dublă precizie.

Exemplu:

1.0,1.0 -1.0,1.0 2.00,-1.0

Cerințe:

1. (7p) Să se afișeze cu 4 zecimale distanța medie de la origine la puncte. Pentru


punctele de mai sus, această distanță este:

1.6882

2. (9p) Să se sorteze lista de puncte crescător în funcție de distanța până la origine și să


se afișeze aceste distanțe cu 4 zecimale pe o linie, separate prin spațiu.

1.4142 1.4142 2.2361

3. (7p) Să se calculeze aria cercului cu centrul in origine care conține toate punctele și
să se afișeze cu patru zecimale (considerați valoarea lui PI ca fiind 3.1415):

15.7075

4. (7p) Convertiți toate coordonatele în numere întregi, apoi determinați și afișați câte


ordonate (coordonate y) distincte există ocupate de puncte și care este numărul
maxim de puncte de pe o singură ordonată.

2 2
Explicație: Sunt două ordonate distincte: 1 și -1. Cele mai multe puncte (două) se
află pe ordonata 1.

Observație:

Dacă una din cerințe nu este rezolvată, se va lăsa în locul textului de afișat o linie goală. Prin
urmare, indiferent câte probleme au fost rezolvate, ieșirea va avea exact 4 linii. Toate cele
patru linii se vor termina cu un caracter newline.

Deci ieșirea corespunzătoare pentru rezolvarea exercițiilor 2 și 4 este:

1.4142 1.4142 2.2361

2 2

Refacere colocviu #2
Avaliable from: Wednesday, 3 June 2020, 11:00 AM
Due date: Wednesday, 3 June 2020, 1:00 PM
Maximum number of files: 5
Type of work: Individual work

Vi s-a solicitat ajutorul la decriptarea unor coduri secrete, iar până la descoperirea cheii
încercați diferite metode. 

Formatul inputului: pe prima linie este numărul de stringuri care urmează, apoi stringurile,
fiecare pe câte o linie, iar la final un caracter care indică subpunctul. Dacă subpunctul este
‘b’, atunci mai urmează un număr pe următoarea linie. Toate stringurile vor avea aceeași
lungime și vor fi formate din litere mici, fără pauze. 

a. (6p)  Prima dată încercați să ordonați șirurile. Ordonați caracterele din fiecare string, iar
apoi stringurile ordonate le sortați lexicografic. 

INPUT:

5
viguo
lkjhg
tyujb
asqwe
cvbfd
a
OUTPUT:

aeqsw
bcdfv
bjtuy
ghjkl
giouv

b. (6p)  Acum, vă gândiți că poate nu tot stringul este important, ci doar prefixul lui.
Încercați să vedeți frecvența fiecărui prefix de k caractere. Dacă k depă șește lungimea
stringului, folosiți tot stringul. Afișați sortat alfabetic după prefix. 

INPUT:

6
asdfew
qewqwe
jkiutg
jkinmt
qewrty
zxcvb
b
2

OUTPUT:

as 1
jk 2
qe 2
zx 1

EXPLICAŢIE: Vom considera doar prefixele de 2 caractere: as, qe (apare de 2 ori), jk (și el de


2 ori) și  zx. 

c. (6p)  Deoarece nici așa nu merge, încercați să folosiți un cod clasic: codul Caesar cu cheia
13. El presupune că fiecare caracter e “shiftat circular” la dreapta cu 13 caractere. Astfel, ‘a’
devine ‘n’, ‘b’ este ‘o’, ‘z’ este ‘m etc. Afișați stringurile după aplicarea codului pe fiecare
literă a lor. 

INPUT:

5
abc
bcd
ghj
ahb
xyz
c

OUTPUT:

nop
opq
tuw
nuo
klm

d. (6p) Poate că ordinea în care întâlnim literele ne va da mai multe informații. Afișați o


singură data literele prezente în tot textul (toate stringurile), în ordinea inversă a apariției
lor. 

INPUT:

3
asd
fad
jkk
d

OUTPUT:

k j f d s a

EXPLICAŢIE: Literele pe care le întâlnim: a, s, d, f, a din nou și nu îl băgam în seamă, d din


nou, j, k, k din nou. Le afișăm invers, fără să ne pese de cele văzute pentru a doua oară. 
  

e. (6p) O ultimă încercare de a descifra codul: poate că cel care a scris textul nu a vrut să îl
cripteze, ci mesajul s-a deteriorat pe canalul de comunicare. Pentru a testa ipoteza, vreți să
vedeți pentru fiecare poziție din string care e caracterul care apare de cele mai multe ori pe
acea poziție. Dacă sunt mai multe cu aceeași frecvență, îl păstrați pe primul. 

INPUT:

4
mistul
aidteh
mhjtr
zxcjer
e

OUTPUT:

mister

EXPLICAŢIE: Pe prima poziție, m apare de 2 ori. Pe a doua, i  de 2 ori. Pe a treia, nu există


niciun caracter predominant, așa că îl alegem pe primul, adică s. Pe a patra poziție,
avem t de două ori și  j de două ori, dar t e văzul primul, așa că rămânem cu el, pe a cincea
poziție avem e de două ori și pe ultima  r de două ori.