התוכנה של שפת C - עמוד 3 - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

התוכנה של שפת C


slimshady21

Recommended Posts

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

מאיפה אתה הורדת את זה? אתה לא יכול להביא לי קישור?

ואחי אין לי אייסי, אפשר בפרטי. אבל למה מה הבעיה למה אי אפשר פה?

קישור לתוכן
שתף באתרים אחרים

  • תגובות 79
  • נוצר
  • תגובה אחרונה

תודה, כבר התקנתי את זה וזה לא עבד טוב, אז קיצר אני חוזר לגרסה 4.5 שעבדה הכי נורמלי אצלי.

עכשיו רק דבר אחד, הנה כתבתי תוכנה שמכניסים בה 3 מספרים והיא מחשבת את הממוצע שלהם:

http://pics.sendit.co.il/pic/d556605265.jpg

ואני אני מפעיל אותה, ואני מכניס 3 מספרים והכל, ואז היא מראה לי את התוצאה:

d6788731a0.jpg

קישור לתוכן
שתף באתרים אחרים

וואלה אחי עשיתי מה שאמרת וזה הלך טוב. אבל איך זה הגיוני? הרי לפי מה שכתוב במדריך ב-UNDERWAR , הסימן if% מציין מספר רציונלי. ומספר שלם זה בכלל d% . וחוץ מזה התוכנה עצמה שכתבתי עכשיו היא מועתקת מהמדריך וככה זה כתוב שם בדיוק....

עריכה: וואי עכשיו בדקתי במדריך אחר, וראיתי משתנה דומה שנקרא FLOAT, שאפשר להכניס בו כל מספר (שלם או רציונלי) ובתוצאה (של חיבור/חיסור וכו') הוא מציג את התוצאה בדיוק, גם אם מכניסים מספרים שלמים, וגם אפשר להכניס ערכים גדולים יותר. אז למה בעצם צריך את DOUBLE?

קישור לתוכן
שתף באתרים אחרים

אין לי מושג מה זה אומר if, אולי זו סתם שגיאת דפוס.

מספר שלם זה יכול להיות d או i.

תקרא כאן http://www.cplusplus.com/ref/cstdio/printf.html

Double הוא קיצור של double precision floating point.

(בניגוד ל-float, שהוא סתם קיצור של floating point)

double משתמש ביותר ביטים בשביל לייצג את המספר (במעבדי 32 ביט, float הוא 16 ביט ו-double הוא 32 ביט), ולכן מגיע לרמת דיוק יותר גבוהה.

פעם (על מעבדי 16 ביט) היה עדיף להשתמש ב-float, כי העבודה איתו הייתה יותר מהירה מאשר עם double וגם הוא תופס פחות מקום.

היום עדיף לעבוד עם double, כי ה-ALU (יחידת העיבוד האריתמטית) עובדת עם double-ים ולא עם float-ים. הסיבה היחידה להשתמש ב-float-ים היא אם באמת ההבדל בגודל משמעותי מבחינתך.

קישור לתוכן
שתף באתרים אחרים

הנה תראה במדריכים פה:http://www.underwar.co.il/library.asp?Page=Programming

ופה: http://clang.eitan.ac.il/index.php?doc=chp&id=2

אומרים ש-%IF זה הסימן שמשתמשים לDOUBLE.

זה לא יכול להיות שגיאת כתיב כי זה מופיע בכל המדריך ככה...

ולא הבנתי איך בדיוק DOUBLE \ה יותר מדוייק?

הנה קח לדוגמא את התוכנית הזו:

f3c5680846.jpg

כאן אתה יכול לכתוב איזה שני מספרים שבא לך- שלמים או שברים - והתוצאה תיהיה מדויקת.

לעומת זאת אם תשנה לDOUBLE בכלל לא תיהיה תוצאה קשורה, וכדי לקבל תוצאה בעזרת DOUBLE נראה לי שצריך לעשות CASTING או משהו כזה....

וגם אתה יכול להכניס בFLOAT ערך גדול יותר. אז למה להתסבך סתם?

אולי תראה לי דוגמא לשימוש בDOUBLE כך שלא משנה איזה שני מספרים תכניס- התוצאה תיהיה טובה

קישור לתוכן
שתף באתרים אחרים

א) מה זה מדוייק יותר?

ב) לא משנה המספר הכי גבוה שאתה יכול להכניס, אלא מספר הספרות הנכונות אחרי הנקודה.

ג) אם אתה רוצה מספר ממש גדול, עם דיוק, תיקח 2 LONGים - אחד יהייה אחרי הנקודה, ואחד אחרי(אתה יכול ליצור ממשק שיממש את זה).

קישור לתוכן
שתף באתרים אחרים

זה לא רק מספר גדול, זה כל מספר.

יודע מה תראה לי תוכנית שקולטת מהמשתמש 2 מספרים, ומדפיסה את החיבור שלהם . או תוכנית, שקולטת 3 מספרים ומדפיסה את הממוצע שלהם .

בשימוש בDOUBLE כמובן

קישור לתוכן
שתף באתרים אחרים

מדויק יותר = אתה יכול לשים יותר ספרות אחרי הנקודה.

ולגבי ה-if - זה lf, לא if (כלומר L ולא I). זה לא שגיאת כתיב :)

במקרה הפשוט שנתת באמת אין עדיפות של double על float, אבל יש במקרים של חישובים יותר מורכבים יש עדיפות.

אם נניח אני ארצה לחשב ממוצע של מספרים קצת יותר מסובכים, כמו 5.246982398794 + 6.34987928734, עדיף להשתמש ב-double.

קישור לתוכן
שתף באתרים אחרים

אין לי מושג מה זה אומר if, אולי זו סתם שגיאת דפוס.

מספר שלם זה יכול להיות d או i.

תקרא כאן http://www.cplusplus.com/ref/cstdio/printf.html

Double הוא קיצור של double precision floating point.

(בניגוד ל-float, שהוא סתם קיצור של floating point)

double משתמש ביותר ביטים בשביל לייצג את המספר (במעבדי 32 ביט, float הוא 16 ביט ו-double הוא 32 ביט), ולכן מגיע לרמת דיוק יותר גבוהה.

פעם (על מעבדי 16 ביט) היה עדיף להשתמש ב-float, כי העבודה איתו הייתה יותר מהירה מאשר עם double וגם הוא תופס פחות מקום.

היום עדיף לעבוד עם double, כי ה-ALU (יחידת העיבוד האריתמטית) עובדת עם double-ים ולא עם float-ים. הסיבה היחידה להשתמש ב-float-ים היא אם באמת ההבדל בגודל משמעותי מבחינתך.

בתיקון קל - ברוב המעבדים היום וכן בתקנים הנפוצים (לדוגמא IEEE 754) מספרי single precision הם 32bit ו-double הם 64bit.

על כן double יהיה 64 ו-float יהיה 32.

קישור לתוכן
שתף באתרים אחרים

double d1, d1;
scanf("%f%f", &d1, %d2);
printf("%f", (d1+d1)/2);

אני לא מבין מה הבעיה.

תראה מה הבעיה- כתבתי את התוכנית הזאתי (רק עם תיקונים קטנים, שמת % במקום &, ורשמת פעמיים D1). ותראה מה התוצאה הייתה:

032e4a3d15.jpg

מדויק יותר = אתה יכול לשים יותר ספרות אחרי הנקודה.

ולגבי ה-if - זה lf, לא if (כלומר L ולא I). זה לא שגיאת כתיב :)

במקרה הפשוט שנתת באמת אין עדיפות של double על float, אבל יש במקרים של חישובים יותר מורכבים יש עדיפות.

אם נניח אני ארצה לחשב ממוצע של מספרים קצת יותר מסובכים, כמו 5.246982398794 + 6.34987928734, עדיף להשתמש ב-double.

רגע אז מתי צריך להשתמש בLF ?

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.


×
  • צור חדש...