ABA


"עזרה בשפת C - הדפסת כוכביות בתבנית מסוימת"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #10524 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 10524
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק, -2 נקודות
   02:57   24.11.11   
אל הפורום  
  עזרה בשפת C - הדפסת כוכביות בתבנית מסוימת  
 
   יש לי את התרגיל הבא

זה תרגיל ראשון שקיבלנו לכן אני מנסה לחפש את התחכום מאחורי השאלה

איך אני ניגש לתרגיל כזה? האם אני ממש צריך לחקור את המלבן שאני מקבל נניח רוחב זה 1+n*6
ואורך זה 1+n*12

ואז פשוט לבדוק את זה וכו'?
כאילו בגלל שזה תרגיל ראשון הוא נראה לי קשה מדי ליישום
מה שכן אסור לי להתשמש בפונקציות מעבר לפונקציות בסיסיות של stdio.h ואסור מערכים... רק לולאות
אסור לי גם להשתמש ב- gotoxy()

מישהו יכול לעזור לי בכיוון?


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  זה לא נורא מסובך. אפשר ברקורסיה או לולאות.. לא ממש משנה Zippo  24.11.11 10:56 1
  אבל הקושי הוא גם המסגרות הפנימיות שמתווספות eminem 24.11.11 12:06 2
     מה לא הובן בהסבר הקודם? Zippo  24.11.11 22:59 3
         הצלחתי לבד בסוף... בלי לראות את המימוש eminem 25.11.11 18:53 4
             כל הכבוד! בהצלחה בהמשך...! Zippo  26.11.11 19:34 5

       
Zippo 
חבר מתאריך 26.5.02
7921 הודעות, דרג אמינות חבר זה
   10:56   24.11.11   
אל הפורום  
  1. זה לא נורא מסובך. אפשר ברקורסיה או לולאות.. לא ממש משנה  
בתגובה להודעה מספר 0
 
שים לב שיש לך 3 "מצבים" \ "איזורים" מבחינת שורות.
2n שורות ראשונות
2n+1 שורות אמצעיות
2n שורות אחרונות

לגבי השורות הראשונות והאחרונות, זה פשוט. שורת כוכביות, ושורה שמתחילה ונגמרת ב-i כוכביות, כאשר באמצע יש n-2i רווחים (i הוא מספר השורה - מקודם כל 2 שורות, בשורות האחרונות זה כמובן הולך הפוך: n-i), ומספר הכוכביות להדפסה בכל שורה הוא 2n+n-i (בשורות האחרונות זה 2n+i).

החלק היותר "בעייתי" הוא מה שבאמצע.
אבל גם זה פשוט, מרגע שאתה מתחיל מצב הדפסת X, אתה יכול לספור שורות ולפי זה לדעת כמה כוכביות.
למשל:

בשורה j אתה תדפיס:

n כוכביות
j-1 רווחים
כוכבית
2n -2j -1 רווחים
כוכבית
j-1 רווחים
n כוכביות

כאשר j הוא מספר השורה מתחילת ה-X
כאשר j=n+1
אתה מדפיס רק כוכבית אחת באמצע

n כוכביות
n רווחים
כוכבית
n רווחים
n כוכביות

ומתחיל בדיוק הפוך את מה שעשית עד עכשיו.

תנסה לפרק את הלוגיקה להרבה פונקציות קטנות.
למשל:

void printX(int n) {
...printXTop(n);
...printXCore(n);
...printXButtom(n);
}

void printXTop(int n){
...for(i=0;i<n;i++) {
...printTwoTopRows(i,n)
...}
}

.
.
.



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


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק, -2 נקודות
   12:06   24.11.11   
אל הפורום  
  2. אבל הקושי הוא גם המסגרות הפנימיות שמתווספות  
בתגובה להודעה מספר 0
 
   ברקורסיה אסור לי להשתמש רק בלולאות
אבל גם יש את העניין שאני לא יכול לנווט לכל מקום שאני רוצה עם הסמן

אני צריך לרשום הכל תוך כדי וזה הקושי...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zippo 
חבר מתאריך 26.5.02
7921 הודעות, דרג אמינות חבר זה
   22:59   24.11.11   
אל הפורום  
  3. מה לא הובן בהסבר הקודם?  
בתגובה להודעה מספר 2
 
אני לא הולך לכתוב לך את הקוד, וסביר להניח שאף אחד אחר פה לא יתנדב.
אבל זה לא קשה.

הנה התחלה של מימוש:
http://pastebin.com/tupUwq1Z

את השאר תעשה לבד...


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
eminem
חבר מתאריך 14.11.03
4348 הודעות, 1 פידבק, -2 נקודות
   18:53   25.11.11   
אל הפורום  
  4. הצלחתי לבד בסוף... בלי לראות את המימוש  
בתגובה להודעה מספר 3
 
   ולא התכוונתי שתכתוב לי פה קוד אלא סוג של הסבר או טכניקה

תודה על העזרה


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
Zippo 
חבר מתאריך 26.5.02
7921 הודעות, דרג אמינות חבר זה
   19:34   26.11.11   
אל הפורום  
  5. כל הכבוד! בהצלחה בהמשך...!  
בתגובה להודעה מספר 4
 


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net