3060 - Melc: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerință== Un melc se deplasează cu viteza de''' v km/h'''. El trebuie să parcurgă distanța de '''d''' metri. Să se determine în câte minute va parcurge melcul această distanță. ==Date de intrare== Programul citește de la tastatură numărul real '''v''' și numarul natural '''d''', separate prin spații. ==Date de ieșire== Programul va afișa pe ecran numărul întreg '''t''', reprezentând timpul exprimat în minute în care melcul va parcurge distanța '''...
 
Line 15: Line 15:
;Intrare
;Intrare


:0.3 20
:0.3  
:20


;Ieșire
;Ieșire
 
:Datele de intrare corespund restricțiilor impuse.
:4
:4



Revision as of 14:50, 22 April 2023

Cerință

Un melc se deplasează cu viteza de v km/h. El trebuie să parcurgă distanța de d metri. Să se determine în câte minute va parcurge melcul această distanță.

Date de intrare

Programul citește de la tastatură numărul real v și numarul natural d, separate prin spații.

Date de ieșire

Programul va afișa pe ecran numărul întreg t, reprezentând timpul exprimat în minute în care melcul va parcurge distanța d.

Restricții și precizări

  • numărul v este de tip double
  • 0 < d < 1.000.000.000

Exemplul 1

Intrare
0.3
20
Ieșire
Datele de intrare corespund restricțiilor impuse.
4

Rezolvare

Rezolvare ver. 1

<syntaxhighlight lang="python" line="1" start="1"> def validare(v, d):

   """
   Verifică dacă numărul v este de tip float și dacă numărul d este între 0 și 1.000.000.000.
   Args:
       v (float): numărul v de verificat
       d (int): numărul d de verificat
   Returns:
       bool: True dacă ambele condiții sunt îndeplinite, False în caz contrar
   """
   if not isinstance(v, float):  # dacă v nu este de tip float, returnează False
       return False
   if not (0 < d < 1000000000):  # dacă d nu este între 0 și 1.000.000.000, returnează False
       return False
   return True


def timp_parcurgere_distanta(v, d):

   """
   Calculează timpul necesar pentru a parcurge o distanță dată la o anumită viteză.
   Args:
       v (float): viteza melcului (exprimată în km/h)
       d (int): distanța pe care trebuie să o parcurgă melcul (exprimată în metri)
   Returns:
       None: afișează timpul necesar pentru a parcurge distanța, exprimat în minute
   """
   v = v * 1000 / 60  # convertește km/h în m/s
   T = 1.0 * d / v  # calculează timpul necesar pentru a parcurge distanța
   t = int(T)  # transformă timpul în minute întregi
   if T > t:  # dacă există fracții de minut, adaugă 1 minut la timp
       t += 1
   print(t)  # afișează timpul necesar pentru a parcurge distanța, exprimat în minute


if __name__ == "__main__":

   # Primește input-ul de la utilizator
   v = float(input("Introduceti viteza (km/h): "))
   d = int(input("Introduceti distanta (m): "))
   # Verifică dacă input-ul este valid și afișează rezultatul
   if validare(v, d):
       print("Datele de intrare corespund restricțiilor impuse.")
       timp_parcurgere_distanta(v, d)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>