Найти тему
Alyona Verden. Поговорим...

Защита от деления на ноль. Дневник начинающей программистки (ДНП) #3

Здравствуйте, друзья. Вот и закончились новогодние каникулы, и даже Старый Новый год уже встретили, пора продолжать учиться. Сразу беру быка за рога - сегодня проект "Калькулятор" будет доведён до конца (не совсем, но об этом позже) и подготовлен к тому, чтобы сделать из него инсталлятор. То есть, пакет установщика Windows, который позволит устанавливать эту программу на любой компьютер.

О начале работы над проектом я рассказала в предыдущих статьях (ссылки в конце), и остановилась на том моменте, что в калькуляторе всё работает, только не хватает защиты. Во-первых, щёлкнув мышкой на текстовом окне, которое используется для вывода, мы имеем возможность вводить в него данные с клавиатуры, и не только цифры, но и буквы (в принципе, любой текст). В калькуляторе эта возможность явно лишняя. Это задача номер один.

И во-вторых, мы можем делить на ноль. Программа при этом зависает, по понятным причинам. Значит, нужно, чтобы при попытке разделить на ноль, работа программы приостанавливалась, появлялось сообщение об ошибке, а после исправления ошибки программа продолжала работать. Это - задача номер два.

И это первый этап работы над любой программой - постановка задачи и формирование ТЗ (технического задания).

Приступим. Первая задача решается просто - в окне дизайна нужно выделить текстовое поле на форме, а затем в окне свойств изменить значение свойства Enabled с True на False.

-2

Всё, ввод данных в текстовое поле заблокирован . А вывод работает, в чём просто убедиться, запустив программу.

То же самое можно сделать программным путём, изменив свойство текстового поля вот такой строкой кода:

Vyvod.Enabled = False

Только размещать её нужно в соответствующем месте:

-3

Но вообще - чем решение проще, тем оно лучше. Да, это ещё одна из житейских мудростей - причём, если мне проще применить первый вариант, то кому-то более простым может показаться второй.

Вторая задача (защита от деления на ноль) несколько сложнее. Сначала составим алгоритм, то есть порядок действий компьютера при делении, с учётом особенностей нашего калькулятора.

  • Получить делимое
  • Получить идентификатор 4 (вводится при нажатии на калькуляторе клавиши деления)
  • Получить делитель
  • Проверить, не равен ли делитель нулю
  • Если равен - вывести сообщение об ошибке и приостановить работу
  • Если не равен - выполнить операцию деления и вывести результат

Это второй этап разработки любой программы - алгоритмизация.

А поскольку с оператором If мы уже знакомы - его и используем (точнее, блок If - Else). И ещё - окно вывода сообщений MessageBox (MsgBox), которое вы наверняка уже встречали, если, конечно, пользуетесь Windows.

Это все те сообщения, которые появляются, когда "что-то идёт не так", и закрыть такое сообщение можно только нажатием кнопки "ОК" в самом окне сообщения, то есть, MessageBox специально создан для важной информации. Чаще всего таким способом сообщается об ошибках.

Последние два абзаца тоже можно отнести к этапам разработки - выбор способа решения поставленной задачи и инструментов для этого решения.

Ну а теперь, собственно , можно и к написанию кода приступить - это следующий этап, самый интересный... И самый короткий. 80-90% времени работы над любой программой занимает именно предварительная подготовка, а также последующее тестирование и исправление ошибок, а вовсе не написание кода.😪

К счастью, мой проект довольно простой, и ошибок удалось избежать.😊

А вот и сам код, два варианта (нужная часть на рисунках выделена красным).

-4

Этот вариант работает так:

Если делитель равен нулю, выполняются операции после If (выводится сообщение об ошибке), а то, что после Else - не выполняется. А если не равен - выполняется то, что после Else.

-5

И второй вариант, где конструкция If - Else работает идентично первому, но проверять будем не равенство, а неравенство - то есть, если делитель нулю не равен, будет выполнен код после If. В своём калькуляторе я использую именно этот вариант, хотя по сути они равнозначны и результат выдают одинаковый.

Вот теперь всё, калькулятор готов. Запускаем, и смотрим на видео, как он работает:

И на этом торжественном моменте я и закончу сегодняшнюю запись "Дневника...". А следующая будет о том, как сделать из проекта Visual studio установочный пакет, чтобы разработанную программу можно было установить на другой компьютер.

P.S. А почему калькулятор готов, да не совсем - ну так его ещё совершенствовать и совершенствовать. И главное - он должен работать не только от мышки, но и от клавиатуры...