Иллюстрированный самоучитель по Basic, вводный курс

Условный переход

Если есть несколько условий и для организации тех или иных действий достаточно выполнения хотя бы одного из этих условий, то применяется логическая связка or (ИЛИ). Например, программа для вычисления функции выглядит так:

CLS
INPUT "Введите значение X"; X
IF X<-1 OR X >=1 THEN Y=X л 3 ELSE Y=X л 2
? "Y <X)="; Y

Для различия применения and и or можно привести такой жизненный пример. Каждый человек хоть раз задумывался о спутнике жизни и, естественно, выдвигал какие-либо условия к будущему избраннику. Так вот, более требовательные могли бы выдвинуть два таких условия: пусть он будет красивым И (and) богатым. А менее требовательные, предпочитающие синицу в руках, могли бы сказать так: пусть он будет красивым ИЛИ (or) богатым. Чувствуете разницу? В первом случае избраннику не будет отказано только в одном случае из четырех возможных, а во втором, наоборот, три исхода благосклонны. Он может быть только красив, или только богат, ну а если и красив, и богат, то тем более.

Еще один пример. В стене существует квадратное отверстие NxN см. И имеется кирпич с измерениями А, В и С. Определить, пройдет он в отверстие или нет, если подавать его можно только параллельно стенкам отверстия.

Понятно, что кирпич пройдет в отверстие только в случае, если хотя бы два его измерения меньше N. Отсюда программа будет выглядеть так:

CLS
INPUT "Введите сторону отверстия N"; N
1: INPUT "Введите стороны кирпича А, В и С"; А, В, С
IF A<N AND B<N OR A<N AND C<N OR B<N AND C<N
THEN?"Кирпич проходит в отверстие"
ELSE?"Кирпич не проходит в отверстие"
INPUT "Рассмотрим еще один кирпич? 1 – да, 0 – нет";
X IF X=l THEN GOTO I ELSE?"Спасибо за работу!"

По-русски это условие можно объяснить следующим образом. Если А и В меньше N, или А и С меньше N, или В и С меньше N, тогда печатать "Кирпич проходит в отверстие", иначе печатать "Кирпич не проходит в отверстие". Кроме того, в этой программе применен достаточно простой, но эффективный ход, управляющий совместной работой пользователя и программы.

Чтобы каждый раз не запускать программу (если пользователь хочет рассмотреть несколько вариантов исходных данных), применен запрос с клавиатуры вариантов продолжения: либо рассматриваем еще один кирпич, либо – конец программы. Там же вы можете видеть применение безусловного перехода в условном операторе. Разберитесь и пользуйтесь этим для грамотного оформления своих программных продуктов.

Напишите программы для решения следующих задач, используя условный оператор и сложные условия.

123. По введенным с клавиатуры коэффициентам квадратного уравнения А, В и С найдите его корни. Рассмотрите шесть возможных вариантов:

  • а=в=с=0, корней бесчисленное множество (X – любое);
  • а=в=0, 00, уравнение не имеет корней;
  • а=0, в*0, 00, вырожденное квадратное уравнение, имеется один корень (формулу вычисления корня найдите сами);
  • d<0, где d – дискриминант, который предварительно надо вычислить; уравнение не имеет вещественных корней;
  • d=0, уравнение имеет два одинаковых корня (вывести их значения);
  • D >0, уравнение имеет два различных вещественных корня (вычислить и вывести их значения).

Для проверки правильности работы программы предлагается шесть тестовых вариантов исходных данных:

  • а=в=с=0;
  • а=в=0, c=i;
  • а=0, в=3, с=6 (должно получиться х=-2);
  • А=5, В=3, С=2;
  • a=1, в=2, с=1 (должно получиться x1=x2=-1);
  • А=2, В=5, С=2 (ДОЛЖНО ПОЛУЧИТЬСЯ Х1=-2, Х2=-8).

124. Осуществите запрос трех целых различных чисел с клавиатуры. Выведите на экран наибольшее и наименьшее.

125. Осуществите запрос с клавиатуры у тренера олимпийской сборной России по марафону результаты в часах, минутах и секундах трех победителей чемпионата России. Если какие-то два результата различаются менее чем на 5 сек, выведите сообщение "Вот так шла борьба за______________медаль".

В сообщении должно быть указано достоинство медали (золотая, серебряная), за которую шла борьба. В противном случае, вычислить среднюю скорость победителя в км/час, если принять длину марафонской дистанции 42 км 195 м.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.