Опубликован: 19.02.2009 | Доступ: свободный | Студентов: 3054 / 785 | Оценка: 4.35 / 4.11 | Длительность: 16:28:00
ISBN: 978-5-94774-401-9
Лекция 4:

Операторы языка C#

< Лекция 3 || Лекция 4: 123 || Лекция 5 >

Практикум

  1. Дана точка на плоскости с координатами (х, у). Составить программу, которая выдает одно из сообщений "Да", "Нет", "На границе" в зависимости от того, лежит ли точка внутри заштрихованной области, вне заштрихованной области или на ее границе.

    Пример:

    1.04_01
    using System;
    namespace Hello
    {
      class Program
      {
         static void Main()
         {
         Console.Write("x=");            
         float x = float.Parse(Console.ReadLine());
         Console.Write("y=");
         float y = float.Parse(Console.ReadLine());
         if (x * x + y * y < 9 && y > 0)
           Console.WriteLine("внутри");
         else if (x * x + y * y > 9 || y < 0)
           Console.WriteLine("вне");
           else Console.WriteLine("на границе");
          }
      }
    }

    Области задаются графически следующим образом:

    2.04_02 3.04_03 4.04_04
    5.04_05 6.04_06 7.04_07 8.04_08
    9.04_09 10.04_10 11.04_11 12.04_12
    13.04_13 14.04_14 15.04_15 16.04_16
    17.04_17 18.04_18 19.04_19 20.04_20
  2. Составить программу.
    Замечание. При решении данных задач возможно использовать оператор switch или вложенные операторы if.
    1. Дан порядковый номер дня недели, вывести на экран его название.

      Пример:

      using System;
      namespace Hello
      {
        class Program
        {
          static void Main()
          {
            Console.Write("n=");            
            byte n = byte.Parse(Console.ReadLine());
            switch (n)
            {
              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;
            }
          }
        }
      }
    2. Дан порядковый номер месяца, вывести на экран количество месяцев оставшихся до конца года.
    3. Дан порядковый номер дня месяца, вывести на экран количество дней оставшихся до конца месяца.
    4. Дан номер масти m ( 1 <= m <= 4 ), определить название масти. Масти нумеруются: "пики" - 1, "трефы" - 2, "бубны" - 3, "червы" - 4.
    5. Дан номер карты k ( 6 <= k <= 14 ), определить достоинство карты. Достоинства определяются по следующему правилу: "туз" - 14, "король" - 13, "дама" - 12, "валет" - 11, "десятка" - 10, \dots, "шестерка" - 6.
    6. Дан номер масти m ( 1 <= m <= 4 ) и номер достоинства карты k ( 6 <= k <= 14 ). Определить полное название соответствующей карты в виде "дама пик", "шестерка бубен" и т.д.
    7. С 1 января 1990 года по некоторый день прошло n дней, определить название текущего месяца.
    8. С 1 января 1990 года по некоторый день прошло m месяцев, определить название текущего месяца.
    9. С некоторой даты по настоящий день прошло m месяцев, определить название месяца неизвестной даты.
    10. С некоторой даты по настоящий день прошло m месяцев, найти неизвестную дату.
    11. С некоторой даты по настоящий день прошло n дней, найти неизвестную дату.
    12. С 1 января 1990 года по некоторый день прошло m месяцев и n дней, определить название текущего месяца.
    13. Дано расписание приемных часов врача. Вывести на экран приемные часы врача в заданный день недели (расписание придумать самостоятельно).
    14. Проведен тест, оцениваемый в целочисленный баллах от нуля до ста. Вывести на экран оценку тестируемого в зависимости от набранного количества баллов: от 90 до 100 - "отлично", от 70 до 89 - "хорошо", от 50 до 69 - "удовлетворительно", менее 50 - "неудовлетворительно".
    15. Дан год. Вывести на экран название животного, символизирующего заданный год по восточному календарю.
    16. Дан возраст человека мужского пола в годах. Вывести на экран возрастную категорию: до года - "младенец", от года до 11 лет - "ребенок", от 12 до 15 лет - "подросток", от 16 до 25 лет - "юноша", от 26 до 70 лет - "мужчина", более 70 лет - "старик".
    17. Дан пол человека: м - мужчина, ж - женщина. Вывести на экран возможные мужские и женские имена в зависимости от введенного пола.
    18. Дан признак транспортного средства: a - автомобиль, в - велосипед, м - мотоцикл, с - самолет, п - поезд. Вывести на экран максимальную скорость транспортного средства в зависимости от введенного признака.
    19. Дан номер телевизионного канала. Вывести на экран наиболее популярные программы заданного канала.
    20. Дан признак геометрической фигуры на плоскости: к - круг, п - прямоугольник, т - треугольник. Вывести на экран периметр и площадь заданной фигуры (данные, необходимые для расчетов, запросить у пользователя).
  3. Вывести на экран:
    Замечание. Решите каждую задачу тремя способами - используя операторы цикла while, do while и for.
    1. целые числа 1, 3, 5, ..., 21 в строчку через пробел:

      Пример:

      using System;
      namespace Hello
      {
        class Program
        {
            
          static void Main()
          {
            Console.Write("n=");            
            byte n = byte.Parse(Console.ReadLine());
      
            Console.Write("while: ");
            int i = 1;           
            while (i <= n)
            {
              Console.Write(" " + i);
              i += 2;
            }
      
            Console.Write("do while: ");
            i = 1;
            do
      {
      Console.Write(" " + i);
      i += 2;
      }
      while (i <= n);
      
      Console.Write("For: ");
      for (i = 1; i<=n; i+=2)
            {
              Console.Write(" " + i);
            }
          }
        }
      }
    2. целые числа 10, 12, 14, ..., 60 в обратном порядке в столбик;
      числа следующим образом:
      10 10.4 
      11 11.4
      ...
      25 25.4
      числа следующим образом:
      25 25.5 24.8 
      26 26.5 25.8
      ...
      35 35.5 34.8
    3. таблицу соответствия между весом в фунтах и весом в килограммах для значений 1, 2, 3, ..., 10 фунтов (1 фунтов = 453г);
    4. таблицу перевода 5, 10, 15, ..., 120 долларов США в рубли по текущему курсу (значение курса вводится с клавиатуры);
    5. таблицу стоимости для 10, 20, 30,..., 100 штук товара, при условии, что одна штука товара стоит х руб (значение х водится с клавиатуры);
    6. таблицу перевода расстояний в дюймах в сантиметры для значений 2, 4, 6, ..., 12 дюймов (1 дюйм = 25.4 мм);
    7. кубы всех целых чисел из диапазона от А до В ( А<=В ) в обратном порядке;
    8. все целые числа из диапазона от А до В ( А<=В ), оканчивающиеся на цифру Х ;
    9. все целые числа из диапазона от А до В ( А<=В ), оканчивающиеся на цифру Х или У ;
    10. все целые числа из диапазона от А до В ( А<=В ), оканчивающиеся на любую четную цифру;
    11. только положительные целые числа из диапазона от А до В ( А<=В );
    12. все целые числа из диапазона от А до В , кратные трем ( А<=В );
    13. все четные числа из диапазона от А до В , кратные трем ( А<=В );
    14. только отрицательные четные числа из диапазона от А до В ( А<=В );
    15. все двухзначные числа, в записи которых все цифры разные;
    16. все двухзначные числа, в которых старшая цифра отличается от младшей не больше чем на 1;
    17. все трехзначные числа, которые начинаются и заканчиваются на одну и ту же цифру;
    18. все трехзначные числа, в которых хотя бы две цифры повторяются.
    19. Вывести на экран числа следующим образом:

      Пример :

      1) 1 1 1 1 1 1
      2 2 2 2 2 2
      3 3 3 3 3 3
      4 4 4 4 4 4
      using System;
      namespace Hello
      {
        class Program
        {
          static void Main()
          {
            for (int i = 1; i<=4; ++i, Console.WriteLine())
            {
              for(int j=1; j<=6; ++j)
              Console.Write(" " + i);
            }
          }
        }
      }
      2) 1 2 3 10 3) -10 -9 -8 12
      1 2 3 10 -10 -9 -8 12
      1 2 3 10 -10 -9 -8 12
      1 2 3 10 -10 -9 -8 12
      -10 -9 -8 12
      4) 41 42 43 50 5) 5 6) 1 1 1 1 1
      51 52 53 60 5 5 1 1 1 1
      61 62 63 70 5 5 5 1 1 1
      5 5 5 5 1 1
      71 72 73 80 5 5 5 5 5 1
      7) 1 8) 6 6 6 6 6 9) 7
      2 2 7 7 7 7 6 6
      3 3 3 8 8 8 5 5 5
      4 4 4 4 9 9 4 4 4 4
      5 5 5 5 5 10 3 3 3 3 3
      10) 8 8 8 8 8 11) 1 12) 1
      7 7 7 7 1 2 2 1
      6 6 6 1 2 3 3 2 1
      5 5 1 2 3 4 4 3 2 1
      4 1 2 3 4 5 5 4 3 2 1
      13) 0 1 2 3 4 14) 4 3 2 1 0 15) 1
      0 1 2 3 3 2 1 0 0
      0 1 2 2 1 0 2 2
      0 1 1 0 0 0
      0 0 3 3 3
      0 0 0
      4 4 4 4
      0 0 0 0
      5 5 5 5 5
      0 0 0 0 0 0
      16) 8 17) 1 18) 9
      7 6 4
      7 7 2 2 8 8
      6 6 7 7 3 3
      6 6 6 3 3 3 7 7 7
      5 5 5 8 8 8 2 2 2 2
      5 5 5 5 4 4 4 4 6 6 6 6 6
      4 4 4 4 9 9 9 9 1 1 1 1 1
      19) 3 20) 2 2 2 2 2
      0 3 4 5 6 7
      2 3 2 2 2 2
      9 0 2 3 4 5
      2 2 3 2 2 2
      8 9 0 1 2 3
      2 2 2 3 2 2
      7 8 9 0 0 1
      2 2 2 2 3 2
      6 7 8 9 0 -1

