Python clasa a 9-a · Manual Python
Laborator Python
LECȚIE

3.1. Subprograme predefinite în Python

Funcții matematice, conversii și funcții pentru colecții

ANALIZĂ
→
PROIECTARE
→
IMPLEMENTARE
→
TESTARE
→
DEPANARE
01
OBIECTIVE

La finalul lecției vei putea...

  • să explici rolul unui subprogram predefinit și diferența dintre o funcție și o simplă expresie;
  • să utilizezi funcții matematice uzuale, precum sqrt(), abs(), floor() și ceil();
  • să utilizezi funcțiile de conversie int(), float() și str() în situații potrivite;
  • să utilizezi len(), min(), max() și sum() pentru prelucrări simple ale colecțiilor de valori;
  • să identifici argumentele unei funcții și valoarea produsă de apelul ei;
  • să alegi o funcție predefinită potrivită pentru o operație, evitând scrierea inutilă a unui algoritm mai lung;
  • să integrezi subprogramele predefinite în algoritmi deja cunoscuți.
Ideea centrală: folosim operații deja disponibile atunci când acestea exprimă direct prelucrarea cerută.
02
EXPLICAȚIE

Subprograme predefinite în Python

Un subprogram este o componentă de program care realizează o operație bine determinată. Python pune la dispoziție numeroase subprograme gata definite, numite subprograme predefinite.

Un apel de funcție are forma simplificată nume(argumente). Argumentele sunt datele transmise funcției.

2.1. Funcții matematice din modulul math

Pentru unele operații matematice Python folosește modulul math. Un modul este un ansamblu de definiții pe care le putem importa și utiliza.

from math import sqrt, floor, ceil

x = 25
print(sqrt(x))
print(floor(4.8))
print(ceil(4.2))

Instrucțiunea from math import ... face disponibile funcțiile indicate. După import, ele pot fi apelate direct.

2.2. Conversii

Conversia schimbă forma în care este reprezentată o valoare. int(), float() și str() sunt utile atunci când datele trebuie folosite într-un alt tip de prelucrare.

a = int('27')
b = float('3.5')
c = str(2026)
print(a, b, c)

2.3. Funcții pentru colecții de valori

În această etapă folosim în special len(), min(), max() și sum(). Exemplele pot utiliza tupluri, fără a introduce prematur operații specifice clasei list.

note = (8, 10, 7, 9, 10)
print(len(note))
print(min(note))
print(max(note))
print(sum(note))
FuncțieRolExemplu
abs(x)valoarea absolutăabs(-7) → 7
round(x)rotunjirea unui numărround(3.6) → 4
int(x)conversie la întregint(7.9) → 7
float(x)conversie la realfloat(8) → 8.0
str(x)conversie la șirstr(25) → '25'
len(x)numărul de elemente/caracterelen('informatica') → 11
min(x)cea mai mică valoaremin(7, 2, 9) → 2
max(x)cea mai mare valoaremax(7, 2, 9) → 9
sum(x)suma valorilor unei colecțiisum((2, 4, 6)) → 12
03
EXEMPLU INTUITIV

Alegem operația potrivită

Operație disponibilă

Un calculator are deja operații precum radicalul și valoarea absolută. Este mai natural să apelăm funcția potrivită decât să rescriem algoritmul.

Conversie

Dacă primim "15" ca text și vrem să-l adunăm cu 7, îl convertim mai întâi cu int("15").

Alege funcția

Ce funcție determină suma valorilor unei colecții?

04
PYTHON

Apeluri de funcții predefinite

from math import sqrt

x = 16
print("Radical:", sqrt(x))
print("Valoare absolută:", abs(-12))
print("Rotunjire:", round(7.6))

note = (8, 10, 7, 9)
print("Număr de valori:", len(note))
print("Minim:", min(note))
print("Maxim:", max(note))
print("Suma:", sum(note))

Fiecare apel produce o valoare care poate fi afișată, memorată sau folosită într-o expresie.

Interactiv: conversii

Ce produce int(7.9)?

05
ALGORITM / PSEUDOCOD

Folosim funcția ca operație elementară

Pentru folosirea unei funcții predefinite, algoritmul nu trebuie să descrie intern operația realizată de funcție.

citește x
r ← radical(x)
a ← |x|
afișează r, a

În Python, radical(x) din pseudocod este implementat prin sqrt(x), iar |x| prin abs(x).

