עזרה

pilot23

New member
עזרה

שלום,
אשמל לקבל עזרה בסעיף שאני לא מצליחה בעבודה.
התרגיל מצורף בקובץ... בתחילת הקובץ יש כל מני הגבלות, ואח"כ הסעיף עצמו.
חשוב לציין כי מותר לי להשתמש בדברים הבאים : if,elseif,while, do while,putchar,getchar,gets,for,מערכים, scanf,printf, מחרוזות, &&, >,< , =,define, continue,break.
אסור: פונקציות, ספריות מתמטיות מלבד stdio.h, פויינטרים, return.
אנחנו רושמים תוכניות עם void main בהתחלה ולא int main.
אני יודעת בערך מה הולך פה רק לא ממש יודעת לרשום את זה ב- C:
המטריצה קולטת שתי שורות... איך אני רושמת שהיא קולטת שתי שורות באופן כללי? ( הרי אני לא יכולה באופן ספציפי).
אני מניחה שאני צריכה לולאת for כדי שתסרוק את השורות .. לא ?

תודה.
 

KingUnique

New member
מערכים

המטריצה קולטת שתי שורות... איך אני רושמת שהיא קולטת שתי שורות באופן כללי? ( הרי אני לא יכולה באופן ספציפי).


אם תקראי קצת על מערכים התשובה תבוא מעצמה.
 

nocgod

New member
ככה אני רואה שלא הקשבת להצעה שלי

אבל אני אנסה שוב
The C Programming language של Brian Kernighan ו Dennis Ritchie
עמוד 23
ממליץ לך ללמוד לעומק את:
פרק 1,
פרק 2 (לא כולל 2.9 עד כמה שאני ידוע לא מלמדים אותו, ובלי בסיס במספרים בינארים לא תביני מה הולך שם בכל מקרה)
פרק 3 (3.8 ממולץ להכיר שקיים ולדעת לעולם לא להשתמש בזה)
פרק 4, ללמוד בעל פה להבין ולתרגל
פרק 5 - אם נכלל בסילבוס הקורס

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

pilot23

New member
תגובה

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

YardenBu

New member
הספר הזה באנגלית פשוטה יחסית?

יש לך המלצה גם לספר טוב בעברית? תודה
 

YardenBu

New member
תודה

 

nocgod

New member
הספר באנגלית

למי פשוטה יותר למי פשוטה פחות... הספר ברור וההסברים טובים, אם לא מבינים משהו מילון הוא הפיתרון הכי טוב

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

YardenBu

New member
נצל"ש, שאלה על הבדלים בקוד, GETCHAR

ניסיתי לעשות לולאת DO WHILE עם GETCHAR. הראשונה היא:
do {
printf ("choose\n");
choice = getchar();
getchar();
}
while (choice!=1);
printf ("ok\n");


השנייה היא:
do {
printf ("choose\n");
choice = getchar();
getchar();
}
while (choice!='1'); // changed part
printf ("ok\n");


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

Guy Yafe

New member
ההבדל מהותי

הביטוי '1' הוא ערך הASCII של התו '1' (הוא שווה ל-49).
כשאת מכניסה את התו '1', הוא נראה בזיכרון בתור המספר 49.
זה שונה מהותית מהערך 1 שבדקת בהתחלה. זה בכלל לא תו שמודפס על המסך.
היכנסי לאתר הבא ותראי למה שווה כל אחד מהתווים שמודפסים על המסך:
http://www.asciitable.com/
 

YardenBu

New member
ואם הייתי קולטת את זה עם סקן אף, מה היה

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

Guy Yafe

New member
זה תלוי

אם היית משתמשת ב - scanf היית יכולה לבחור בין שימוש ב - c% לבין שימוש ב - d%. האפשרות הראשונה הייתה מתייחסת לקריאה כאל קריאה לתוך תו ולכן הייתה מכניסה את הערך של '1' (49). האפשרות השנייה היתה מתייחסת לקריאה כאל קריאה לתוך מספר ולכן הייתה מכניסה את הערך 1.
אם את רוצה לקרוא רק תו אחד, לא מומלץ להשתמש בפונקצייה הזו. קראי את הדף הבא ליותר מידע.
http://www.gidnetwork.com/b-60.html

לשאלה השנייה שלך:
למען הנוחות כל עמודה מראה את אותו ערך אבל בייצוג אחר: דצימלי (בסיס 10), הקסאדצימלי (בסיס 16), אוקטאלי (בסיס 8) וHTML. כל הערכים האלה הם מה שנשמר בזיכרון ומייצגים את אותו מספר.
אין קשר בין הטבלה לבין שפת C. הטבלה מראה לך את המוסכמה הבינלאומית בעולם המחשבים לייצוג של תווים מסויימים במחשב. זה יהיה נכון לכל שפת תכנות אחרת, לכל מערכת ולכל מחשב (אני מניח שיש יוצאים מן הכלל אבל אם לא רלוונטיי)
 

Guy Yafe

New member
את יכולה לפרט קצת יותר?

מה את אמורה לעשות בסעיף 1?
מה הכוונה בכך ש"המטריצה קולטת 2 שורות"?
אני רואה מטריצה שהיא עד 10X10. מי מכניס את המטריצה?
האם את יכולה להעלות את כל המטלה?
 
למעלה