0% au considerat acest document util (0 voturi)
9 vizualizări10 pagini

Universitatea Tehnică A Moldovei Facultatea Calculatoare Informatică Și Microelectronică Departamentul Ingineria Software Și Automatică

Raportul detaliază exerciții de programare declarativă în Python, incluzând utilizarea dicționarelor, funcții de conversie a timpului, funcții de ordin înalt și aplicații ale acestora. Se prezintă metode de calculare a sumelor, diferențelor, produselor și împărțirilor, precum și utilizarea funcțiilor lambda și a funcțiilor de filtrare. De asemenea, sunt incluse exerciții de calcul al mediei și funcții recursive.

Încărcat de

mudrenco.vlada20
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 DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
9 vizualizări10 pagini

Universitatea Tehnică A Moldovei Facultatea Calculatoare Informatică Și Microelectronică Departamentul Ingineria Software Și Automatică

Raportul detaliază exerciții de programare declarativă în Python, incluzând utilizarea dicționarelor, funcții de conversie a timpului, funcții de ordin înalt și aplicații ale acestora. Se prezintă metode de calculare a sumelor, diferențelor, produselor și împărțirilor, precum și utilizarea funcțiilor lambda și a funcțiilor de filtrare. De asemenea, sunt incluse exerciții de calcul al mediei și funcții recursive.

Încărcat de

mudrenco.vlada20
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 DOCX, PDF, TXT sau citiți online pe Scribd

Universitatea Tehnică a Moldovei

Facultatea Calculatoare Informatică și Microelectronică Departamentul


Ingineria Software și Automatică

RAPORT
Laborator la Programarea Declarativa

Tema: Funcții de ordin înalt în Python

A efectuat: Mudrenco Vlada


A verificat: Rusu M.

Chișinău 2025
# 1

