4.6 מערכת פתרון
הנה פתרון מלא לתרגיל “שעון עצר אקראי” עם הערות להסבר:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <unistd.h> // עבור sleep בלינוקס
int main() {
// שלב 1: הדפסת הזמן הנוכחי
time_t now = time(NULL);
printf("הזמן הנוכחי: %s", ctime(&now));
// שלב 2: הגרלת מספר אקראי בין 3 ל־7
srand(time(NULL)); // זורעים את מחולל המספרים האקראיים לפי הזמן הנוכחי
int delay = rand() % 5 + 3; // מספר אקראי בין 3 ל־7
// שלב 3: השהיה
printf("ממתין %d שניות...\n", delay);
sleep(delay); // השהיה
// שלב 4: הדפסת זמן חדש
now = time(NULL);
printf("הזמן כעת: %s", ctime(&now));
// שלב 5: בדיקת משתנה סביבה
if (getenv("DEBUG") != NULL) {
printf("מצב ניפוי פעיל\n");
}
// שלב 6: ניקוי המסך (מותאם לפי מערכת הפעלה)
#ifdef _WIN32
system("cls");
#else
system("clear");
#endif
// סיום התוכנית
exit(0);
}