Școala Româno-Britanică
Modulul 5 Clasa a IX-a | Python

Ora 3: Subprograme predefinite pentru operații matematice

Ce vei învăța astăzi: abs, round, int, float, sqrt; conversii și rotunjiri

Rezultat practic: Aplici funcțiile predefinite abs, round, int, float și sqrt pentru calcule și conversii (Competența 3.5).

Competența 3.5 Săptămâna 25

Înainte de a începe

De ce contează? abs, int, round și sqrt apar în aproape orice problemă cu calcule reale, de la distanțe până la medii, și înlocuiesc prelucrări manuale lungi.

Ce știi deja?

În lecțiile trecute ai scris funcții proprii cu def și return. Cum crezi că se apelează o funcție deja existentă în Python, pe care nu ai definit-o tu?

Ideea-cheie: Funcțiile predefinite există deja în Python: le apelezi cu numele lor și argumentele între paranteze, fără să le definești tu.
SINTEZĂ TEORETICĂ ȘI EXEMPLE GHIDATE

Ce vei învăța astăzi?

După această lecție vei învăța să folosești funcțiile predefinite (funcții deja existente în Python, gata de folosit) pentru operații matematice: abs, int, round și sqrt.

Ce sunt funcțiile predefinite (încorporate)
Valoarea absolută (numărul fără semn) cu abs(x)
Conversii cu int() și float()
Rotunjirea cu round(x) și diferența față de int()
Rădăcina pătrată cu sqrt(x) din modulul math (colecție de funcții gata făcute, adusă în program cu import)

Funcțiile predefinite

Funcțiile predefinite sunt funcții care există deja în Python, gata de folosit, fără să le definim noi. Exemple: abs(), int(), round(), min(), max().

Exemplu complet - funcții predefinite
print(abs(-7))
print(int(3.9))
print(round(3.6))

Observă: abs(-7) dă 7, int(3.9) taie partea zecimală și dă 3, iar round(3.6) rotunjește și dă 4.

abs, int și round - ce diferență este?

abs(x) întoarce valoarea absolută a lui x (fără semn). int(x) taie partea zecimală. round(x) rotunjește la cel mai apropiat întreg.

FuncțieCe faceExempluRezultat
abs(-7)Valoarea absolutăabs(-7)7
int(3.9)Taie partea zecimalăint(3.9)3
round(3.6)Rotunjește la cel mai apropiat întreground(3.6)4
round(3.4)Rotunjește la cel mai apropiat întreground(3.4)3

Diferența int vs round:

int este ca o foarfecă: tai tot ce e după virgulă, indiferent de valoare. round este ca un arbitru: trimite numărul la cel mai apropiat întreg, în sus sau în jos.

Rădăcina pătrată cu sqrt

Funcția sqrt(x) calculează rădăcina pătrată a lui x. Nu este predefinită direct în Python: o aducem cu import math, apoi o apelăm ca math.sqrt(x).

Algoritm Distanta dintre doua puncte Start program citeste x1, y1 citeste x2, y2 d <- radical((x2 - x1)^2 + (y2 - y1)^2) scrie d rotunjit la doua zecimale Stop program
Exemplu complet - distanța dintre două puncte
import math


x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())

d = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

print(round(d, 2))

Reține: import math aduce modulul, iar funcțiile lui se apelează cu numele modulului urmat de punct: math.sqrt(...). round(d, 2) rotunjește la 2 zecimale.

Exercițiu de completare

Completează enunțul cu cuvintele potrivite:

Funcția ______(x) întoarce valoarea absolută a lui x. Pentru a tăia partea zecimală folosim ______(x), iar pentru a rotunji la cel mai apropiat întreg folosim ______(x). Rădăcina pătrată se calculează cu ______(x), dar mai întâi importăm modulul ______.

Bancă de cuvinte:
abs round int sqrt math

Test de înțelegere

Test rapid - funcții matematice predefinite:

1. Care este rezultatul expresiei abs(-7)?

2. Care este rezultatul expresiei int(3.9)?

3. Care este rezultatul expresiei round(3.6)?

Test suplimentar

Test suplimentar - funcții matematice:

1. Care este rezultatul expresiei int(2.99)?

2. Care este rezultatul expresiei round(2.6)?

3. Pentru a folosi funcția sqrt, scriem la începutul programului:

Ai grijă la: int taie partea zecimală (int(3.9) dă 3), pe când round rotunjește (round(3.9) dă 4), iar sqrt există doar în modulul math, care trebuie importat.

Aprofundare

Rotunjirea bancară: round(2.5) nu dă 3, ci 2, pentru că Python rotunjește la cel mai apropiat număr par când partea zecimală este exact 0.5. Pentru rotunjiri clasice, folosim math.ceil(x) (în sus) și math.floor(x) (în jos).

  • round cu două argumente: round(3.14159, 2) rotunjește la 2 zecimale și dă 3.14 - foarte util pentru medii și prețuri.
  • int() din șir: int("12") funcționează, dar int("12.5") produce ValueError; conversia din text se face doar dacă șirul conține un număr întreg.
  • Precizia în virgulă mobilă: 0.1 + 0.2 nu este exact 0.3 (reprezentarea în binar). Comparăm valori reale doar după rotunjire.
  • Alte funcții din math: math.fabs(x) (valoare absolută reală), math.pow(a, b), constantele math.pi și math.e.
  • Caz particular: math.sqrt(-1) produce ValueError; în matematică rădăcina pătrată este definită doar pentru numere nenegative.
