עבור לתוכן

תרגיל פשוט ב-C# אבל הסתבכתי

Featured Replies

פורסם

צריך להכניס קלט שהוא שלושה מספרים שלמים: יום חודש שנה והפלט יהיה לדוגמא 5 OCTOBER 1995

זה מה שניסיתי ולא הצליח:

 
using System;

class Program
{
static void Main(string[] args)
{
int month, year, day;
Console.WriteLine("enter the year");
year = int.Parse(Console.ReadLine());
Console.WriteLine("enter the day");
day = int.Parse(Console.ReadLine());
Console.WriteLine ("enter the month");
month=int.Parse (Console.ReadLine());
switch (month)
{ }
case 1:Console.WriteLine("januery"); break;
case 2:Console.WriteLine("february"); break;
case 3:Console.WriteLine ("march"); break;
case 4:Console.WriteLine ("april"); break;
case 5:Console.WriteLine ("may"); break;
case 6:Console.WriteLine ("june"); break;
case 7:Console.WriteLine ("july"); break;
case 8:Console.WriteLine ("augost"); break;
case 9:Console.WriteLine ("september"); break;
case 10:Console.WriteLine ("october"); break;
case 11:Console.WriteLine ("november");break;
case 12:Console.WriteLine ("december"); break;



}}





פורסם

אתה בכלל לא מבצע קלט על month, ולא השתמשתי אף פעם בswitch בC# אבל אם אני לא טועה אתה אמור לסגור כול משפט case בbreak.

ותשים רווח בין המילה case לערך.

פורסם
  • מחבר

ערכתי אבל זה עדיין לא מציג לי כלום

והקומפיילר רושם לי 48 שגיאות :s07:

פורסם

תנסה ככה

 
using System;

class Program
{
static void Main(string[] args)
{
int month, year, day;
Console.WriteLine("enter the year");
year = int.Parse(Console.ReadLine());
Console.WriteLine("enter the day");
day = int.Parse(Console.ReadLine());
Console.WriteLine ("enter the month");
month=int.Parse (Console.ReadLine());
switch (month)
{
case 1:Console.WriteLine("januery"); break;
case 2:Console.WriteLine("february"); break;
case 3:Console.WriteLine ("march"); break;
case 4:Console.WriteLine ("april"); break;
case 5:Console.WriteLine ("may"); break;
case 6:Console.WriteLine ("june"); break;
case 7:Console.WriteLine ("july"); break;
case 8:Console.WriteLine ("augost"); break;
case 9:Console.WriteLine ("september"); break;
case 10:Console.WriteLine ("october"); break;
case 11:Console.WriteLine ("november");break;
case 12:Console.WriteLine ("december"); break;
}


}}





ואם אתה עובד ב VS תלחץ CRTL+K+D זה יסדר לך את זה יפה

פורסם

אתה בטוח שהשם של המחלקה זה int ? נראה לי תמוה.

פורסם
  • מחבר

תודה

הפלט אמור להיות התאריך המלא יום + חודש במילים+ שנה

הוספתי את הוראת הפלט:

Console.WriteLine ("the date is: {0},{1},{2}",day,month,year);

אבל זה לא מציג לי את שם החודש באותיות

יש לי עוד תרגיל שבו אני צריך להכניס כקלט ציון אבל ציון עגול 10,20,30 וכו' וזה יציג לי כפלט את הציון המילולי A,B,C כל ציון שהוא 60 ומטה הוא ציון נכשל (F)

using System;

class Program

{

static void Main(string[] args)

{

int grade, numGrade;

numGrade = int.Parse(Console.ReadLine());

switch (numGrade)

{

case 1: Console.WriteLine("10");

case 2: Console.WriteLine("20");

case 3: Console.WriteLine("30");

case 4: Console.WriteLine("40");

case 5: Console.WriteLine("50");

case 6: Console.WriteLine("60");

case 7: Console.WriteLine("70");

case 8: Console.WriteLine("80");

case 9: Console.WriteLine("90");

case 10: Console.WriteLine("100");

break;

case 1: Console.WriteLine("f");

case 2: Console.WriteLine("f");

case 3: Console.WriteLine("f");

case 4: Console.WriteLine("f");

case 5: Console.WriteLine("f");

case 6: Console.WriteLine("f");

case 7: Console.WriteLine("d");

case 8: Console.WriteLine("c");

case 9: Console.WriteLine("b");

case 10: Console.WriteLine("a");

}

Console.WriteLine("the grade is: {0}", grade);

}

}

זה מה שעשיתי אבל גם פה יש לי טעות

פורסם

תודה

הפלט אמור להיות התאריך המלא יום + חודש במילים+ שנה

