Напишите в комментарии к этой записи консольные приложения для решения этих задач, указав код задачи.
Решены задачи: 3, 4, 9, 11, 12. Не решены: 1-2,5-8, 10.
Задачи
I5.1. Составить программу, которая в зависимости от порядкового номера дня недели (1, 2, …, 7) выводит на экран его название (понедельник, вторник, …, воскресенье).
I5.2. Составить программу, которая в зависимости от порядкового номера дня месяца (1, 2, …, 12) выводит на экран его название (январь, февраль, …, декабрь).
I5.3. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12) выводит на экран время года, к которому относится этот месяц.
I5.4. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12) выводит на экран количество дней в этом месяце. Рассмотреть два случая:
1) год не является високосным (см. задачу I3.25);
2) год может быть високосным (информация об этом вводится с клавиатуры).
I5.5. Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» — 1, масти «трефы» — 2, масти «бубны» — 3, масти «червы» — 4. По заданному номеру масти m (1 <= m <= 4) определить название соответствующей масти.
I5.6. Игральным картам условно присвоены следующие порядковые номера в зависимости от их достоинства: «валету» — 11, «даме» — 12, «королю» — 13, «тузу» — 14. Порядковые номера остальных карт соответствуют их названиям («шестерка», «девятка» и т. п.). По заданному номеру карты k (6 <=k <= 14) определить достоинство соответствующей карты.
I5.7. Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» — 1, масти «трефы» — 2, масти «бубны» — 3, масти «червы» — 4, а достоинству карт: «валету» — 11, «даме» — 12, «королю» — 13, «тузу» — 14 (порядковые номера карт остальных достоинств соответствуют их названиям: «шестерка», «девятка» и т. п.). По заданным номеру масти m (1 <= m <= 4) и номеру достоинства карты k (6 <= k <= 14) определить полное название (масть и достоинство) соответствующей карты в виде «Дама пик», Шестерка бубен» и т. п.
I5.8. Дано целое число k (1 <= k <= 365). Определить, каким днем недели (понедельником, вторником, …, субботой или воскресеньем) является k-й день не високосного года, в котором 1 января:
а) понедельник;
б) d-й день недели (если 1 января — понедельник, то d = 1 , если вторник — d = 2 , …, если воскресенье — d = 7).
I5.9. С начала 1990 года по некоторый день прошло n месяцев и 2 дня. Определить название месяца (январь, февраль и т. п.) этого дня.
I5.10. Дата некоторого дня характеризуется двумя натуральными числами: m (порядковый номер месяца) и n (число). По заданным n и m определить:
а) дату предыдущего дня (принять, что n и m не характеризуют 1 января);
б) дату следующего дня (принять, что n и m не характеризуют 31 декабря).
Примечание. В обеих задачах принять, что год не является високосным.
I5.11. Дата некоторого дня характеризуется тремя натуральными числами: g (год), m (порядковый номер месяца) и n (число). По заданным g, n и m определить:
а) дату предыдущего дня;
б) дату следующего дня.
В обеих задачах рассмотреть два случая:
1) заданный год не является високосным;
2) заданный год может быть високосным (см. задачу I3.25).
I5.12. В некоторых странах Дальнего Востока (Китае, Японии и др.) использовался (и неофициально используется в настоящее время) календарь, отличающийся от применяемого нами. Этот календарь представляет собой 60-летнюю циклическую систему. Каждый 60-летний цикл состоит из пяти 12-летних подциклов. В каждом подцикле года носят названия животных: Крыса, Корова, Тигр, Заяц, Дракон, Змея, Лошадь, Овца, Обезьяна, Петух, Собака и Свинья. Кроме того, в названии года фигурируют цвета животных, которые связаны с пятью элементами природы — Деревом (зеленый), Огнем (красный), Землей (желтый), Металлом (белый) и Водой (черный). В результате каждое животное (и его год) имеет символический цвет, причем цвет этот часто совершенно не совпадает с его «естественной» окраской — Тигр может быть черным, Свинья — красной, а Лошадь — зеленой. Например, 1984 год — год начала очередного цикла — назывался годом Зеленой Крысы. Каждый цвет в цикле (начиная с зеленого) «действует» два года, поэтому через каждые 60 лет имя года (животное и его цвет) повторяется. Составить программу, которая по заданному номеру года нашей эры n печатает его название по описанному календарю в виде: «Крыса, Зеленый». Рассмотреть два случая:
а) значение n >= 1984;
б) значение n может быть любым натуральным числом.
NEW: Наш Чат, в котором вы можете обсудить любые вопросы, идеи, поделиться опытом или связаться с администраторами.
I5.1. Составить программу, которая в зависимости от порядкового номера дня недели (1, 2, …, 7) выводит на экран его название (понедельник, вторник, …, воскресенье).
static void Main(){
loop1:
Console.WriteLine(«Введите цифровое значение дня недели»);
string input1=Console.ReadLine();
bool result1 = int.TryParse(input1, out var number1);
string DayofTheWeak =String.Empty;
if (result1== true){
int i= Convert.ToInt32(input1);
switch (i)
{
case 1:
DayofTheWeak =»Monday»;
break;
case 2:
DayofTheWeak =»Tuesday»;
break;
case 3:
DayofTheWeak =»Wednesday»;
break;
case 4:
DayofTheWeak =»Thursday»;
break;
case 5:
DayofTheWeak =»Friday»;
break;
case 6:
DayofTheWeak =»Saturday»;
break;
case 7:
DayofTheWeak =»Sunday»;
break;
default:Console.WriteLine(«Попробуйте еще раз»);
goto loop1;
}
Console.WriteLine(DayofTheWeak);
}
else{
Console.WriteLine(«Введите Цифру от 1 до 7 соответствующую номеру дня недели»);
goto loop1;
}
}
}
}
{
// I5.9. С начала 1990 года по некоторый день прошло n месяцев и 2 дня. // Определить название месяца (январь, февраль и т. п.) этого дня.
Console.WriteLine(«Vvedite n месяцев»);
int n = Convert.ToInt32(Console.ReadLine());
int mes = n + 1;
string mesjac = string.Empty;
switch (mes)
{
case 1: mesjac = «jan»; break;
case 2: mesjac = «feb»; break;
case 3: mesjac = «mar»; break;
case 4: mesjac = «apr»; break;
case 5: mesjac = «may»; break;
case 6: mesjac = «jun»; break;
case 7: mesjac = «jul»; break;
case 8: mesjac = «aug»; break;
case 9: mesjac = «sep»; break;
case 10: mesjac = «oct»; break;
case 11: mesjac = «nov»; break;
case 12: mesjac = «dec»; break;
default: mesjac = «Vi glupij?( takogo mesjaca net»; break;
}
Console.WriteLine(mesjac);
}
{
// I5.5. Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» — 1, масти «трефы» — 2, масти «бубны» — 3,
// масти «червы» — 4. По заданному номеру масти m (1 <= m <= 4) определить название соответствующей масти.
Console.WriteLine(«Vvedite номеру масти m (1 <= m <= 4) i определить название соответствующей масти»);
int m = Convert.ToInt32(Console.ReadLine());
string mastj = string.Empty;
switch (m)
{
case 1:
mastj = «пики»;
break;
case 2:
mastj = ««трефы»»;
break;
case 3:
mastj = ««бубны»»;
break;
case 4:
mastj = ««червы»»;
break;
default:
mastj = «Vi glupij?( takoi masti net»;
break;
}
Console.WriteLine(mastj);
}
static void Main(string[] args)
{
// I5.3. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12)
// выводит на экран время года, к которому относится этот месяц.
Console.WriteLine(«Vvedite порядковый номера дня недели (1, 2, …, 7)»);
int a = Convert.ToInt32(Console.ReadLine());
string season = string.Empty;
switch (a)
{
case 12:
case 1:
case 2:
season = «Winter»;
break;
case 3:
case 4:
case 5:
season = «Spring»;
break;
case 6:
case 7:
case 8:
season = «Summer»;
break;
case 9:
case 10:
case 11:
season = «Autumn»;
break;
default:
season = «Vi glupij?( takogo mesjca net»;
break;
}
Console.WriteLine(season);
}
{
// I5.1. Составить программу, которая в зависимости от порядкового номера дня недели (1, 2, …, 7)
// выводит на экран его название (понедельник, вторник, …, воскресенье).
Console.WriteLine(«Vvedite порядковый номера дня недели (1, 2, …, 7)»);
int a = Convert.ToInt32(Console.ReadLine());
string day = string.Empty;
switch (a)
{
case 1:
day = «Ponedelnik»;
break;
case 2:
day = «Vtornik»;
break;
case 3:
day = «Sreda»;
break;
case 4:
day = «Chetverg»;
break;
case 5:
day = «Pjatnica»;
break;
case 6:
day = «Subbota»;
break;
case 7:
day = «Voskresenje»;
break;
default:
day = «Neznaju»;
break;
}
Console.WriteLine(day);
}
I5.1. Составить программу, которая в зависимости от порядкового номера дня недели (1, 2, …, 7) выводит на экран его название (понедельник, вторник, …, воскресенье).
string dayOfWeek = string.Empty;
int day = int.Parse(Console.ReadLine());
switch (day)
{
case 1:
dayOfWeek = «Monday»;
break;
case 2:
dayOfWeek = «Tuesday»;
break;
case 3:
dayOfWeek = «Wensday»;
break;
case 4:
dayOfWeek = «Thursday»;
break;
case 5:
dayOfWeek = «Friday»;
break;
case 6:
dayOfWeek = «Saturday»;
break;
case 7:
dayOfWeek = «Sunday»;
break;
default: throw new ArgumentException(«Unexpected number of day»);
}
Console.WriteLine(dayOfWeek);
Задачи решены, но многие не так как требуется (через switch).
Мне кажется, что все представленные задачи, довольно неудачно подобраны для решения именно вариантом Switch. Их хочется решать как угодно — условиями, циклами, особенно массивами, но не через switch.
В этих задачах совершенно не видно, в чем же преимущество switch перед другими формами. Мне кажется, что должны быть задействованы условия, которые нельзя представить прямым порядком или простой математической функцией. Хорошая зада для этого блока это I4.16. «В чемпионате по футболу команде за выигрыш дается 3 очка, за проигрыш — 0, за ничью — 1. Известно количество очков, полученных командой за игру.
Определить словесный результат игры (выигрыш, проигрыш или ничья).» — вот здесь сразу хочется решить ее через switch.
вместо 10 поставьте 11, и код будет работать
это 11-ый номер
Console.WriteLine(«I5.6 Игральные карты и их достоинства: \n Шестерка-6 \n Семерка-7 \n Восьмерка-8 \n Девятка-9 \n Десятка-10 \n Валет-11 \n Дама-12 \n Король-13 \n Туз-14» +
«»);
int k = int.Parse(Console.ReadLine());
if (6 <= k && k <= 14)
{
switch (k)
{
case 6:
Console.WriteLine(«Шестерка»);
break;
case 7:
Console.WriteLine(«Семерка»);
break ;
case 8:
Console.WriteLine(«Восьмерка»);
break;
case 9:
Console.WriteLine(«Девятка»);
break;
case 10:
Console.WriteLine(«Десятка»);
break;
case 11:
Console.WriteLine(«Валет»);
break;
case 12:
Console.WriteLine(«Дама»);
break;
case 13:
Console.WriteLine(«Король»);
break;
case 14:
Console.WriteLine(«Туз»);
break;
default:
Console.WriteLine(«Вы ввели неверное число»);
break;
}
}
else
{
Console.WriteLine(«Вы ввели неверное число»);
}
I5.1
int x;
x = Convert.ToInt32(Console.ReadLine());
switch (x)
{
case 1:
Console.WriteLine(«Понедельник»);
break;
case 2:
Console.WriteLine(«Вторник»);
break ;
case 3:
Console.WriteLine(«Среда»);
break;
case 4:
Console.WriteLine(«Четверг»);
break;
case 5:
Console.WriteLine(«Пятница»);
break;
case 6:
Console.WriteLine(«Суббота»);
break;
case 7:
Console.WriteLine(«Воскресенье»);
break;
default:
Console.WriteLine(«Неверный формат»);
break;
}
I5.7. Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» — 1, масти «трефы» — 2, масти «бубны» — 3, масти «червы» — 4, а достоинству карт: «валету» — 11, «даме» — 12, «королю» — 13, «тузу» — 14 (порядковые номера карт остальных достоинств соответствуют их названиям: «шестерка», «девятка» и т. п.). По заданным номеру масти m (1 <= m <= 4) и номеру достоинства карты k (6 <= k <= 14) определить полное название (масть и достоинство) соответствующей карты в виде «Дама пик», Шестерка бубен» и т. п.
Алексей В, правильно. Могу лишь посоветовать: бросать ошибку в дефолт случаях в таких ситуациях и писать более развернутые имена переменных.
Александр, код явно с ошибками и не дописан. Но видно движение в правильном направлении.
string[] days = new string[7] { «Понедельник», «Вторник», «Среда», «Четверг», «Пятница», «Суббота», «Воскресенье» };
Console.WriteLine(«Введите порядковый номер дня недели»);
int daysNumber= Convert.ToInt32(Console.ReadLine());
switch (daysNumber)
{
case 1:
Console.WriteLine(days[^7]);
break;
case 2:
Console.WriteLine(days[^6]);
break ;
case 3:
Console.WriteLine(days[^5]);
break;
case 4:
Console.WriteLine(days[^4]);
break;
case 5:
Console.WriteLine(days[^3]);
break;
case 6:
Console.WriteLine(days[^2]);
break;
case 7:
Console.WriteLine(days[^1]);
break;
}
I5.5. Мастям игральных карт условно присвоены следующие порядковые номера: масти «пики» — 1, масти «трефы» — 2, масти «бубны» — 3, масти «червы» — 4. По заданному номеру масти m (1 <= m <= 4) определить название соответствующей масти.
Console.WriteLine("Введите m");
int m = int.Parse(Console.ReadLine());
int a = 1;
int b = 4;
if (a <= m & m <= b)
{
switch (m)
{
case 1:
Console.WriteLine("пики");
break;
case 2:
Console.WriteLine("трефы");
break;
case 3:
Console.WriteLine("бубны");
break;
case 4:
Console.WriteLine("червы");
break;
default:
break;
}
}
I5.8. Дано целое число k (1 <= k <= 365). Определить, каким днем недели (понедельником, вторником, …, субботой или воскресеньем) является k-й день не високосного года, в котором 1 января:
а) понедельник;
б) d-й день недели (если 1 января — понедельник, то d = 1 , если вторник — d = 2 , …, если воскресенье — d = 7).
Владимир! Верно. Но хотелось бы иметь более короткое решение, например, обойтись одним массивом и без перезаписи его. Честно говоря, можно обойтись и без switch-case, хотя и это тема раздела.
I5.12. В некоторых странах Дальнего Востока (Китае, Японии и др.) использовался (и неофициально используется в настоящее время) календарь, отличающийся от применяемого нами. Этот календарь представляет собой 60-летнюю циклическую систему. Каждый 60-летний цикл состоит из пяти 12-летних подциклов. В каждом подцикле года носят названия животных: Крыса, Корова, Тигр, Заяц, Дракон, Змея, Лошадь, Овца, Обезьяна, Петух, Собака и Свинья. Кроме того, в названии года фигурируют цвета животных, которые связаны с пятью элементами природы — Деревом (зеленый), Огнем (красный), Землей (желтый), Металлом (белый) и Водой (черный). В результате каждое животное (и его год) имеет символический цвет, причем цвет этот часто совершенно не совпадает с его «естественной» окраской — Тигр может быть черным, Свинья — красной, а Лошадь — зеленой. Например, 1984 год — год начала очередного цикла — назывался годом Зеленой Крысы. Каждый цвет в цикле (начиная с зеленого) «действует» два года, поэтому через каждые 60 лет имя года (животное и его цвет) повторяется. Составить программу, которая по заданному номеру года нашей эры n печатает его название по описанному календарю в виде: «Крыса, Зеленый». Рассмотреть два случая:
а) значение n >= 1984;
б) значение n может быть любым натуральным числом.
Решение
Alf4ch! Ваше решение лучше решения Андрея (см. выше). Исправил только задание цвета, по условию: один цвет — два года подряд.
I5.11. Дата некоторого дня характеризуется тремя натуральными числами: g (год), m (порядковый номер месяца) и n (число). По заданным g, n и m определить:
а) дату предыдущего дня;
б) дату следующего дня.
В обеих задачах рассмотреть два случая:
1) заданный год не является високосным;
2) заданный год может быть високосным
Максим! Решение не полное (нет даты следующего дня) и длинное — про и т.д. понятно, но можно и объединить месяцы с 4 по 12 по типу не високосных лет?
I5.4. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12) выводит на экран количество дней в этом месяце. Рассмотреть два случая:
1) год не является високосным (см. задачу I3.25);
2) год может быть високосным (информация об этом вводится с клавиатуры).
Максим! Забыли написать и т.д. Конечно, с массивами из структур все будет элегантнее.
I5.3. Составить программу, которая в зависимости от порядкового номера месяца (1, 2, …, 12) выводит на экран время года, к которому относится этот месяц.
Или так:
I5.11. Дата некоторого дня характеризуется тремя натуральными числами: g (год), m (порядковый номер месяца) и n (число). По заданным g, n и m определить:
а) дату предыдущего дня;
б) дату следующего дня.
В обеих задачах рассмотреть два случая:
1) заданный год не является високосным;
2) заданный год может быть високосным
Руслан, программа в целом работает.
Внимание пользователей:
1. Протестируйте программу (в том числе на ошибки ввода данных).
2. Как написать короче? Подсказка — использовать методы для часто повторяющихся действий.
3. Структурировать данные — можно использовать массив с продолжительностью месяцев в днях.
I5.12. В некоторых странах Дальнего Востока (Китае, Японии и др.) использовался (и неофициально используется в настоящее время) календарь, отличающийся от применяемого нами. Этот календарь представляет собой 60-летнюю циклическую систему. Каждый 60-летний цикл состоит из пяти 12-летних подциклов. В каждом подцикле года носят названия животных: Крыса, Корова, Тигр, Заяц, Дракон, Змея, Лошадь, Овца, Обезьяна, Петух, Собака и Свинья. Кроме того, в названии года фигурируют цвета животных, которые связаны с пятью элементами природы — Деревом (зеленый), Огнем (красный), Землей (желтый), Металлом (белый) и Водой (черный). В результате каждое животное (и его год) имеет символический цвет, причем цвет этот часто совершенно не совпадает с его «естественной» окраской — Тигр может быть черным, Свинья — красной, а Лошадь — зеленой. Например, 1984 год — год начала очередного цикла — назывался годом Зеленой Крысы. Каждый цвет в цикле (начиная с зеленого) «действует» два года, поэтому через каждые 60 лет имя года (животное и его цвет) повторяется. Составить программу, которая по заданному номеру года нашей эры n печатает его название по описанному календарю в виде: «Крыса, Зеленый». Рассмотреть два случая:
а) значение n >= 1984;
I5.9. С начала 1990 года по некоторый день прошло n месяцев и 2 дня. Определить название месяца (январь, февраль и т. п.) этого дня.
Андрей. верно.