Самостоятельная работа

Задача 1.Дана шахматная доска размером nxn клеток. Верхняя левая клетка доски черная и имеет номер (1, 1). Например, для n=4 шахматная таблица выглядит следующим образом:

1 2 3 4
1
2
3
4
  1. для заданного значения n определить количество черных ячеек шахматной доски;
  2. по номеру ячейки (k, m) определить ее цвет;
  3. определить, являются ли ячейки с номерами (k1, m1) и (k2, m2) одного цвета;
  4. определить, находится ли фигура, стоящая в ячейке с номером (k1, m1), под ударом второй фигуры, стоящей в ячейке с номером (k2, m2), при условии, что ход второй фигуры и ей является:
    • пешка;
    • слон;
    • ладья;
    • ферзь;
    • конь.

Задача 2. Задана дата в формате <день>.<месяц>.<год>. Определить:

  1. сколько дней прошло с начала года;
  2. сколько дней осталось до конца года;
  3. дату предыдущего дня;
  4. дату следующего дня.

Задача 3.Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ную степень, равна самому числу. Например, 153=13+53+33. Найти все трехзначные числа Армстронга.

Задача 4.Стороны прямоугольника заданы натуральными числами n и m. Найти количество квадратов (стороны которых выражены натуральными числами), на которые можно разрезать данный прямоугольник, если от него каждый раз отрезать квадрат:

  1. наименьшей площади;
  2. наибольшей площади
< Лекция 3 || Лекция 4: 123 || Лекция 5 >