0% au considerat acest document util (0 voturi)
173 vizualizări7 pagini

GH Pavel - Lab3

Documentul prezintă rezolvarea a 7 probleme de programare și elaborarea unei interfețe grafice pentru un joc. Problemele includ operații cu fișiere, liste, dicționare și anagrame. De asemenea, este elaborat un program Python ce simulează jocul Misticul 8 Bal.

Încărcat de

Vladislav Cigolea
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOC, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
173 vizualizări7 pagini

GH Pavel - Lab3

Documentul prezintă rezolvarea a 7 probleme de programare și elaborarea unei interfețe grafice pentru un joc. Problemele includ operații cu fișiere, liste, dicționare și anagrame. De asemenea, este elaborat un program Python ce simulează jocul Misticul 8 Bal.

Încărcat de

Vladislav Cigolea
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOC, PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 7

Universitatea Tehnic a Moldovei

Facultatea Informatic,calculatoare i Microelectronic

Lucrarea de laborator Nr.3


Tema: Operaii asupra Fiierelor, Listelor, Seturi i Dicionare. POO. Clase

A efectuat:

st.gr IA-151
Gheorghia Pavel

A verificat:

lect.superior
Lazu Victoria

Chiinu 2016

Tema: Operaii asupra Fiierelor, Listelor, Seturi i Dicionare. POO. Clase

Cerine:

Rezolvai n timpul laboratorului problemele de la punctul I.


Elaborarea interfeei grafice a unui joc elaborat n laboratorul nr.2

I Probleme
1. Scriei un program care s citeasc un fiier ce conine un text. Programul va crea i va
afia pe ecran un dicionar n care vor fi stocate cuvintele i numrul de apariii ale acestora n
textul din fiier. mbuntete programul prin imprimarea cuvintele n ordinea descresctoare
a numrului de apariii.
def problema1():
file=open("text.txt","r+")
wordcount={}
for word in file.read().split():
if word not in wordcount:
wordcount[word] = 1
else:
wordcount[word] += 1
print (sorted(wordcount.items()))

2. Scriei un program care adaug dou numere primite de la utilizator (de la consol) cu
verificare de erori. Scriei codul astfel nct s ceara utilizatorului un numr ntreg i apoi
verific dac ce a introdus utilizatorul e un numr valid. Afieaz un mesaj de eroare n caz c
numrul nu e valid i continu afiarea mesajului ce prompteaz utilizatorul s introduc un
numr pn cnd introduce unul valid. Sfat: Folosii raw_input pentru a citi numrul ca un ir
de caractere i apoi folosii o bucl while pentru a verifica c fiecare caracter este o cifr.
Realizai acelai lucru i pentru al doilea numr i apoi adunai-le.
def problema2():
numere=['0','1','2','3','4','5','6','7','8','9']
while 1:
k=0

n=input("Introduceti primul numar:")


for i in n:
if i in numere:
continue
else:
k=k+1
if k is 0:
break
else:
continue
while 1:
k=0
m=input("Introduceti al doilea numar:")
for i in m:
if i in numere:
continue
else:
k=k+1
if k is 0:
break
else:
continue
s=int(n)+int(m)
print(s)

3. Scriei un program pentru a gsi anagrame ntr-o anumit list de cuvinte. Dou cuvinte
sunt numite anagrame dac un cuvnt poate fi format prin rearanjarea literelor primului cuvnt.
De exemplu, A, C, E, S, T: ACEST = ASCET = CASET = CASTE = CESTA = CETAS =
SECAT = SECTA = SETCA = TEASC = TESAC sunt anagrame.
def anagrama(s):
if s== "":
return[s]
else:
ang=[]
for w in anagrama(s[1:]):
for pos in range(len(w)+1):
ang.append(w[:pos]+s[0]+w[pos:])
return ang

4. Scriei o funcie invertdict care ar interschimba cheile i valorile ntr-un dicionar. Pentru
simplificare, presupunem c toate valorile sunt unice.
def problema4():
d1={"Pavel":1, "Iulian":2, "Timur":3}
d2={}
for x in d1:
d2[d1[x]]=x
print(d2)

5. Scriei un program split.py, care are un numr ntreg n i un nume de fi ier ca argumente n
linia de comand i mparte fiierul n mai multe fiiere mici, cu fiecare avnd n linii.

def problema5():
file=open("text.txt","r+")
s=""
n=int(input("Introduceti numarul de linii"))
j=0
i=0
for line in file:
f=open("text"+str(j)+".txt","w+")
s=s+line
i=i+1
if i==n:
f.write(s)
j=j+1
i=0
s=""

6. Scriei o funcie care ar face liniarizarea unei liste. Aveti o list imbricat (adic list n
list) i creai o list nou.
De ex. liniarizare([ [1, 2, [3, 4] ], [5, 6], 7])
[1, 2, 3, 4, 5, 6, 7]

def problema6():
import itertools
lista = [[1,2,3],[4,5,6], [7], [8,9]]
listafinal = list(itertools.chain.from_iterable(lista))
print(listafinal)

7. Scriei o funcie vectorizati care ia o funcie f i returneaz o nou funcie, care ia o list ca
argument i solicit (cheam) f pentru fiecare element i returneaz rezultatul ca o list.
De exemplu:
import math
def lapatrat(a):
return a*a
def vectorizati(func):
def vec(lista):
n=0
for i in lista:
lista[n]=func(i)
n+=1
print(lista)
return vec

II Elaborarea interfeei grafice pentru jocurile: Jocul Bila Misterioas i/sau


Ghicete numrul
Elaborai un program Python ce ar simula jocul Mystic 8 Ball.
import random
import time

from tkinter import *


from PIL import ImageTk, Image
def numar_precizie(numar):
if numar==0:
return "Da probabil"
elif numar==1:
return "Definitiv NU"
elif numar==2:
return "Unde l-ai lsat."
elif numar==3:
return "n Africa."
elif numar==4:
return "Ud."
elif numar==5:
return "Caatare se poate de gindit."
elif numar==6:
return "Bem un ceai si decidem."
elif numar==7:
return "Repede la veceu si iti raspund."
elif numar==8:
return "Nustiu! Nu ma intreba!"
elif numar==9:
return "Data viitoare, acum nu sunt concentrat."
elif numar==10:
return "Da tu ma crezi?"
fnt=Tk()
en1=Entry(fnt,width=30)
en1.pack()
im1= ImageTk.PhotoImage(Image.open("img.png"))
panel =Label(fnt, image = im1)
panel.pack()
en2=Label(fnt)
en2.pack()
en2.place(x=190, y=240)
l1=Label(fnt,text="Introduceti Intrebarea")
l1.pack()
l1.place(x=25,y=1)
def mystical_ball():
if en1.get()=="":
en2['text']="Ati uitat sa introduceti intrebarea"
else:
aleator=random.randrange(0,10)
raspuns=numar_precizie(aleator)
en2['text']=raspuns
but=Button(fnt,text="Nisca din loc!", command=mystical_ball)
but.pack()
but.place(x=400,y=0)

fnt.mainloop()

Concluzie:
Pe parcursul acestei lucrri de laborator m-am familiarizat cu instruciunile de baza ale
limbajului Python. De asemenea am utilizat pachetul de funcii Time i Random.
Lucrarea dat mi-a oferit o nelegere mai bun a structurii programelor n Python i eficien ei
lui n faa altor limbaje.

S-ar putea să vă placă și