משולש פסקל - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

משולש פסקל


generalA

Recommended Posts

מישהו יכול לומר לי איך אני רושם תוכנית ב- Matlab כאשר הוא קולט מהמשתמש מספר ומוציא משולש פסקל

משולש פסקל מתאר את המקדמים של הנוסחאות לפיתוח בינום:

אם נסמן את המקדמים של האברים נקבל :

1

1 1

1 2 1

1 3 3 1

כל איבר מתקבל מסכום של שני איברים מהשורה הקודמת : האיבר שמעליו והאיבר הקודם לו.

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

הדרכה :

התחל מהשורה הראשונה המכילה 1.

שים לב האיבר הראשון והאיבר האחרון בכל שורה שווה ל 1.

קישור לתוכן
שתף באתרים אחרים

תיצור כל פעם וקטור בגודל N-1(N זה הגודל האחרון שחישבת לו). תעבור בלולאה (או שתרפד ואז לא צריך לולאה) ותחשב עבור כל איבר את הסכום של ה- 2 שמעליו. לאחר מכן תוסיף 1 בשני הקצוות של הווקטור. ככה תעשה כמה שלבים(וכמה שורות) שביקשו ממך. את כל מה שרשמתי לך אתה יכול לשים בלולאה אחת גדולה ולא לרשום הרבה(אני מניח שכבר חשבת על זה לבד).

קישור לתוכן
שתף באתרים אחרים

מה קורה אחי

אני לא יודע ממש מה זאת שפת Matlab

אבל הנה קוד בשפת c שרשמתי פעם של משולש פסקל

#include<stdio.h>
#include<conio.h>



const width=12;
const height=12;

int pas[height][width];
void init_pas(void);
void print(void);
void PASCAL(void);
void main(void)

{
clrscr();
init_pas();
PASCAL();
print();
getch();

}
void init_pas(void)
{
int i=0,j=0;
for (i=0;i<height;i++)
{
for (j=0;j<width;j++)
{
pas[i][j]=0;
}
}
for (i=0;i<height;i++)
{
pas[i][i]=1;
pas[i][0]=1;
}

}
void print(void)
{
int i,j,space=2;
for (i=1;i<height;i++)
{
for (j=0;j<i+1;j++)
{
gotoxy((30-i*2)+j*4,i+10);
printf("%d",pas[i][j]);
}
}
}
void PASCAL(void)
{
int i,j;
for (i=1;i<height;i++)
{
for (j=1;j<width-1;j++)
{
pas[i][j]=pas[i-1][j-1]+pas[i-1][j];
}
}

}

:xyxthumbs:

קישור לתוכן
שתף באתרים אחרים

shiz,

אני גם כתבתי תוכנית כזאת והקוד שלך היה נראה לי מוזר מעט. הלכתי ל-VS C++ והוא לא רץ.

השגיאות:

error C2065: 'clrscr' : undeclared identifier
error C2065: 'gotoxy' : undeclared identifier

אולי הפונקציות האלה לא עובדת בקומפיילר הזה? :P

קישור לתוכן
שתף באתרים אחרים

עכשיו עובד. :xyxthumbs:

הקוד עובד טוב רק שהוא שוכח את השורה הראשונה ומשום מה מדלג כמה שורות ומשאיר בצדדים רווח לא זהה... :P

(טוב, מה אני מקטר. אין לי כלל זכות. אצלי זה יוצא כמו משולש ישר זווית... ;D)

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...