פורסם 2004 בספטמבר 721 שנים שלום, קיבלתי היום במסגרת שיעורי מדעי המחשב ב' (חזרה על החומר של א') תרגיל.להלן המשימה, איך שפירקתי אותה(זה לא נדרש במשימה) לתת משימות ומה שניסיתי לעשות בשפת C אבל לא ממש עובד...תרגיל כיתה: צור לולאה שתבדוק אילו מספרים בין 20-70 הוא ראשוני.שיעורי בית: כתוב קטע תוכנית המדפיסה את כל המספרים הראשוניים בין 20-700.ראשוני מתחלק בעצמו ובאחדלעשות for שרץ מ1+ עד 699.לעשות for פנימי שמחלק את מונה הפור הראשי במונה הפור הפנימי. אם תתגלה תוצאה "שארית=0" אז הערך 1 יושם במשתנה flag. כאשר תגמר הפעולה בפור הפנימי יבדק: אם flag לא שווה אז יודפס ערכה של מונה הלולאה הראשית. כעת מתחילה מהתחלה הלולאה עד שמונה יהיה שווה ל699.#include <stdio.h>#include <conio.h>void main(){int flag=0,i=0,c,j;rdfor(c=0;c<=I;c++){for(j=1;j<c;j++){if (i%j==0) flag=1;}if (flag!=1) printf("%d",i);אם משהו לא מובן לכם תגידו לי, יכול להיות שזה יקרה כי כתבתי את זה בזמן השיעור (ולא ציפיתי שמישהו אחר יקרא את זה אח"כ).תודה רבה רבה!Vega
פורסם 2004 בספטמבר 721 שנים היה לך בלבול קטן עם המשתנים.תנסה ככה:void main(){int flag=0,c,j;for(c=1;c<=700;c++){ for(j=1;j<c;j++) if (c%j==0) flag=1; if (flag!=1) printf("%d",c);}}
פורסם 2004 בספטמבר 721 שנים דבר שני תעשה שהטקסט יופיע בצד שמאל שיהיה נוח לקריאה ואל תשכח טאביםדבר שלישי הדיבגר הפסיק לעבוד??הייתי שם ברייקפויינט ורואה שהלולאה יוצאת אחריי פעם אחת ומבין שמשהו בתנאי לא נכון
פורסם 2004 בספטמבר 721 שנים מה הקומפיילר אומר כשאתה מריף את זהזה נראה כי שכחת לסגור צומדיים ורשמת DS בסוף השורה של הINT
פורסם 2004 בספטמבר 721 שנים מחבר תודה על העזרה, ואחלה קוד. אבל קשה קצת להבין מה בדיוק שינית, תוכל להסביר לי?כמו כן, דבר נוסף - מישהו מוכן להסביר לי איך עושים scoring (רווחים), כלומר שמזיזים כל פעם את הקוד שורה קדימה או שתי שורות כדי שיהיה נוח יותר לקרוא...
פורסם 2004 בספטמבר 721 שנים מחבר אחי, הקוד שהבאתי לי לא עובד, זה פשוט לא רושם כלום. (אין התראת דיבגר).
פורסם 2004 בספטמבר 721 שנים #include<stdio.h>#include<conio.h>void main(){int i,j,flag;clrscr();flag=0;for (i=2,i<700,i++){ for (j=2,j<i,j++){ if (i%j==0) flag++; } if (flag>0) printf("%d ",i); if (i==2) printf("2 "); flag=0;}getch();}אני חושב שזה יעבוד אבל לא ניסיתי כי אני לאבמחשב שלי (הוא מת כרגע)חבל שהוא מת כרגע,כי אני כתבתי פעם תוכניתממש טובה שעושה את זהלא יצא לי בדיוק לחשוב איך לעשות שגם 2 יעבוד,אז הוספתי לו שורה,אבל יכול להיות שהיא מיותרת,אם 2 יודפס לך פעמיים,אז תמחוק את הIF ואת השורהשמדפיסה "2" וזה יעבוד (אני חושב)
פורסם 2004 בספטמבר 721 שנים מחבר ניסיון נוסף שלי, בבקשה תעזור לי זה דחוף למחר - יש לי שיעור עם מרכז המגמה....!#include<stdio.h>#include<conio.h>void main(){int i,j,flag=0,c;clrscr();flag=0;for (i=20;i<=700;i++){ for(j=3;j<(i/2);j++) { if(i%j==0 && i!=1 && i!=j) printf("%d \n",i); }}getch();}
פורסם 2004 בספטמבר 721 שנים דבר ראשון תיישר תמיד לשמאלזה מעצבן ככהשנית,האם בדקת אם מה שאני כתבתי עובד?אומנם כתבתי את זה על 2-699 (כולל)אבל לא נורא,לא יהיה קשה לשנותעכשיו ככה,למה כתבת את זה: j<(i/2)לא הבנתי למהוגם את זה לא:i!=1הרי I לא יכול להיות שווה לאחד,הכי קטן שהוא יהיה זה 20שנית,אתה לא משתמש בFLAG,או שתשתמש או שתמחוק אותושלישית,אותו הדבר עם Cרביעית,לא הבנתי את זה, שהרי תמיד זה יהיה נכון:i!=jI לא יכול להיות שווה לJ כי הלולאה של J רצה רק עד חצי I (שוב,לא הבנתי למה)תנסה לעקוב אחרי התוכנית שאני כתבתי בתור טיוטהאני חושב שהיא עובדת,אם לא אני מצטער אבל מאוחר ואני הולך לישון בקרובלא יהיה לי זמן לכתוב שוב
פורסם 2004 בספטמבר 721 שנים הריצה עד חצי i היא בשביל לחסוך זמן ריצה, לא יכול להיות שמספר יתחלק במספר הגדול מחצי ממנו. לכן מספיק לבדוק אם הוא מתחלק בכל המספרים מ-2 עד מחצית ממנו.חוץ מזה התוכנית שלך ממש לא נכונה vega
פורסם 2004 בספטמבר 721 שנים צודק לא חשבתי על זהאבל חסיכת זמן ריצה זאת לא הבעיה שלי,קודם שיעבוד בלי בעיות,אחרי זה נדברהתוכנית שכתבתי נמצאת כמה תגובות למעלה בתגובה שלי (דאאא)
פורסם 2004 בספטמבר 721 שנים מחבר כן, אני מודע לזה ומוזר לי שלא הכנסתי את זה בקוד, כנראה שטעיתי.. אני די שיכור מעייפות. תשמע אני ממש לא רוצה להיות מהאנשים המעצבנים האלה שבאים ומבקשים ש"יעשו להם" את השיעורי בית אבל ישבתי על זה יותר משעתיים וכל החברים שלי עסוקים בפיזיקה ואני פשוט חייב להביא את זה מחר לרכז של המגמה שלי או שהוא קוצץ ראשים.. :S:S אנא ממך Holy, הושיעני!
פורסם 2004 בספטמבר 721 שנים בדקת האם התוכנית שאני כתבתי תעבוד?אני חושב שכן,אבל אני לא בטוח ואין לי קומפיילר כאןאז אני לא יכול לבדוקהיא אומנם רצה מ2 עד 699,אבלאפשר לשנות את זה ל20 עד 700 בלי שום בעיהאני הלכתי לישון,מקווה שהתוכנית תעזור לך,אם לא,אני מצטער מראש
פורסם 2004 בספטמבר 721 שנים מחבר #include<stdio.h>#include<conio.h>void main(){int i,j,flag;clrscr();flag=0;for (i=2,i<700,i++){ for (j=2,j<i,j++){ if (i%j==0) flag++; } if (flag>0) printf("%d ",i); if (i==2) printf("2 "); flag=0;}getch();}תקלה בשורה 8 - Unexpected > check parenthesis in function main...WTF?
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.