פורסם 2009 במרץ 2116 שנים בוקר טוב ברצוני לדעת עם איזה משתנה להגדיר את המטריצה הנל : האם מסוג INT או FLOAT והאם צריך להכניס את הנתונים בטבלה אחד אחד ?או יש דרך אחרת?אשמח לדעת איך עליי להתחיל לכתוב את הקוד תודה רבה ושבת שלום [attachment deleted by admin]
פורסם 2009 במרץ 2116 שנים אתה יכול להשתמש בפוינטרים ואז תוכל ליצור וקטור לכל עמודה ולמידע שהוא עם X.XX תגדיר float ולאחרים INT.למען האמת, אם לא יכול להיות אצלך מספרים שליליים בחלק מהמידע אז תשתמש ב- Unsigned Int.תוכל להגדיר את הכל ב-struct ואז השימוש וההוספה של פרטים תהיה מאוד מאוד פשוטה
פורסם 2009 במרץ 2116 שנים מחבר לא למדתי מבנה עדיין רק מערך דו ממדי ורגיל.תוכ לרשום איך הסינטק של הפקודה בבקשה?
פורסם 2009 במרץ 2116 שנים אתה יכול להשתמש בפוינטרים ואז תוכל ליצור וקטור לכל עמודה ולמידע שהוא עם X.XX תגדיר float ולאחרים INT.וככה להפוך את התכנית שלך למסובכת, לא קריאה, ו-bug prone.למען האמת, אם לא יכול להיות אצלך מספרים שליליים בחלק מהמידע אז תשתמש ב- Unsigned Int.איזו סיבה יש לעשות את זה? אתה חושש שבמקרה תעבור את הגבול של 2 בחזקת 30? גם זה סתם יכול ליצור בעיות.תוכל להגדיר את הכל ב-struct ואז השימוש וההוספה של פרטים תהיה מאוד מאוד פשוטהנכון (זה הפתרון האופטימלי), אבל התרגיל דורש מטריצה.אל תשתמש ב-int בכלל, אלא רק במערך של float (אגב, מומלץ גם לא להשתמש ב-float אלא רק ב-double). כל int ניתן לייצוג ע"י double, אבל לא להיפך.
פורסם 2009 במרץ 2116 שנים לא למדתי מבנה עדיין רק מערך דו ממדי ורגיל.תוכ לרשום איך הסינטק של הפקודה בבקשה?באיזה שפה התרגיל? נניח שהתרגיל ב-C.enum { NUM_OF_DAYS = 10 };enum{ RAIN_AMOUNT = 0, MIN_TEMP, MAX_TEMP, AIR_POLLUTION, NUM_OF_COLUMNS};double rain_data[NUM_OF_DAYS][NUM_OF_COLUMNS];int main(){ int day, int column; for (day = 0 ; day < NUM_OF_DAYS; day++) { for (column= 0 ; column < NUM_OF_COLUMNS ; column++) { /* read data here, do range check depending on which column you are reading */ } } return 0;}הערה: אפשר גם לעשות לולאת for אחת (על הימים) ולקלוט את נתוני כל יום בפקודת scanf אחת.הערה נוספת: התרגיל הזה "מלמד" אותך משהו לא נכון - מטריצה (מערך דו מימדי) היא לא הדרך הנכונה להחזיק את הנתונים במקרה זה, בין השאר כי לא כולם מאותו טיפוס ובאותם טווחים. עדיף להשתמש במבנים. אבל אני מבין שעוד לא למדתם מבנים... (עדיין עדיף היה לתת תרגיל שלא מקנה הרגלים מגונים, לא חסרים כאלה.)
פורסם 2009 במרץ 2216 שנים מחבר תודה על העזרהלגבי מלוי המטריצה היות וזה גודל 5*10 אני צריך למלא את הנתונים באופן ידני כלומר רק את הנתוני הממשים שיש לי אמת ?[br]פורסם בתאריך: 23.03.2009 בשעה 00:37:40הי מה הכוונה לENUM שרשמת ?
פורסם 2009 במרץ 2816 שנים מחבר תודה על העזרה -אני זקוק להדרכה נוספת,אני צריך לבדוק בתכנית הנל אם הנתון הגיוני :כמות הגשם אינה עולה על 100 ואינה שלילת...מה היום החם ביותר ?לאחר שבניתי את המטריצה מה השלב הבא שצריך לעשות?איך תתבצע שליפת הנתונים?
פורסם 2009 במרץ 2816 שנים זה נראה שיש לך ש"ב בתכנות אך אינך יודע אפילו לא במעט את החומראולי כדאי שתלמד אותו ?
פורסם 2009 במרץ 2816 שנים אתה יודע איך להכניס מספר למערך? אז אתה גם יודע איך לקרוא מספר ממערך. איפה אתה מתקשה?float rain = data[RAIN_AMOUNT];if (rain > 100.0f || rain < 0.0f) printf("error!\n");
פורסם 2009 במאי 316 שנים מחבר סליחה על העיקוב בהכנת התכנית אבל הכנתי אותה ואני מקבל 3 שגיאות -אשמח להבין איפה הטעיות תודה רבה לעוזרים.=============================================================#include <stdio.h>#include <stdlib.h>void main (){ float mat[10][4]; int i,j; float geshem,minTemp; float maxTemp,air; for (i =0;i<10;i++){printf("Enter Kamut Geshem, min temp, max temp, zihum avir:\n"); scanf("%f %f %f %f",&geshem,&minTemp,&maxtemp,&air);while(geshem<0 || geshem>100);mat[i][j]=(float)geshem;j++;mat[i][j]=(i+1); { printf("Bad Value"); break; } if(minTemp<-10 || minTemp>50 || maxTemp<-10 || maxTemp>50) { printf("Bad Value....."); break; } if(minTemp>maxTemp) { printf("wrong : mintemp cant be higher then max temp"); break; } if(air<0 || air>10) { printf("Bad Value"); break; } printf("\n"); printf("%.1f\t",mat[i][0]= geshem); printf("%f\t",mat[i][1]=minTemp); printf("%f\t",mat[i][2]=maxTemp); printf("%f\t",mat[i][3]=air); } } return 0;}[code]
פורסם 2009 במאי 316 שנים אתה מצפה שננחש מהן השגיאות?בכל מקרה, לא מצאתי שום שגיאות קומפילציה, אבל כמה דברים:א. אתה לא מאתחל את j בשום מקום.ב. השורה הזו:while(geshem<0 || geshem>100);היא לולאה ריקה (בשביל שיהיה בה תוכן, אתה צריך להעיף את ה-; ולשים סוגריים מסולסלים סביב הקוד של הלולאה, כמו ב-for).ג. מה בדיוק עשית כאן? { printf("Bad Value"); break; }אין שם שום if, הקוד הזה תמיד ירוץ.ד. ההמרה בשורה הזו מיותרת (שני הטיפוסים הם כבר float):mat[i][j]=(float)geshem;ה. מה המטרה של השורה הזו?mat[i][j]=(i+1);ו. אתה לא יכול לעשות בתכנית שלך void main ואח"כ לעשות return 0. אתה צריך int main במקום.
פורסם 2009 במאי 316 שנים מחבר mat[j]=(i+1);לקדם את השורה .לגביWHILE אני יכול לעשות את התנאי ב IF נכון ?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.