Exerciții diverse
Toate exercițiile de mai jos pot fi rezolvate în fișiere separate sau într-o singură foaie Jupyter.
De asemenea, datele se pot prelua de la tastatură sau dintr-un fișier sau, unde este cazul, se pot genera aleatoriu.
Calcule și elemente de bază Python
Se dă un număr de maximum 10 cifre. Să se obțină numărul format prin eliminarea cifrelor de pe poziții impare. Exemplu:
input = 12345678, output = 2468
.Se dă un număr de maximum 10 cifre. Să se obțină răsturnatul lui. Exemplu:
input = 12799874, output = 47899721
.Se dă un număr de maximum 10 cifre. Să se verifice dacă este divizibil cu suma divizorilor săi. Exemplu:
input = 100, suma divizorilor = 1 + 2 + 4 + 5 + 10 + 20 + 25 + 50 = 117, 100 nu este divizibil cu 117
.Se dau două numere de maximum 5 cifre fiecare. Să se obțină numărul obținut prin întrepătrunderea cifrelor lor. Exemplu:
a = 12345, b = 24680, output = 1224364850
.Se citește de la tastatură un număr. Dacă acesta este par, se înjumătățește. Dacă este impar, se înmulțește cu 3 și se adună 1. Procedura se repetă pînă se ajunge la 1. Afișați acești pași. Exemplu:
input = 20, output = 20 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1.
Se dau două numere naturale. Să se afișeze lista multiplilor primului număr, strict mai mici decît cel de-al doilea. Exemplu:
a = 20, b = 200, output = 20 40 60 80 100 120 140 160 180
.Se dă un număr de maximum 10 cifre. Să se afișeze dacă prima cifră a numărului este un divizor al ultimei cifre. Exemplu:
input = 343489889, "da", deoarece 3 divide 9
.Se dă un număr
x
de maximum 10 cifre și un indicen
. Să afișeze an
-a cifră de la stînga a luix
. Exemplu:x = 128907478, n = 3, output = 8
.Se dă un număr
x
de maximum 10 cifre și un indicen
. Să se afișeze numărul format din an
-a cifră de la stînga și an
-a cifră de la dreapta ale luix
, în această ordine. Exemplu:x = 127987987, n = 3, output = 79
.Se dă un număr
x
de maximum 10 cifre. Să se afișeze toți divizorii săi primi. Exemplu:x = 100, output = 2, 5
.Se dă un număr
x
de maximum 10 cifre. Să se afișeze toți divizorii săi primi, cu tot cu puterea la care apar în descompunerea numărului. Exemplu:x = 100, output = (2, 2) (5, 2)
, pentru că100 = 2^2 * 5^2
.Se dă un număr
n
de la tastatură. Să se afișeze divizorii lui și numărul lor. Exemplu:n = 20
, se afișează1, 2, 4, 5, 10, 20
și6 divizori
.Se dă un număr
n
de la tastatură. Să se afișeze dacă este pătrat perfect. Exemplu:n = 169
, se afișeazăda
.Se dă un număr
n
de la tastatură. Să se afișeze dacă este prim (nu are alți divizori în afară de 1 și el însuși). Exemplu:n = 13
, se afișeazăda
,n = 20
, se afișeazănu
.Se dau două numere
baza
șiexponent
de la tastatură. Să se afișezebaza
la putereaexponent
. Exemplu:baza = 3
,exponent = 4
, se afișează81
.Se dau două numere
n
șip
. Să se afișeze cel mai mare multiplu al luin
, mai mic sau egal cup
. Exemplu:n = 3, p = 20
, se afișează18
.Se dau două numere de la tastatură. Să se afișeze divizorii lor comuni. Exemplu:
n = 20, m = 12
, se afișează1, 2, 4
.Se dau două numere de la tastatură. Să se afișeze divizorii primi ai primului număr, care nu sînt și divizori ai celui de-al doilea număr. Exemplu:
n = 28, m = 30
, se afișează7
.Se dă un număr
n
de la tastatură și o listă den
numere naturale. Să se afișeze numărul din listă care are cei mai mulți divizori primi. Exemplu:n = 5, [10, 20, 30, 40, 50]
, se afișează30
.Se dă un număr
n
de la tastatură. Să se afișeze toate numerele prime mai mici sau egale cun
. Exemplu:n = 20
, se afișează2, 3, 5, 7, 11, 13, 17, 19
.Se dă un număr
n
de la tastatură. Să se afișeze suma divizorilor săi, precum și lista divizorilor acestei sume. Exemplu:n = 20
, se afișeazăSuma divizorilor: 1 + 2 + 4 + 5 + 10 + 20 = 42
și[1, 2, 3, 6, 7, 14, 21, 42]
.Se dă un număr
n
de la tastatură, o listă den
numere naturale și un număr primp
. Să se afișeze care elemente ale listei sînt divizibile cup
. Atenție: Dacă numărulp
introdus de la tastatură nu este prim, se afișează un mesaj și programul se închide. Exemplu:n = 5, lista = [10, 20, 30, 40, 50], p = 3
. Se afișează30
. Dacăn = 5, lista = [10, 20, 30, 40, 50], p = 6
, se afișeazăEROARE: reîncercați cu un număr prim!
.Se dă un număr
n
de la tastatură și un numărp
, prim. Să se afișeze dacă suma cifrelor luin
este divizibilă cup
. Ca în exemplul anterior, dacăp
nu este prim, se afișeazăEROARE
. Exemplu:n = 1222, p = 7
, se afișeazăDA
. Dacăn = 1234442, p = 10
, se afișeazăEROARE: Reîncercați cu un număr prim!
.Se dă un număr
n
de la tastatură. Să se afișeze cel mai mare divizor prim al său. Exemplu:n = 100
, se afișează5
.Se dă un număr
n
de la tastatură și o listă den
numere naturale. Să se afișeze lista cu numărul divizorilor lor. Exemplu:n = 5, lista = [10, 20, 30, 40, 50]
, se afișează[4, 6, 7, 8, 6]
.Se dau două numere
n
șim
de la tastatură. Să se afișeze cîte numere prime există întren
șim
, precum și lista acestora. Exemplu:n = 10, m = 20
, se afișează[11, 13, 17, 19]
și4 numere prime
.
Statistică și CSV
Alegeți două numere aleatorii folosind
a = random.randint(100,1000)
șib = random.randint(10,100)
. Apoi generațib
liste cu cîtea
elemente. Scrieți listele drept linii într-un fișier CSV (folosindcsv.writer
).În continuarea exercițiului 27, generați un număr aleator de forma
c = random.randint(0, b)
. Calculați diverse elemente statistice pentru elementele linieic
și coloaneic
(dacă linia respectivă nu există, considerațic = c % a
):media;
media ponderată (generînd aleatoriu ponderi între 0 și 1 folosind
random.random()
);mediana;
modul;
abaterea medie pătratică.
Generați aleatoriu 100 de liste cu 6 numere naturale între 1 și 49, simulînd 100 de bilete la loteria 6/49. Scrieți "biletele" într-un fișier CSV. Generați aleatoriu o extragere (6 numere naturale între 1 și 49) și scrieți care bilet(e) a(u) ghicit cele mai multe numere și care sînt acestea.
Scrieți (de mînă) un fișier CSV care să reprezinte notele unor elevi. Includeți cel puțin 10 elevi, fiecare avînd cel puțin 5 note.
Calculați media (aritmetică a) fiecărui elev și media clasei.
Refaceți exercițiul dacă ultima notă reprezintă teza, care are o pondere de 3 ori mai mare decît o notă obișnuită.
Grafice discrete
În continuarea exercițiului 30, reprezentați grafic:
folosind histograme sau bar chart notele din clasă (OX = nota, OY = de cîte ori a fost obținută).
BONUS1: Reprezentați cu o linie orizontală, peste histogramă, media clasei;
BONUS2: Schimbați setările default de culoare și opacitate. Exemplu: barele din histogramă sau bar chart să fie verzi, opacitate 0.6, orizontala să fie roșie, opacitate 1.
folosind pie chart, distribuția notelor din clasă, pe intervale (0-4, 5-7, 7-9, 10) (cîte note între 0-4 s-au obținut, cîte note între 5-7 etc.).
BONUS1: "Explodați" graficul pentru procentul cel mai mare.
BONUS2: Schimbați setările default de culoare. Exemplu: "feliile" graficului să fie toate nuanțe de albastru.
BONUS: Schimbați setările default de aspect. Exemplu: punctele din scatter plot să fie romburi mov, de opacitate 0.7, iar distribuția gaussiană să fie trasată cu o linie oranj, de opacitate 1.
Last updated