06
ATENȚIE!

Erori și confuzii frecvente

  • sqrt(x) se utilizează pentru valori pentru care radicalul are sens în domeniul real. Nu îl confunda cu x*x.
  • int(7.9) nu rotunjește la 8; elimină partea fracționară și obține 7.
  • round() și int() nu au același rol.
  • len() determină numărul de elemente sau caractere; nu calculează suma.
  • Pentru funcțiile din math trebuie realizat importul corespunzător.
  • sqrt este numele funcției, iar sqrt(25) este un apel.
07
EXEMPLU REZOLVAT

Prelucrăm un număr real

Problemă

Se citește un număr real x. Să se afișeze partea întreagă inferioară, partea întreagă superioară, valoarea absolută și radicalul său, dacă x este nenegativ.

Analiză

Intrare: x. Ieșire: floor(x), ceil(x), abs(x) și, dacă x ≥ 0, sqrt(x).

Algoritm

citește x
a ← floor(x)
b ← ceil(x)
c ← |x|
afișează a, b, c
dacă x ≥ 0 atunci
    r ← radical(x)
    afișează r

Python

from math import sqrt, floor, ceil

x = float(input("x = "))

print("Partea întreagă inferioară:", floor(x))
print("Partea întreagă superioară:", ceil(x))
print("Valoarea absolută:", abs(x))

if x >= 0:
    print("Radical:", sqrt(x))
else:
    print("Radicalul nu este real.")

Testare

Pentru x = 6.3, obținem 6, 7, 6.3 și aproximativ 2.51. Pentru x = -2.7, radicalul real nu este calculat.

Verificare rapidă

Care este floor(-2.7)?

08
EXERCIȚII DE BAZĂ

Aplicarea directă a funcțiilor

  1. Citește un număr întreg și afișează valoarea sa absolută.
  2. Citește un număr real și afișează rotunjirea lui, partea întreagă inferioară și partea întreagă superioară.
  3. Citește trei numere și afișează minimul și maximul lor folosind funcțiile predefinite.
  4. Se citesc cinci valori numerice. Memorează-le într-un tuplu și afișează numărul de valori și suma lor.
  5. Citește un număr întreg n și afișează dacă este mai aproape de 10 sau de 20, folosind abs().
  6. Citește un text și afișează numărul de caractere folosind len().
  7. Citește un număr real nenegativ și calculează radicalul folosind sqrt().
  8. Citește două valori sub formă de text, transformă-le în numere întregi și afișează suma lor.
09
EXERCIȚII DE APROFUNDARE

Combinăm mai multe funcții

  1. Se citesc trei lungimi reale. Verifică dacă pot reprezenta laturile unui triunghi și, dacă da, calculează semiperimetrul și o expresie pentru aria lui folosind funcțiile predefinite potrivite.
  2. Se citesc n valori reale într-un tuplu. Afișează minimul, maximul, suma și media aritmetică.
  3. Se citește o valoare reală x. Afișează distanța ei față de cel mai apropiat dintre numerele 0 și 100.
  4. Se citesc coordonatele a două puncte în plan. Calculează distanța dintre ele folosind sqrt().
  5. Se citește un număr real. Afișează-l cu partea fracționară eliminată și apoi cu partea fracționară rotunjită; explică diferența dintre int() și round().
  6. Analizează ce se întâmplă pentru valorile -3.2, -3.0, 0 și 3.2 când se aplică floor(), ceil(), int() și round().
10
VERIFICARE

Verifică-ți înțelegerea

Mini-quiz

1. Ce produce int(8.9)?

2. Ce funcție determină suma unei colecții?

3. Ce funcție determină numărul de caractere?

4. Ce trebuie făcut înainte de a apela sqrt() în forma din lecție?

5. Ce produce floor(3.8)?

11
MINI-PROIECT

Analizor simplu de rezultate

Analizor simplu de rezultate

Realizează un program care primește un set mic de rezultate numerice și afișează numărul de rezultate, suma, media, valoarea minimă, valoarea maximă și distanța dintre minim și maxim. Programul trebuie să trateze separat cazul în care nu există valori. Pentru radicalul unei expresii matematice, verifică înainte condiția necesară.

  • utilizează len(), sum(), min() și max();
  • utilizează cel puțin o funcție matematică din math;
  • include date de test pentru un caz normal și un caz-limită;
  • afișează rezultate clare, cu etichete.