נשלח בתאריך: 27 September 2007 בשעה 23:35 | | IP רשוּם
|
|
|
|
זה שוב אני במהלך קריאתי במאמר העוסק בלמידה בשפת הC ואפשרות ליצור שעון נתקלתי בבעיה!
רשמתי את התוכנית הבאה:
#include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include <dos.h> #include <math.h> #define PI 3.141592 #define SEC_LEN 70 #define MIN_LEN 50 int main(void) { int gdriver = DETECT, gmode, errorcode; int xmax, ymax; double sec_angle, min_angle; int sec_x1, sec_y1, sec_x2, sec_y2; int min_x1, min_y1, min_x2, min_y2; int time; initgraph(&gdriver, &gmode, ""); errorcode = graphresult(); if (errorcode != grOk) { printf("Graphics error: %s\n", grapherrormsg(errorcode)); printf("Press any key to halt:"); getch(); exit(1); } sec_x1 = getmaxx() / 2; sec_y1 = getmaxy() / 2; sec_x2 = sec_x1; sec_y2 = sec_y1 - SEC_LEN; min_x1 = getmaxx() / 2; min_y1 = getmaxy() / 2; min_x2 = min_x1; min_y2 = min_y1 - MIN_LEN; outtextxy(sec_x1 - 8, sec_y1 - SEC_LEN - 15, "12"); outtextxy(sec_x1 + SEC_LEN + 10, sec_y1, "3"); outtextxy(sec_x1 - 2, sec_y1 + SEC_LEN + 10, "6"); outtextxy(sec_x1 - SEC_LEN - 15, sec_y1, "9"); circle(sec_x1, sec_y1, SEC_LEN+25); setcolor(WHITE); line(sec_x1, sec_y1, sec_x2, sec_y2); sec_angle = 0; min_angle = 0; time = 0; while (!kbhit()) { delay(200); setcolor(BLACK); line(sec_x1, sec_y1, sec_x2, sec_y2); line(min_x1, min_y1, min_x2, min_y2); sec_x2 = sec_x1 + sin(sec_angle)*SEC_LEN; sec_y2 = sec_y1 - cos(sec_angle)*SEC_LEN; min_x2 = min_x1 + sin(min_angle)*MIN_LEN; min_y2 = min_y1 - cos(min_angle)*MIN_LEN; setcolor(BLUE); line(sec_x1, sec_y1, sec_x2, sec_y2); setcolor(YELLOW); line(min_x1, min_y1, min_x2, min_y2); sec_angle += (2 * PI / 360) * 6; if (++time % 60 == 0) min_angle += (2 * PI / 360) * 6; } /* clean up */ getch(); closegraph(); return 0; }
וכאשר ניסיתי להפעיל את התוכנית התוכנה TURBO C++ הראת לי את הטעות הבא
Compiling NONAME00.CPP: Fatal ..\INCLUDE\GRAPHICS.H 19: Error directive: BGI graphics not supported under Windows
איני מבין מה טעות זאת אומר והיכן היא נמצאת?
אנא עזרו לי למצוא את הטעות שלי בתוכנית!
|