הוספתי את הוראת הפלט:

Console.WriteLine ("the date is: {0},{1},{2}",day,month,year);

אבל זה לא מציג לי את שם החודש באותיות

יש לי עוד תרגיל שבו אני צריך להכניס כקלט ציון אבל ציון עגול 10,20,30 וכו' וזה יציג לי כפלט את הציון המילולי A,B,C כל ציון שהוא 60 ומטה הוא ציון נכשל (F)

using System;

class Program

{

static void Main(string[] args)

{

int grade, numGrade;

numGrade = int.Parse(Console.ReadLine());

switch (numGrade)

{

case 1: Console.WriteLine("10");

case 2: Console.WriteLine("20");

case 3: Console.WriteLine("30");

case 4: Console.WriteLine("40");

case 5: Console.WriteLine("50");

case 6: Console.WriteLine("60");

case 7: Console.WriteLine("70");

case 8: Console.WriteLine("80");

case 9: Console.WriteLine("90");

case 10: Console.WriteLine("100");

break;

case 1: Console.WriteLine("f");

case 2: Console.WriteLine("f");

case 3: Console.WriteLine("f");

case 4: Console.WriteLine("f");

case 5: Console.WriteLine("f");

case 6: Console.WriteLine("f");

case 7: Console.WriteLine("d");

case 8: Console.WriteLine("c");

case 9: Console.WriteLine("b");

case 10: Console.WriteLine("a");

}

Console.WriteLine("the grade is: {0}", grade);

}

}

זה מה שעשיתי אבל גם פה יש לי טעות

day, month,year

הם מספרים ( INT)

אתה צריך ליצור STRINGS

נגיד

DAYSTRING

ולהכניס לשם את היום

ובתרגיל השני את הציון המתוקן העגול

string day_s = "July";

לדוגמא

פורסם

הקוד שלך יכול להצטמצם ל- שלוש ארבע שורות קוד אם תשתמש בקלאס DateTime

פורסם
  • מחבר

לא למדתי להשתמש עדיין ב-CLASS DAY TINE

וב-STRIGS DAY TIME

פורסם

1) הוא לא צריך להשתמש בDateTime, מכיוון שאז התרגיל היה לא רלוונטי.

2) עבור החודשים - בכל case תשים במשתנה כלשהו את שם החודש המתאים לכל מספר. ושאלה קטנה - למדת enum?

3) עבור הציונים - אתה לא מקבל קלט של 1,2,3, ולכן אתה לא צריך לעשות caseים כאלו. אתה צריך לעשות case 10, case 20 וכו'. שים לב שאתה יכול להשתמש כאן בגלישת הcaseים(כפי שאני רואה שניסית לעשות).

פקודת הswitch בנוייה בצורה הבאה:


switch(variable_name)
{
case first_case: //first case code
case second_case: //second case code
//...
default://always happens at the end if no beak was made


}

כאן בודקים האם הערך של variable_name שווה לfirst_case. אם כן, מתבצע הקוד תחת אותו case. כנ"ל עבור כל השאר.

פורסם
  • מחבר

אני יכול לקבל אלגוריתם?

כי קצת קשה להבין את זה ככה

תודה

פורסם

אני אעזור לך עם החודשים

זה הכי פשוט בארץ

עכשיו עלה לי לראש

קח מערך

string[] month = {0,hodesh1,hodesh2,hodesh3,hodesh4,......}

ונגיד הוא הקיש חודש 5 - חסכתי לך אפילו להוריד מהחודש 1 כשהוספתי את האפס בתחילת המערך

אז אתה פשוט ניגש לערך החמישי במערך שזה גם החודש החמישי בשנה

בהצלחה אחי

זה הכי פשוט בארץ

פורסם

אתה יכול להגדיר:


enum Month
{
Jan,
Feb,
}


ואחרי שאתה מקבל מספר, אתה פשוט מבצע -


((Month)input).ToString()

כדי לקבל את השם של החודש.

פורסם

רק תזכור שכשאתה מגדיר ככה enum, אז Jan יקבל את הערך 0.

אם אתה רוצה שזה יעבוד תקין, תעשה ככה:

enum Month
{
Jan = 1,
Feb,
}

פורסם

3) עבור הציונים - אתה לא מקבל קלט של 1,2,3, ולכן אתה לא צריך לעשות caseים כאלו. אתה צריך לעשות case 10, case 20 וכו'. שים לב שאתה יכול להשתמש כאן בגלישת הcaseים(כפי שאני רואה שניסית לעשות).

אין גלישה ב C#, זה נותן שגיאת קומפילציה. זה תקף רק ב C או C++

ארכיון

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

דיונים חדשים