לדלג לתוכן

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);
}

קומפילציה והרצה:

gcc timer.c -o timer
DEBUG=1 ./timer