APLICARE ȘI REZOLVARE DE PROBLEME

PbInfo - Valoarea absolută

Enunț:

Cerință: Să se afișeze valoarea absolută a unui număr întreg x, folosind funcția predefinită abs.

Date de intrare:

Programul citește de la tastatură un număr întreg x.

Date de ieșire:

Programul va afișa pe ecran valoarea absolută a lui x.

Restricții și precizări:

Valorile citite sunt numere întregi, iar n este un număr natural, cu 1 <= n <= 1000.

Exemplu:

Intrare:

-7

Ieșire:

7
Cum gândim soluția:
  1. Citim x cu int(input())
  2. Folosim funcția predefinită abs(x)
  3. Afișăm rezultatul cu print
Scrie soluția în Python:
Soluție corectă:
Soluția completă
x = int(input())
print(abs(x))

Ce învățăm: funcția predefinită abs întoarce valoarea absolută a unui număr.

PbInfo - Distanța dintre două puncte

Enunț:

Cerință: Se dau coordonatele a două puncte din plan: (x1, y1) și (x2, y2). Să se afișeze distanța dintre ele, rotunjită la două zecimale.

Date de intrare:

Programul citește de la tastatură patru numere întregi: x1, y1, x2, y2.

Date de ieșire:

Programul va afișa distanța dintre cele două puncte, rotunjită la două zecimale.

Restricții și precizări:

Valorile citite sunt numere întregi, iar n este un număr natural, cu 1 <= n <= 1000.

Exemplu:

Intrare:

0 0
3 4

Ieșire:

5.0
Cum gândim soluția:
  1. Importăm modulul math cu import math
  2. Citim cele patru coordonate
  3. Calculăm distanța cu formula sqrt((x2-x1)^2 + (y2-y1)^2)
  4. Rotunjim rezultatul cu round(d, 2) și îl afișăm
Scrie soluția în Python:
Soluție corectă:
Soluția completă
import math

x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())

d = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)
print(round(d, 2))

Ce învățăm: modulul math se importă, iar sqrt și round ne ajută să calculăm și să rotunjim rezultate.

EXERCIȚII PRACTICE

Exercițiul Practic: Rotunjiri și rădăcina pătrată

Sarcini de lucru

Aplică funcțiile matematice predefinite în două programe complete

Sarcina 1: Rotunjirile unui număr real

Cerință: Scrie un program care citește un număr real x și afișează, pe rând: int(x), round(x), rotunjirea în jos (math.floor) și rotunjirea în sus (math.ceil).

Soluție:
import math

x = float(input())

print("int:", int(x))
print("round:", round(x))
print("rotunjire in jos:", math.floor(x))
print("rotunjire in sus:", math.ceil(x))

Verifică: int taie partea zecimală, round rotunjește, iar floor și ceil rotunjesc în jos, respectiv în sus.

Sarcina 2: Lungimea ipotenuzei

Cerință: Scrie un program care citește catetele a și b ale unui triunghi dreptunghic și afișează lungimea ipotenuzei, folosind formula sqrt(a*a + b*b), rotunjită la două zecimale.

Soluție:
import math

a = float(input())
b = float(input())

ip = math.sqrt(a ** 2 + b ** 2)
print(round(ip, 2))

Verifică: folosim a ** 2 pentru pătratul catetei, iar sqrt pentru rădăcina pătrată.

Scrie pe caiet - De reținut

Titlul lecției

Subprograme predefinite pentru operații matematice.

Definiția lecției

Funcțiile predefinite sunt funcții deja existente în Python, gata de folosit, fără să le definim noi. abs(x) întoarce valoarea absolută a lui x, adică numărul fără semn. int(x) taie partea zecimală a unui număr, pe când round(x) rotunjește la cel mai apropiat întreg. Rădăcina pătrată se calculează cu sqrt(x), adusă în program prin import math și apelată ca math.sqrt(x). De exemplu, pentru distanța dintre două puncte folosim formula cu radical, apoi rotunjim rezultatul cu round(d, 2) la două zecimale. Aceste funcții apar în aproape orice problemă cu calcule reale, de la medii până la distanțe.

Definiții esențiale

Algoritmul cheie - pseudocod

Start program citeste x1, y1 citeste x2, y2 d <- radical((x2 - x1)^2 + (y2 - y1)^2) scrie d rotunjit la doua zecimale Stop program

Algoritmul cheie - cod Python

import math

x1, y1 = map(int, input().split())
x2, y2 = map(int, input().split())

d = math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2)

print(round(d, 2))

Greșeli comune de evitat

Exemplu practic

La magazin, diferența dintre prețul afișat (100 de lei) și suma plătită (87,5 lei) trebuie afișată pozitiv, indiferent de ordinea scăderii, iar TVA-ul se rotunjește la două zecimale:

pret = 100
platit = 87.5
print(abs(pret - platit))       # afiseaza 12.5
print(round(pret * 0.19, 2))    # TVA de 19%, rotunjit la doua zecimale

Sfaturi practice și trucuri