салсм
07.05.2021 10:58

Потрібно задумати число та додати до нього 10, якщо воно не менше ніж 3;
додати до нього 20, якщо воно не менше
ніж 3, але менше ніж 25; відняти від
нього 1, якщо воно не менше ніж 25.
Виконайте складений алгоритм для
чисел 2 та 30. очень ​


Потрібно задумати число та додати до нього 10, якщо воно не менше ніж 3;додати до нього 20, якщо вон

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
stepankachan
10.03.2020 08:29

Осуществил с того что я умею, сложного не использовал ибо еще не дошел до него . Тут 2 класса идут в двух разных .cs .

Единственные нюансы: 1) не осуществил год до нашей эры, т.е если год вводится -2 (2 до н.е) выводится 2.

2) запутанность жесткая, ибо использовал goto и много переменных разных. с моими текущими знаниями я не мог использовать что то попроще, возможно оптимизируете.

1 класс:

using System;

namespace HomeLibrary

{

   class ListOfBooks

   {

       static string Author, Category, Name; static int Year;

       public static bool Indicate, SecondIndicate, ThirdIndicate;

       public static string SetAuthor

       {

           get

           {

               return Author;

           }

           set

           {

               if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))

               {

                   Indicate = true;

               }

               else

               {

                   Author = value;

               }

           }

       }

       public static int SetYear

       {

           get

           {

               return Year;

           }

           set

           {

               if(value >= 0 && value <= 2022)

               {

                   Year = value;

               }

           }

       }

       public static string SetCategory

       {

           get

           {

               return Category;

           }

           set

           {

               if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))

               {

                   SecondIndicate = true;

               }

               else

               {

                   Category = value;

               }

           }

       }

       public static string SetName

       {

           get

           {

               return Name;

           }

           set

           {

               if (string.IsNullOrWhiteSpace(value) || int.TryParse(value, out int WrongValue))

               {

                   ThirdIndicate = true;

               }

               else

               {

                   Name = value;

               }

           }

       }

   }

}

2 класс.

using System;

using System.Collections.Generic;

namespace HomeLibrary

{

   class Program

   {

       static void SecondMenue(int SecondChoise)

       {

           switch(SecondChoise)

           {

               case 2:

                   List<string> Books = new List<string>();

                   TryAgain4:

                   Console.WriteLine("Введите название книги.");

                   ListOfBooks.SetName = Console.ReadLine();

                   if (ListOfBooks.ThirdIndicate == true)

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       ListOfBooks.ThirdIndicate = false;

                       Console.ReadLine();

                       goto TryAgain4;

                   }

                   TryAgain:

                   Console.WriteLine("Введите имя/псевдоним автора.");

                   ListOfBooks.SetAuthor = Console.ReadLine();

                   if ( ListOfBooks.Indicate == true)

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       ListOfBooks.Indicate = false;

                       Console.ReadLine();

                       goto TryAgain;

                   }

                   TryAgain2:

                   string YearString;

                   Console.WriteLine("Введите год выпуска книги.");

                   YearString = Console.ReadLine();

                   if (!(int.TryParse(YearString, out int Year)))

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       Console.ReadLine();

                       goto TryAgain2;

                   }

                   ListOfBooks.SetYear = Year;

                   TryAgain3:

                   Console.WriteLine("Введите категорию книги.");  

                   ListOfBooks.SetCategory = Console.ReadLine();

                   if (ListOfBooks.SecondIndicate == true)

                   {

                       Console.WriteLine("Попробуйте ещё раз. Некорректное значение.");

                       ListOfBooks.SecondIndicate = false;

                       Console.ReadLine();

                       goto TryAgain3;

                   }

                   Books.Add($"Книга: {ListOfBooks.SetName}, Автор: {ListOfBooks.SetAuthor}, Год: {ListOfBooks.SetYear}, Категория: {ListOfBooks.SetCategory}.");

                   Console.WriteLine("Книга успешно добавлена в вашу библиотеку.");

                   string ChoiceAfter;

                   TryAgain5:

                   Console.WriteLine("Желаете добавить ещё книгу - 2 , посмотреть список книг - 3, закончить - 4 .");

                   ChoiceAfter = Console.ReadLine(); if (int.TryParse(ChoiceAfter, out int Choice) && Choice == 2) goto TryAgain4;

                   else if(Choice == 3)

                   {

                       Console.WriteLine("Список ваших книг:");

                       foreach(string Book in Books)

                       {

                           Console.Write($"\n{Book}");

                           Console.ReadLine();

                       }

                       goto TryAgain5;

                   }

                   else if(Choice == 4)

                   {

                       Console.WriteLine("Всего доброго!");

                       Console.ReadLine();

                       return;

                   }

           break;

               case 4:

                   Console.WriteLine("Всего доброго!");

                   Console.ReadLine();

