10. Pretvaranje vremena - rešenje
U ovom zadatku, cilj je pretvoriti vreme dato u sekundama u standardni format sata, minuta i sekundi (hh:mm). Ova konverzija je korisna u situacijama kada je potrebno prikazati ukupno proteklo vreme u razumljivom formatu. Program će pročitati vreme u sekundama, izračunati koliko ima sati, minuta i sekundi, i ispisati rezultat u odgovarajućem formatu.
Rešenje u programskom jeziku C
#include <stdio.h>
/*
Učitati vreme u sekundama i ispisati u obliku hh:mm:ss
*/
int main()
{
int vreme,hh,mm,ss;
printf("Unesi vreme u sekundama\n");
scanf("%d",&vreme); //7345s
/*ss=25, Deljenjem sa 60 bilo bi podeljeno 7320(60*122) i rezultat deljenja bi bio 122.
Ostatak deljenja je onda 7345-7320= 25, što se dobija operatorom %, dakle, 7345 % 60 = 25*/
ss=vreme % 60;
mm = vreme / 60; //mm=122
/*U ovim minuta mogu se izvući časovi jer 120 min je 2*60 = 120, tj. 2h, preostaće onda samo 2 min*/
hh = mm / 60; //hh=2
mm = mm % 60; //mm=2, ovo je moglo da se dobije i oduzimanjem tj. mm= mm-hh*60 =122 -2*60 = 122-120 = 2
printf("%2d h : %2d m : %2d s", hh, mm, ss);
return 0;
}
/*
Učitati vreme u sekundama i ispisati u obliku hh:mm:ss
*/
int main()
{
int vreme,hh,mm,ss;
printf("Unesi vreme u sekundama\n");
scanf("%d",&vreme); //7345s
/*ss=25, Deljenjem sa 60 bilo bi podeljeno 7320(60*122) i rezultat deljenja bi bio 122.
Ostatak deljenja je onda 7345-7320= 25, što se dobija operatorom %, dakle, 7345 % 60 = 25*/
ss=vreme % 60;
mm = vreme / 60; //mm=122
/*U ovim minuta mogu se izvući časovi jer 120 min je 2*60 = 120, tj. 2h, preostaće onda samo 2 min*/
hh = mm / 60; //hh=2
mm = mm % 60; //mm=2, ovo je moglo da se dobije i oduzimanjem tj. mm= mm-hh*60 =122 -2*60 = 122-120 = 2
printf("%2d h : %2d m : %2d s", hh, mm, ss);
return 0;
}
Objašnjenje rešenja u jeziku C
Program koristi osnovne aritmetičke operacije za pretvaranje ukupnog broja sekundi u sate, minute i sekunde. Na početku, vreme u sekundama se deli sa 60 da bi se dobio broj minuta. Ostatak ove operacije predstavlja sekunde koje nisu dovoljne da formiraju još jedan minut. Zatim se broj minuta ponovo deli sa 60 kako bi se dobio broj sati, a ostatak te operacije predstavlja preostale minute.
Rešenje u programskom jeziku JAVA
import java.util.Scanner;
public class PretvaranjeVremena {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Unesi vreme u sekundama:");
int vreme = sc.nextInt(); // 7345s
int ss = vreme % 60; // Izračunavanje sekundi
int mm = vreme / 60; // Izračunavanje ukupnog broja minuta
int hh = mm / 60; // Izračunavanje broja sati
mm = mm % 60; // Preostali minuti nakon izdvajanja sati
// Ispis rezultata u formatu hh:mm:ss
System.out.printf("%2d h : %2d m : %2d s", hh, mm, ss);
}
}
public class PretvaranjeVremena {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Unesi vreme u sekundama:");
int vreme = sc.nextInt(); // 7345s
int ss = vreme % 60; // Izračunavanje sekundi
int mm = vreme / 60; // Izračunavanje ukupnog broja minuta
int hh = mm / 60; // Izračunavanje broja sati
mm = mm % 60; // Preostali minuti nakon izdvajanja sati
// Ispis rezultata u formatu hh:mm:ss
System.out.printf("%2d h : %2d m : %2d s", hh, mm, ss);
}
}
Objašnjenje rešenja u Javi
Rešenje u Javi je identično C rešenju po logici, ali koristi Javu za unos podataka i formatiran ispis. Koristimo Scanner klasu za unos, dok se rezultat formatira pomoću printf metode. Na isti način se sekunde, minuti i sati izračunavaju i formatiraju za prikaz.