הגעת למגבלת הצפייה למשתמשים שאינם רשומים באתר
  • נשמח אם תצטרפו לקהילה שלנו. הרשמה לאתר תקנה לכם את האפשרות לשאול שאלות ולהגיב לשרשורים באתר ללא כל עלות
  • טופס ההרשמה לאתר נמצא כאן למטה ולוקח פחות מ-30 שניות למלא אותו (כן, בדקנו עם סטופר 🤓)

שאלה קלה מאוד בתיכנות c

  • פותח/ת השרשור talp
  • פורסם בתאריך
כל העולם שאתה מכיר אולי.
אני דווקא מכיר מהנדסי אלקטרוניקה שעובדים עם C במיקרו פרוססורים, אבל אני לא מכיר מתכנתים בשום מקום שעובדים עם C, זה סתם עוול לתכנת בשפה שלא מונחת עצמים.
 
אני דווקא מכיר מהנדסי אלקטרוניקה שעובדים עם C במיקרו פרוססורים, אבל אני לא מכיר מתכנתים בשום מקום שעובדים עם C, זה סתם עוול לתכנת בשפה שלא מונחת עצמים.

אתה יכול לתכנת תכנות מונחה עצמים ב C. אין בזה שום דבר מיוחד.
לגבי מתכנתים - יש המון.
 
אתה יכול לתכנת תכנות מונחה עצמים ב C. אין בזה שום דבר מיוחד.
לגבי מתכנתים - יש המון.
אתה לא מדוייק, אין תכנות מונחה עצמים ב-C, יש תכנות מונחה עצמים ב-C++ ו-C#

בקיצור אני חשבתי שאתה מדבר על C, חזלש את מה שאמרתי, אחלה שפות.
 
אתה לא מדוייק, אין תכנות מונחה עצמים ב-C, יש תכנות מונחה עצמים ב-C++ ו-C#

בקיצור אני חשבתי שאתה מדבר על C, חזלש את מה שאמרתי, אחלה שפות.

התכוונתי למה שאמרתי.
http://www.cs.rit.edu/~ats/books/ooc.pdf

C++ זה זבל.
אין מונחה עצמים בc.
Cpp זה c עם קלאסים

ראה הנ"ל.
 
  • פותח/ת השרשור
  • #26
טוב בקיצור חבר הסביר לי מה הטעות מאחוריי התרגיל.. קלטתי ערך למערך ואחרי זה קידמתי את האינדקס לאיבר שבא אחריו שהוא זבל (לא קלטתי אותו) והשווה אותו לאיבר הראשון במערך.. וכמובן שזה לא יעבוד.. התשובה: לשים את ה i++ לפני הscanf וכמובן שלהתחיל את הלולאה באחד פחות מה שהיה קודם(בכניסה ללולאה זה מעלה ב1)

אפשר לנעול או להמשיך להטריל:)

תודה לכולם

נ.ב. המתרגל הבן **** שלח מייל ואמר לא להשתמש במערך בתרגיל הזה אז כל זה לחינם ;/
(התרגיל יותר מסובך, אבל רציתי להשתמש בחלק ממנו במערך)
אגב עוד חודשיים וקצת סימסטר ב ואיתו ג׳אווה -מונחה עצמים
 
ההבדל בין C ל-JAVA זה כמו ההבדל בין חיידק לנמר.

אבל בכל אופן, אחרי שמתרגלים לתכנות מונחה עצמים, מי בכלל ינסה לתכנת ב-C, סתם לסבול.
לסבול? מתכנתי c וקובול מרוויחים יותר מכל מתכנת ג'אווה ממוצע
 
מה ההגיון להשתמש במערך עם איבר אחד ולהשוות אליו?באותה מידה יכולת לקלוט INT אחד,וכל פעם להשוות אותו לקליטה הבאה.
 
זה חלק קטן מהתרגיל!!
גם ה i לא עושה שום דבר בתוך הלולאה,רק משתמש בו בתור קאונטר,ואז אין טעם למערך.
אולי התכוונת לעשות

קוד:
int i=0;
scanf("%d",&a[0]);
do{
scanf("%d",&a[++i]);
}
while(a[0]!=a[i])
 
  • פותח/ת השרשור
  • #31
מי שרוצה "אתגר".

קיבלנו תרגיל ש.ב. לעשות תוכנית שתמצא ותדפיס לי את כל מספרי ה"קרמייקל" עד גבול מסויים (10,000)
מספר קרמייקל:
א. מורכב מכפל של מספרים ראשוניים (שלא מתחלקים בכלום חוץ מעצמם ו 1)
ב. בנוסף: כל מחלק P וכל מספר קרמייקל N מקיימים: n-1/p-1 מספר שלם. כלומר המספר קרמייקל פחות 1 מתחלק בכל המחלקים הראשוניים שלו פחות 1.

למשל: 561 הוא המספר הקרמייקל הקטן ביותר, הוא מורכב מכפל של 3*11*17. וגם 560 מתחלק ב 2,10 ו 16 (החסרתי 1 מהמספר ומהמכפלות הראשוניות שלו).

ולהראות לכם שבאמת הצלחתי ואני לא מחפש תשובה מאף אחד:
12270157_10207147981472193_789302903_n.jpg
 
אני צריך לעשות תוכנית שתקלוט מערך בגודל לא ידוע ותעצר כשהאיבר השני ומעלה יהיה שווה לאיבר הראשון.
למשל: 1,2,3,2,1
כאשר 1 הוא ראשון אצלי, אז בפעם הבאה ששוב אני אקלוט 1 הלולאה תעצר לאחר קליטתו.

