תרגיל 3.2.1 שנה מעוברת
כתבו תוכנית הקולטת שנה לועזית year
. הדפס:
- “leap” או “Meuberet” אם מעוברת יש להדפיס,
- אחרת “common” או “Normal”.
כל שנה המקיימת אחד מהתנאים הבאים היא שנה מעוברת לפי הלוח הגרגוריאני:
- השנה מתחלקת ב-4 אך אינה מתחלקת ב-100
- השנה מתחלקת ב-400.
למשל, 2004 היא שנה מעוברת, אך 1900 אינה שנה מעוברת, משום שהיא מתחלקת ב-100, אך לא ב-400. 2000 היא שנה מעוברת, משום שהיא מתחלקת ב-400.
פתרון
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
static void Main(string[] args)
{
Console.Write("Enter a 4 digit year: ");
int year = int.Parse(Console.ReadLine());
bool isLeap = false;
if (year % 4 == 0)
{
if (year % 100 != 0 || year % 400 == 0)
{
isLeap = true;
}
}
if (isLeap)
Console.WriteLine("Meuberet");
else
Console.WriteLine("Normal");
}
פתרון נוסף מקוצר
1
2
bool isLeap = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
Console.WriteLine(isLeap ? "leap" : "common"); // ternary הערה. בפתרון זה נעשה שימוש בתנאי מקוצר
תרגיל 3.2.2 נקודה בתוך מלבן
קולטים שני מספרים ממשיים x
, y
. הדפס “inside” אם (x,y) נמצאים בתוך מלבן \(0<x<10\) ו- \(0<y<5\). אחרת “outside”.
תרגיל 3.2.3 תו חוקי. שאלה מעט מעייפת
כתבו תוכנית הקולטת תו ch
. הדפס:
- “vowel” אם הוא a, e, i, o, u ( או A, E, I, O, U )
- אחרת “consonant”
פתרון
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public static void Main()
{
Console.Write("Enter a character: ");
char ch = char.Parse(Console.ReadLine());
if (ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u' ||
ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U')
{
Console.WriteLine("vowel");
}
else
{
Console.WriteLine("consonant");
}
}
תרגיל 3.2.4 שני מתוך שלושה
נתונים שלושה ערכים בוליאניים p
, q
, r
. הדפס:
- “at least two true” אם לפחות שניים בהם true,
- אחרת “fewer than two”
תרגיל 3.2.5 פלינדרום ומתחלק ב-11
כתבו תוכנית הקולטת מספר תלת-ספרתי n
. הדפס:
- “palindrome & div11” אם פלינדרום ומתחלק ב-11
- “palindrome” רק פלינדרום
- “div11” רק מתחלק ב-11
- אחרת “none”
פתרון
1
2
3
4
5
6
7
8
9
10
bool isPalindrome = (n / 100 == n % 10);
bool isDiv11 = (n % 11 == 0);
if (isPalindrome && isDiv11)
Console.WriteLine("palindrome & div11");
else if (isPalindrome)
Console.WriteLine("palindrome");
else if (isDiv11)
Console.WriteLine("div11");
else
Console.WriteLine("none");