                   return;

           }

       }

       static void Menue(int UserNumber)

       {

           TryAgainX2:

           switch (UserNumber)

           {

               case 1:

                   string ChoiseString;

                   Console.WriteLine("Добавить книгу - 2 , Закончить работу - 4 .");

                   ChoiseString = Console.ReadLine();

                   int.TryParse(ChoiseString, out int Choise); if (Choise >= 2 && Choise <= 4) SecondMenue(Choise);

                   break;

               default:

                   Console.WriteLine("Некорректное значение");

           goto TryAgainX2;

           break;

           }

       }

       static void Main(string[] args)

       {

           TryAgain:

           string ChoiceFirst;

           Console.WriteLine("Здравствуйте, Вас приветсвует домашняя библиотека. Открыть меню команд - 1");

           ChoiceFirst = Console.ReadLine();

           if (int.TryParse(ChoiceFirst, out int Choice) && Choice == 1) Menue(Choice);

           else

           {

               Console.WriteLine("Неверное значение, попробуйте ещё раз.");

               goto TryAgain;

           }

           Console.ReadLine();

       }

   }

}


C#. Задание массивное и интересное.Описать класс Библиотека.
0,0(0 оценок)
Ответ:
akonbkaru
27.07.2021 18:32

Такое зна­че­ние S — 30. При S = 30 Петя своим пер­вым ходом может по­лу­чить одну из четырёх по­зи­ций: (7, 31), (8, 30), (14, 30), (7, 60).

В по­зи­ции (7, 60) Ваня удва­и­ва­ет ко­ли­че­ство кам­ней во вто­рой куче и вы­иг­ры­ва­ет своим пер­вым ходом.

Из по­зи­ций (14, 30) и (7, 31) Ваня может по­лу­чить по­зи­цию (14, 31). В этом слу­чае после вто­ро­го хода Пети может воз­ник­нуть одна из четырёх по­зи­ций: (15, 31), (14, 32), (28, 31), (14, 62). Во всех слу­ча­ях Ваня удва­и­ва­ет ко­ли­че­ство кам­ней во вто­рой куче и вы­иг­ры­ва­ет своим вто­рым ходом.

Из по­зи­ции (8, 30) Ваня своим пер­вым ходом может по­лу­чить по­зи­цию (16, 30). После вто­ро­го хода Пети может воз­ник­нуть одна из четырёх по­зи­ций: (17, 30), (16, 31), (32, 30), (16, 60). Во всех слу­ча­ях Ваня удва­и­ва­ет ко­ли­че­ство кам­ней во вто­рой куче и вы­иг­ры­ва­ет своим вто­рым ходом.

Таким об­ра­зом, ответ — 30.

ответ: 30.

При­ме­ча­ние. До­ка­жем, что при S ≤ 29 либо вы­иг­ры­ва­ет Петя своим пер­вым или вто­рым ходом, либо игра не за­вер­шит­ся за 4 хода.

При S ≤ 7 Петя своим пер­вым ходом может до­ба­вить в боль­шую кучу один ка­мень. Тогда, даже если из­на­чаль­но S = 7, наи­боль­шее ко­ли­че­ство кам­ней, ко­то­рое можно по­лу­чить сум­мар­но в обеих кучах за 4 хода, каж­дый раз удва­и­вая боль­шую кучу, рав­ня­ет­ся 71.

При 8 ≤ S ≤ 16 Петя может вы­брать такую стра­те­гию, ко­то­рая не поз­во­лит по­бе­дить Ване за один или два хода. Для этого Петя каж­дый ход может при­бав­лять к пер­вой куче один ка­мень. При этом наи­боль­шее сум­мар­ное ко­ли­че­ство кам­ней в обеих кучах, ко­то­рое можно по­лу­чить за 4 хода, равно 9 + 64 = 73.

При S = 17. Петя пер­вым ходом может по­лу­чить по­зи­цию (7, 18). Из этой по­зи­ции Ваня может по­лу­чит по­зи­ции (8, 18), (7, 19), (14, 18) и (7, 36). В по­зи­ции (7, 36) Петя вы­иг­ры­ва­ет своим вто­рым ходом. В осталь­ных по­зи­ци­ях у Пети есть стра­те­гия, ко­то­рая поз­во­ля­ет ему по­лу­чить по­зи­ции, из ко­то­рых Ваня не смо­жет вы­иг­рать своим вто­рым ходом.

При 18 ≤ S ≤ 29 Петя может по­лу­чить по­зи­цию (8, S). В этой по­зи­ции Петя либо вы­иг­ры­ва­ет своим вто­рым ходом, либо у него есть стра­те­гия, ко­то­рая поз­во­ля­ет ему по­лу­чить по­зи­ции, в ко­то­рых Ваня не может вы­иг­рать своим пер­вым или вто­рым ходом.

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота