עבור לתוכן

שאלה - שפת C

Featured Replies

פורסם

אני לומד שפת C בבצפר...

כתבנו תוכנית שתצייר ריבוע עם כוכביות.

הנה התוכנית:


[left]#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
void main ()
{
int n,j,i;
printf ("enter the hight: \n");
scanf ("%d",&n);
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
{
printf ("*");
delay(500);
}
printf ("\n");
}
}[/left]

למי שלא הבין, נגיד מכניסים את המספר 2 אז המחשב כותב את זה:

**

**

(יוצא ריבוע)

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

*

**

***

****

מספר השורות אמור להיות כמספר שמכניסים למשתנה...

יש למשהו מושג איך עושים את זה?

תודה :)

פורסם

קודם כל, שני דברים קטנים:

1. את הקוד שלך תכניס לטג קוד (כפתור # למעלה) כדי שיראה יותר טוב.

2. נהוג לכתוב int main ולא void main (זה לא תקני).

ולגבי השאלה שלך:

תחשוב על זה ככה - כרגע, עבור כל ערך של i, אתה עושה לולאה שמדפיסה n כוכביות.

מה שאתה רוצה לעשות הוא ככה - כש-i שווה 0, לעשות לולאה שתדפיס כוכבית אחת. כש-i שווה 1, לעשות לולאה שתדפיס 2 כוכביות. כש-i שווה 3, הלולאה תדפיס 3 כוכביות.... יש מבין?

פורסם
  • מחבר

יואו אחי הצלחתי!!!!

איזה כיף! חחח

אבל הצלחתי הפוך :(

שיניתי בFOR הפנימי את השדה הראשון לJ=I. ככה כל שורה הוא עושה פחות כוכבית

ויצא לי:

****

***

**

*

אבל אני צריך הפוך :(

רק שאלה קטנה: אני צריך לגעת רק בFOR הפנימי ולא בחיצוני? (בFOR של הJ)

נ.ב

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

והמורה אמר לנו לרשום VOID.... :nixweiss:

יכול להיות בגלל שאנחנו משתמשים בBORLANDC הישן? (עם הרקע הכחול וכו')

ותודה על העזרה :)

פורסם

יצא לך הפוך, כי בכל איטרציה של הלולאה, הלולאה הפנימית רצה מ-i עד n-1 - כלומר שככל ש-i גדל, הלולאה הפנימית קטנה

בשביל זה יש שני פתרונות אפשריים:

1. להפוך את הלולאה החיצונית, כך ש-i ירוץ מ-n-1 ועד 0 (במקום 0 עד n-1).

2. לפתור כמו שהצעתי קודם - תאתחל מ-j=0, אבל תדאג ש-j ירוץ עד לערך שייקבע לפי i.

לגבי ה-void, אתה מוזמן לקרוא בת'רד הזה:

http://hwzone.co.il/community/index.php?topic=312190.0

ומומלץ גם שתאמר את זה למורה שלך, שלא ימשיך ללמד ככה (מי יודע, אולי אם מספיק תלמידים יעירו למורים שלהם על זה אז יתחילו ללמד לפי התקן).

פורסם
  • מחבר

עובד לי :)

הלכתי על האפשרות הראשונה.

בקשר לVOID אני אדבר עם המורה.. מעניין מה הוא יגיד חח

תודה רבה על העזרה וההכוונה :)

ארכיון

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

דיונים חדשים