אני רוצה לעשות את זה בdo while, הצלחתי לעשות בfor אבל אני דווקא רוצה do while.
אז תגידו לי מה לא תקין בבקשה 😃

i=0;
do
{
scanf("%d",&a
i++;
}
while (a!=a[0]);


a זה מערך, i סופר לי כמה ערכים הכנסתי ומראה לי תמיד את האינדיקטור למה שנכנס אחרון.
(הרישום לא נראה טוב בגלל ההזזה, אז תשימו לב.
ניסיתי גם לקרוא 2 משתנים מחוץ לdo (זה המינימום משתנים שאני קולט) ואז שלא יקרה מצב שאני משווה את a[0] לאיזה זבל a[1] ועדיין לא עבד.
ככה בשביל ידע כללי, do while נחשב BAD PRACTICE כיום בתעשייה, גוגל לא מרשים שימוש של זה בקוד, וגם חברות אחרות, בכל אופן בכל שפה שהשפה תומכת בסינטקס של do while עדיף להימנע מזה עד כמה שאפשר.
התכוונתי למה שאמרתי.
http://www.cs.rit.edu/~ats/books/ooc.pdf

C++ זה זבל.


ראה הנ"ל.
fuck c
 
  • פותח/ת השרשור
  • #33
ככה בשביל ידע כללי, do while נחשב BAD PRACTICE כיום בתעשייה, גוגל לא מרשים שימוש של זה בקוד, וגם חברות אחרות, בכל אופן בכל שפה שהשפה תומכת בסינטקס של do while עדיף להימנע מזה עד כמה שאפשר.

fuck c
כן העפתי אותו לעזאזל... אתה יכול לפרט למה?
כאילו זה מתכון לבאגים?
 
כן העפתי אותו לעזאזל... אתה יכול לפרט למה?
כאילו זה מתכון לבאגים?

תיקון למה שרשמתי:
לא מצאתי לצערי את ההתיחסות בCODE STYLE של גוגל למקרה הזה, הייתי בטוח שראיתי את זה שם. (גם ב STYLE ל JAVA לא ראיתי)

בכל אופן הנה משהו אם "רפרנס" כמו שאוהבים פה.

ציטוט של יוצר ה C++

From "The C++ Programming Language", 6.3.3:

In my experience, the do-statement is a source of errors and confusion. The reason is that its body is always executed once before the condition is evaluated. However, for the body to work correctly, something very much like the condition must hold even the first time through. More often than I would have guessed, I have found that condition not to hold as expected either when the program was first written and tested, or later after the code preceding it has been modified. I also prefer the condition "up front where I can see it." Consequently, I tend to avoid do-statements. -Bjarne


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

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

בסופו של דבר הכל תלוי ב CODE STYLE של החברה שבה אתה נמצא.
 
יופי, ציטוט של בן אדם שיצר שפה נוראית. כל כמה זמן יש אופנה חדשה של לא להשתמש במשהו וכולם לוקחים את זה כחוק חקוק באבן. זה שנהוג לא להשתמש ב goto לא אומר שאין מצבים בהם יותר הגיוני כן להשתמש בו. לגבי do-while זה בכלל מגוחך.
 
יופי, ציטוט של בן אדם שיצר שפה נוראית. כל כמה זמן יש אופנה חדשה של לא להשתמש במשהו וכולם לוקחים את זה כחוק חקוק באבן. זה שנהוג לא להשתמש ב goto לא אומר שאין מצבים בהם יותר הגיוני כן להשתמש בו. לגבי do-while זה בכלל מגוחך.

Considered Harmful Essays Considered Harmful.
 
מי שרוצה "אתגר".

קיבלנו תרגיל ש.ב. לעשות תוכנית שתמצא ותדפיס לי את כל מספרי ה"קרמייקל" עד גבול מסויים (10,000)
מספר קרמייקל:
א. מורכב מכפל של מספרים ראשוניים (שלא מתחלקים בכלום חוץ מעצמם ו 1)
ב. בנוסף: כל מחלק P וכל מספר קרמייקל N מקיימים: n-1/p-1 מספר שלם. כלומר המספר קרמייקל פחות 1 מתחלק בכל המחלקים הראשוניים שלו פחות 1.

למשל: 561 הוא המספר הקרמייקל הקטן ביותר, הוא מורכב מכפל של 3*11*17. וגם 560 מתחלק ב 2,10 ו 16 (החסרתי 1 מהמספר ומהמכפלות הראשוניות שלו).

ולהראות לכם שבאמת הצלחתי ואני לא מחפש תשובה מאף אחד:
צפה בקובץ המצורף 31335
אתה יכול לעשות את זה יותר יעיל,1.7 שניות ל10000 זה הרבה מאוד זמן(תכוון לפחות מ0.1 שניות)
 
  • פותח/ת השרשור
  • #38
אתה יכול לעשות את זה יותר יעיל,1.7 שניות ל10000 זה הרבה מאוד זמן(תכוון לפחות מ0.1 שניות)
זה לפני שניסיתי בכלל יעילות.. מה גם שלא למדתי עדיין יעילות
 
שימו לב! השרשור ישן: לא היו תגובות בשרשור מעל 90 יום.

ייתכן שהתוכן בשרשור כבר אינו רלוונטי ולכן עדיף לפתוח שרשור חדש.
Back
למעלה תחתית