Задание 3.3. Применение оператора ?
3.3.1. Двум целочисленным переменным a и b присвоить значение генерированных двух псевдослучайных чисел на диапазон от 0 до 100. В соответствии с вариантом (см. табл. 4) при помощи оператора ? присвоить переменой с результат вычисления в зависимости от условия.
Таблица 4
Вариант |
Условие |
Если условие истинно |
Если условие ложно |
1 |
a+b=70 |
50 |
a+8 |
2 |
a-b>0 |
b-3 |
a+8 |
3 |
a+b+3<80 |
a |
22 |
4 |
a+b=50 |
40 |
b+5 |
5 |
a-b>10 |
b-5 |
a+18 |
6 |
a+b+15<70 |
a |
11 |
7 |
a+b=60 |
30 |
b+15 |
8 |
a-b>20 |
b-2 |
a+80 |
9 |
a+b+18>60 |
a |
33 |
10 |
a+b=80 |
20 |
b+50 |
11 |
a-b>35 |
b-1 |
a+2 |
12 |
a+b+45>10 |
a |
77 |
13 |
a+b=90 |
10 |
b+52 |
14 |
a-b>25 |
b-5 |
a+28 |
15 |
a+b+35<90 |
b |
55 |
16 |
a+b=40 |
a |
b+32 |
17 |
a-b>45 |
70 |
11 |
18 |
a+b+7<77 |
b-4 |
b+72 |
19 |
a+b=30 |
a |
a+23 |
20 |
a-b>50 |
80 |
22 |
21 |
a+b+25>60 |
b-2 |
b+53 |
22 |
a+b=20 |
b |
a+38 |
23 |
a-b>77 |
90 |
11 |
24 |
a+b+24<80 |
b-1 |
b+45 |
25 |
a+b=10 |
a |
a+41 |
26 |
a-b>29 |
33 |
12 |
27 |
a+b+1<10 |
b-2 |
b+19 |
28 |
a+b=55 |
b |
a+89 |
29 |
a-b>13 |
55 |
23 |
30 |
a+b+20>99 |
b-1 |
b+1 |
Методические указания
Методические указания к пункту 3.1.1.
Считывание в консольном приложении с клавиатуры осуществляется с помощью метода WriteLine класса Console. Пример:
Как видно из примера метод возвращает значение типа String. Это удобно для считывания текста ответа на тест, анкетных данных, паролей и т.д. Но не подходит, если необходимо числовые значения (например, коэффициенты квадратного уравнения).
Для этого нужно применять метод Parse класса Int. Пример:
Конструкция оператора if:
if (условие) оператор_1;
else оператор_2;
Если условие верно (выражение равно true или переменная равна true) то будет выполнен только оператор_1, если условие ложно то будет выполнен оператор_2. Пример:
Оператор if может обходиться без ветвления else. В рассмотренной конструкции в зависимости от условия выполняется только по одному оператору. С помощью операторных скобок можно сгруппировать операторы и конструкция примет вид:
if (условие) {группа_операторов_1;}
else {группа_операторов_2;}
Стоит обратить внимание на то, что между else и операторной скобкой не ставится точка с запятой. Это одна из распространенных синтаксических ошибок.
Вторая конструкция предпочтительней, даже если используется с одиночными операторами, т.к. может избежать ошибок в дальнейшем при расширении программы и делает листинг более удобным для чтения.
Алгоритм программы тестирования кратко описан ниже.
Задать вопрос, считать значение, сверить с ответом, если верно, то инкрементировать переменную учитывающую баллы. Задав последний вопрос, сравнить значение баллов и 5 если равно, то вывести оценку “Отлично”, иначе сравнить с 4, если равно вывести “Хорошо”, иначе сравнить с 3 и если равно вывести “Удовлетворительно” иначе вывести “Неудовлетворительно”.
Методические указания к пункту 3.1.2.
Для того что бы можно было сгенерировать псевдослучайные значения, необходимо создать экземпляр класса Random. Пример:
Затем методы созданного объекта Next и NextDouble будут возвращать псевдослучайные значения типа Int и Double соответственно. При этом для метода Next можно использовать без параметров так и определить с их помощью границы генерации. Пример:
Методические указания к пункту 3.3.1.
Оператор ? является особой формой конструкции if-then-else. Его особенности применения заключаются в способности возвращать значение и упрощенная форма записи для работы с выражениями. Конструкция оператора:
(условие) ?(выражение 1):(выражение 2);
Если результат условия в результате равен значению истина (true) то в качестве результата возвращается значение выражения 1, иначе – выражения 2. Рассмотрим пример:
После выполнения приведенных операторов, переменной s будет присвоено значение “Меньше” (т.к. в результате сравнения будет значение false), а переменной c присвоено значение 75, (т.к. в результате сравнения будет значение true).