שפת C/מערכים/תרגילים: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Atavory (שיחה | תרומות)
אין תקציר עריכה
Atavory (שיחה | תרומות)
אין תקציר עריכה
שורה 3:
{{בעבודה}}
 
==הדפסת ערכי מטריצה (מערך דו-מימדי)==
==2==
 
כתבו תוכנית שמגדירה מערך דו-מימדי של 5 שורות ו-5 עמודות, וקולטת לתוכו מספרים. אחר-כך המשתמש יכול להקליד מספר שורה ומספר עמודה בין 1 ל-5, והתוכנית תגיד לו מהו המספר שנמצא באותו תא. אם יקליד מספר שורה או עמודה שאינם קיימים - תוצג הודעת שגיאה, והמשתמש יתבקש להקליד מחדש (נזכור שהאינדקסים במערך הם 0-4, ולכן אם המשתמש יקליד למשל 1,4 צריך יהיה להציג את המספר שבמיקום 0,3 במערך). התוכנית תשאל את המשתמש אם להמשיך (1) או להפסיק (2) אם יבחר להמשיך הוא יתבקש שוב להקליד שורה ועמודה, וכך הלאה, כשיבחר להפסיק - התוכנית תסתיים בהודעה "!Goodbye". '''''רמז:''''' לקליטת המספרים, השתמשו בלולאת for כפולה (לולאה בתוך לולאה)
כתבו תוכנית שנתונה לה מטריצת תווים בגודל מסוים (4 על 3), ועליה להדפיס אותו בשורות ועמודות. לדוגמה, אם נתונה המטריצה הבאה:
<pre style="text-align:left; direction:ltr;">
char matrix[4][3]=
{ {'1','2','3'} , {'4','5','6'} , {'7','8','9'} , {'a','b','c'}};
</pre>
היא תדפיס:
<pre style="text-align:left; direction:ltr;">
1 2 3
4 5 6
7 8 9
a b c
</divpre>
(רמז: השתמש ב[[שפת C/לולאות|לולאה]] כפולה, כלומר לולאה בתוך לולאה).
 
 
{{מוסתר|פתרון|2=
<div style="text-align:left; direction:ltr;"><pre>
#include <stdio.h>
<pre>
 
 
int main()
{
char matrix[4][3]=
{ {'1','2','3'} , {'4','5','6'} , {'7','8','9'} , {'a','b','c'}};
int i, j;
for(i = 0; i < 4; ++i)
{
for(j = 0; j < 3; ++j)
printf("%c ", matrix[i][j]);
printf("\n");
}
return 0;
}
</pre></div>
}}
 
 
 
==שאילתות על ערכי מטריצה (מערך דו-מימדי)==
כתבו תוכנית שמבצעת את הפעולות הבאות:
#ראשית
#לאחר מכן, התוכנית תפעל בלולאה:
##התוכנית תבקש להקליד 'q' כדי לצאת מהתוכנית, או 'c' כדי להמשיך.
##אם המשתמש בחר לצאת מהתוכנית, יש לסיים את התוכנית.
##אם המשתמש בחר להמשיך, התוכנית תבקש ממנו להקליד שורה ועמודה, ותדפיס את הערך בשורה ובעמודה.
 
כתבו תוכנית שמגדירה מערך דו-מימדי של 5 שורות ו-5 עמודות, וקולטת לתוכו מספרים. אחר-כך המשתמש יכול להקליד מספר שורה ומספר עמודה בין 1 ל-5, והתוכנית תגיד לו מהו המספר שנמצא באותו תא. אם יקליד מספר שורה או עמודה שאינם קיימים - תוצג הודעת שגיאה, והמשתמש יתבקש להקליד מחדש (נזכור שהאינדקסים במערך הם 0-4, ולכן אם המשתמש יקליד למשל 1,4 צריך יהיה להציג את המספר שבמיקום 0,3 במערך). התוכנית תשאל את המשתמש אם להמשיך (1) או להפסיק (2) אם יבחר להמשיך הוא יתבקש שוב להקליד שורה ועמודה, וכך הלאה, כשיבחר להפסיק - התוכנית תסתיים בהודעה "!Goodbye". '''''רמז:''''' לקליטת המספרים, השתמשו בלולאת for כפולה (לולאה בתוך לולאה)
 
 
{{מוסתר|פתרון|2=
<div style="text-align:left; direction:ltr;"><pre>
#include <stdio.h>
int main()
שורה 35 ⟵ 84:
return 0;
}
</pre></div>
</div>
}}
 
==3==
כתבו תוכנית שקולטת מערך של 5 על 5, כמו בתרגיל הקודם. אחר כך היא מחשבת ומדפיסה את סכום המספרים בכל שורה ובכל עמודה, וכן באלכסון הראשי.
שורה 74 ⟵ 123:
 
==4==
כתבו תוכנית שנתון לה מערך בגודל מסוים (HEIGHT4 על WIDTH3), ועליכםועליה להדפיס אותו בצורה מעגלית. לדוגמה, אם נתון המערך הבא:
<pre style="text-align:left; direction:ltr;">
char matrix[4][3]=
#define WIDTH 3
#define HEIGHT 4
char arr[HEIGHT][WIDTH]=
{ {'1','2','3'} , {'4','5','6'} , {'7','8','9'} , {'a','b','c'}};
</pre>
שורה 101 ⟵ 148:
<pre>
#include <stdio.h>
 
#define WIDTH 3
#define HEIGHT 4
 
#define UP 0
שורה 117 ⟵ 161:
int count; //just counts the cells that printed
 
char arr[HEIGHT4][WIDTH3]=
{ {'1','2','3'} , {'4','5','6'} , {'7','8','9'} , {'a','b','c'}};
 
שורה 129 ⟵ 173:
//at first, limits are edges of array
u=1;
r=WIDTH3-1;
d=HEIGHT4-1;
l=0;
 
for(count=0;count<WIDTH3*HEIGHT4;count++)
{
printf("%c ", arr[x][y]);