produse = {

"pâine": 5.50,

"lapte": 7.25,

"ouă": 12.80,

"brânză": 25.99,
"unt": 18.45

print("Exercițiul 1: Dicționar")

print("\nCheile dicționarului:")

for cheie in [Link]():

print(f" {cheie}")

print("\nTupluri (cheie, valoare):")

for item in [Link]():

print(f" {item}")

print("\nAlternativ - chei și valori separate:")

for cheie, valoare in [Link]():

print(f" {cheie}: {valoare}")

# 2

import random

import datetime

print("\nExercițiul 2: Conversie timp")

secunde_totale = [Link](0, 10000)

print(f"\nNumăr aleator de secunde: {secunde_totale}")

# Metoda 1

ore = secunde_totale // 3600

minute = (secunde_totale % 3600) // 60

secunde = secunde_totale % 60

print(f"Metoda 1 (calcul manual): {ore:02d}:{minute:02d}:{secunde:02d}")

# Metoda 2
timp_delta = [Link](seconds=secunde_totale)

print(f"Metoda 2 (datetime): { timp_delta }")

from functools import reduce

print("Exercițiul 3")

# Definire două obiecte float

a = 15.5

b = 7.3

# Funcții lambda pentru operații

suma = lambda x, y: x + y

diferenta = lambda x, y: x - y

produs = lambda x, y: x * y
impartire = lambda x, y: x / y if y != 0 else "Diviziune prin 0"

# Lista de funcții

functii = [suma, diferenta, produs, impartire]

print(f"\nOperații cu a={a} și b={b}:")

print(f"Suma: {suma(a, b)}")

print(f"Diferența: {diferenta(a, b)}")

print(f"Produsul: {produs(a, b)}")

print(f"Împărțirea: {impartire(a, b)}")

# Aplicare funcții cu map() pe liste de valori

valori1 = [10, 20, 30, 40]

valori2 = [2, 4, 6, 8]

print("\nFolosind map() pentru aplicarea funcțiilor")

print(f"Valori1: {valori1}")

print(f"Valori2: {valori2}")

for i, functie in enumerate(functii):

nume_operatie = ["Suma", "Diferența", "Produsul", "Împărțirea"][i]

rezultate = list(map(functie, valori1, valori2))

print(f"{nume_operatie}: {rezultate}")

# Aplicare pe alte tipuri de date

print("\n--- Aplicare pe stringuri (concatenare) ---")

stringuri1 = ["Hello", "Bună", "Salut"]

stringuri2 = [" World", " ziua", " prietene"]

rezultat_str = list(map(suma, stringuri1, stringuri2))

print(f"Concatenare: {rezultat_str}")
print("\nExercițiul 4: Valori distincte cu filter()")

# Listă cu duplicate

lista_intregi = [5, 2, 8, 2, 9, 5, 3, 8, 1, 9, 5, 7, 3]

print(f"\nLista originală: {lista_intregi}")

valori_distincte = list(filter(lambda x, seen=set(): not (x in seen or


[Link](x)), lista_intregi))

print(valori_distincte)

print("\nExercițiul 5")

from functools import reduce

def numar_aparitii(string, caracter):

return reduce(

lambda freq, c: freq + 1 if c == caracter else freq,

string,

text = "abracadabra"

litera = "a"

print(f"Numărul de apariții ale lui '{litera}' în '{text}' este:


{numar_aparitii(text, litera)}")
print(" Exercițiul 6: Concatenare stringuri")

def concateneaza(*stringuri):

return ''.join(stringuri)

print(concateneaza("Un", "singur", "string"))

print(concateneaza("A", "B", "C", "D", "E", "F"))

print("\nExercițiul 7: Listă de funcții lambda")

# Definirea listei de funcții lambda

functii_lambda = [

lambda s: s[1] if len(s) > 1 else "String prea scurt", # al doilea


caracter

lambda s: [Link](), # litere majuscule

lambda s, c: [Link](c) if c in s else -1 # poziția caracterului

# String de test

text_test = "programare"

print(f"\nString de test: '{text_test}'")

print("\n--- Apelarea funcțiilor lambda ---")

print(f"1. Al doilea caracter: '{functii_lambda[0](text_test)}'")

print(f"2. Litere majuscule: '{functii_lambda[1](text_test)}'")

caracter_cautat = 'a'

print(f"3. Poziția caracterului '{caracter_cautat}': {functii_lambda[2]


(text_test, caracter_cautat)}")

print("\n--- Testare pe multiple stringuri ---")


stringuri_test = ["Python", "lambda", "funcții", "a"]

for s in stringuri_test:

print(f"\nString: '{s}'")

print(f" Al doilea caracter: {functii_lambda[0](s)}")

print(f" Majuscule: {functii_lambda[1](s)}")

print(f" Poziția lui 'a': {functii_lambda[2](s, 'a')}")

print("\nExercițiul 8: Media cu valori implicite")

def calculeaza_media(nota1=4, nota2=4, nota3=4):

media = (nota1 + nota2 + nota3) / 3

return round(media, 2)

print(f"1. Fără argumente: {calculeaza_media()}")

print(f"2. Un argument (8): {calculeaza_media(8)}")

print(f"3. Două argumente (9, 7): {calculeaza_media(9, 7)}")

print(f"4. Trei argumente (10, 8, 9): {calculeaza_media(10, 8, 9)}")

print(f"5. Keyword nota1=7: {calculeaza_media(nota1=7)}")

print(f"6. Keyword nota2=8, nota3=9: {calculeaza_media(nota2=8, nota3=9)}")

print("\nExercițiul 9: Funcție recursivă - Suma primelor N numere ")

def suma_recursiv(n):

# Cazul de bază

if n <= 0:

return 0
if n == 1:

return 1

# Cazul recursiv

return n + suma_recursiv(n - 1)

# Testare funcție

print("\n Calcul suma primelor 4 numere naturale: ",suma_recursiv(4),"suma


primelor 4 numere naturale: ",suma_recursiv(472))

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