הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   צריך עזרה בנוגע לתוכנית בשפת C (https://hosts.co.il/forums/showthread.php?t=12201)

eur2 08-01-06 00:01

צריך עזרה בנוגע לתוכנית בשפת C
 
PHP קוד:

#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <windows.h>

int clrscr() { 
    
COORD coordScreen = { 0}; 
    
DWORD cCharsWritten
    
CONSOLE_SCREEN_BUFFER_INFO csbi
    
DWORD dwConSize
    
HANDLE hConsole GetStdHandle(STD_OUTPUT_HANDLE); 
    
    
GetConsoleScreenBufferInfo(hConsole, &csbi); 
    
dwConSize csbi.dwSize.csbi.dwSize.Y
    
FillConsoleOutputCharacter(hConsoleTEXT(' '), dwConSize
        
coordScreen, &cCharsWritten); 
    
GetConsoleScreenBufferInfo(hConsole, &csbi); 
    
FillConsoleOutputAttribute(hConsolecsbi.wAttributesdwConSize
        
coordScreen, &cCharsWritten); 
    
SetConsoleCursorPosition(hConsolecoordScreen);    
    return 
0;
}

int gotoxy(int xint y

    
COORD coord
    
coord.xcoord.y
    
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
    return 
0;
}

int main() {
    
int a,b,c,i,x[10];

    
cout<<"Please Enter The 3 coefficient :"<<endl<<endl;
    
cout<<"A: ";
    
cin>>a;
    
flushall();
    
cout<<"B: ";
    
cin>>b;
    
flushall();
    
cout<<"C: ";
    
cin>>c;
    
flushall();

    
cout<<"Please Enter The 10 X locations, You Wish To Locate On The Chart!"<<endl<<endl;
    for(
i=0;i<10;i++) {
        
printf("X[%d]: ",i);
        
scanf("%d",&x[i]);
        
flushall();
    }
    
clrscr();

    for(
i=0;i<10;i++) {
        
gotoxy(x[i],a*x[i]*x[i]+b*x[i]+c);
        
putchar('*');
    }

    return 
0;



עכשיו הסבר, התוכנית הזאת כתובה כמובן בשפת C, היא משתמש לכתיבת גרפים של פונקציות ליניאריות וריבועיות, על פי נקודות שיקלטו מהמקלדת ע"י המשתמש.

חברים שלי אמרו לי שאני צריך לפשט את התוכנית לפני שאני יביא למורה שלנו לשפת C או שהוא יוריד לי ציון שאני עושה את התוכניות שלי או ארוכות מידי או מסובכות מידי (מורה מעצבן).

מי יכול, או אפילו להציע רעיון איך אני ישמח לדעת..

*קיים באג בתוכנית שהוא יכול לקבל רק נקודות חיוביות..

*הפונקציות clrscr() ו gotoxy(), כתבתי אותם כי VISUAL C++ לא מזהה אותם בסיפריית conio.h (במילה אחת: "מיקרוסופט").

*ה - flushall() זה לניקוי חוצץ, בעיקרון זה לא חובה, אבל מתוך הרגל וניקיון אני רושם את זה אחרי כל קליטת נתונים (במידה ומצאתם אחד מיותר).

יבגני

meshuga 08-01-06 00:10

לא הבנתי מה צריך לעשות?...היום עשיתי בניית גרף בTC (מומלץ,כי זה לא MS)בדיוק איך שאמרת רק שהשתמשתי בספריית graphics.h ועשיתי במקום gotoxy שזה ממש לא טוב לגרף כי זה תווים עשיתי פיקסלים..
(ד"א זה מסביר למה שקימפלת לי פעם אחת זה לא עבד :])....
תסביר מה הוא רוצה לפשט? כי זה לא ממש מסובך וזה ממש קצר יחסית מה שיש בmain

Eran-s 08-01-06 00:13

ברשותך meshuga,
לא לצטט הודעות ארוכות מדי.

eur2 08-01-06 00:15

אני רוצה לפשט את התוכנית, לעשות יותר קצר... אבל אני יחשוב על graphics.h אולי אני השתמש בו, נראה כבר... כבר מאוחר המוח שלי לא עובד יותר ב100 אחוז, כרגע זה משהו כמו -22.3 אחוז (המינוס זה לא טעות, :qqb007: ).

התוכנית אמורה לצייר לך גראפים של פונקציות ליניאריות או ריבועיות, לבחירתך..
A=0 אז פונקציה ליניארית, אחרת ריבועית.

הציור מגיע מהנקודות שהמשתמש מקליד מהמקלדת, אני אישית הייתי עושה טווחים אבל מורה (לא יגיד בשביל לא לקבל באן :qqb006: ).

יבגני

dgate 08-01-06 00:16

שלום יבגני,

אני עצמי לא מכיר C, אלא pascal, אך כמובן שהכל זה אותו חרא רק ב syntax שונה...

על פי מה שאני רואה אין סיבוך מיותר בתוכנית שכתבת שכן תהליך הקליטה של הנתונים(X,Y) הוא הכרחי ואי אפשר להימנע ממנו, והתהליך עצמו שמדפיס את הכוביות על המסך הוא לולאה פשוטה שרצה לא מליון פעם, אלא רק 10.

בקיצור, אני אישית לא ממש הבנתי למה קבעת את ערך ה-Y של כל נקודה כa*x[i]*x[i]+b*x[i]+c ... אבל אם זה מביא את התוצאה אז אני מאמין שפתרת את התרגיל בהצלחה.

אין בתרגיל הזה שום עומס על ריצת הקוד ואם הוא פעול לפי דרישות התרגיל(שים לב להוראה המדויקת הכתובה בספר שלך) אז איך שזה זה בסדר גמור.

שלך, שגיא

eur2 08-01-06 00:18

ציטוט:

נכתב במקור על ידי Sirius-Training.co.il
שלום יבגני,

אני עצמי לא מכיר C, אלא pascal, אך כמובן שהכל זה אותו חרא רק ב syntax שונה...

על פי מה שאני רואה אין סיבוך מיותר בתוכנית שכתבת שכן תהליך הקליטה של הנתונים(X,Y) הוא הכרחי ואי אפשר להימנע ממנו, והתהליך עצמו שמדפיס את הכוביות על המסך הוא לולאה פשוטה שרצה לא מליון פעם, אלא רק 10.

בקיצור, אני אישית לא ממש הבנתי למה קבעת את ערך ה-Y של כל נקודה כa*x[i]*x[i]+b*x[i]+c ... אבל אם זה מביא את התוצאה אז אני מאמין שפתרת את התרגיל בהצלחה.

אין בתרגיל הזה שום עומס על ריצת הקוד ואם הוא פעול לפי דרישות התרגיל(שים לב להוראה המדויקת הכתובה בספר שלך) אז איך שזה זה בסדר גמור.

שלך, שגיא

הערך Y חייב להיות שונה בכל פעם שאני משנה את הX...
ואין לי ספר, המורה **** (לא יפרט אמרתי כבר) מעצבן אותי, וכל הזמן מוריד על דברים כאלה.

ועשיתי שם לולאה אם לא ראית...
PHP קוד:

    for(i=0;i<10;i++) { 
        
gotoxy(x[i],a*x[i]*x[i]+b*x[i]+c); 
        
putchar('*'); 
    } 

סתם דוגמא להורדה בציון: על שם משתנה על משמעותי 7 נקודות פחות, לכו תבינו למה, התוכנית כולה הייתה איזה 10 שורות כולה...

ואני חייב לשמור על ציונים גבוהים...
בגלל זה אני מבקש עזרה...

יבגני

meshuga 08-01-06 00:36

שמע,הקוד מצויין,הקטע של הקורדינציות אידיוטי אבל לא משנה,בכל מקרה,רק תזכור שהמסך זה דבר הפוך...Y מתחיל מלמעלה אז הצעה שלי תעשה -y+24 ואולי זה יצא טוב ,אני לא בטוח במה שאני אומר אבל זה מה שאני עשיתי עם הgraphics קיצר..בהצלחה..

eur2 08-01-06 01:08

ציטוט:

נכתב במקור על ידי meshuga
שמע,הקוד מצויין,הקטע של הקורדינציות אידיוטי אבל לא משנה,בכל מקרה,רק תזכור שהמסך זה דבר הפוך...Y מתחיל מלמעלה אז הצעה שלי תעשה -y+24 ואולי זה יצא טוב ,אני לא בטוח במה שאני אומר אבל זה מה שאני עשיתי עם הgraphics קיצר..בהצלחה..

חוץ מהבאג של קורדינטות שהם חייבים להיות חיוביים... והשיפוע שלילי אני יתקן את זה בלילה..
אבל אפשר לפתור את זה בלי בעיה וגם לעשות שליליים, ועם מערכת צירים למי יש איזה שעה עבודה לי אישית אין לי כוח לעשות את זה למורה...

גם ככה 90 אחוז מהכיתה שלי אין להם מצב להצליח בכלל התרגיל.


יבגני

dgate 09-01-06 16:21

ציטוט:

סתם דוגמא להורדה בציון: על שם משתנה על משמעותי 7 נקודות פחות, לכו תבינו למה, התוכנית כולה הייתה איזה 10 שורות כולה...
המורה שלך צודק ב200%! אלו הם הדרישות של משרד החינוך, ועל דברים כאלה יורידו לך נקודות בבגרות. המורה שלך רק מכין אותך להבא! עדיף שה-7 נק' האלה ירדו במבחן הזה ולא בבגרות.

שם משמעותי למשתנים הוא דבר באמת הכרחי, זה גם יעזור לך לאחר שתתחיל לבנות תוכניות גדולות. זה מונע בלבול.


כל הזמנים הם GMT +2. הזמן כעת הוא 12:32.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