Опрос
Ваше мнение о новом дизайне?
Всего ответов: 304
Достижения
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Поиск
Сегодня на уроке мы сделаем элементарный вычислитель, который будет осуществлять арифметические операции с двумя числами введенными в текстовые поля.
Создадим пустой проект, и зададим размеры форме: ширина 320, высота 510. Добавим на форму 2 компонента TEdit, один TLabel, и 4 TButton. Заменим свойство Text у кнопок на Сложить, Вычесть, Умножить и Разделить соответственно. В свойство Text компонента Label запишем фразу "Введите числа". Сохраним наш проект в папку Calcul. Переименуем проект в Calculator1. Должно получиться как на картинке ниже:
Теперь запрограммируем активность для кнопки "Сложить". Дважды кликнем по кнопке, чтоб создать событие OnClick.
Арифметические операции обозначаются следующим образом:
a+b - сложение;
a-b - вычитание:
a*b - умножение;
a/b - деление.

Мы обрабатываем событие для сложения двух чисел. Для начала нам необходимо выбрать данные из полей для ввода Edit. Для этого заведем две переменных a и b. И скопируем в них содержимое полей Edit1 и Edit2 соответственно.
var a,b:string;
-----
a:=Edit1.Text;
b:=Edit2.Text;
Теперь нам необходимо сложить данные и поместить их сумму в поле Tlabel. Сделаем это следующей командой:
label1.Text:=a+b;
Должно было получиться следующим образом:
Запустим проект на выполнение в среде Windows и протестируем нашу программу. Введем в поля 123 и 456 соответственно. Однако при нажатии на кнопку Сложить мы увидим не верный результат, а последовательность 123456.
Почему это произошло? Это произошло из-за того что поле Edit содержит исключительно текстовую информацию типа string, мы также использовали строковый тип при объявлении переменных, а при сложении двух строк '123' и "456', как в нашем примере, как раз и получается строка 123456. Происходит склеивание строк. Как же нам получить правильный ответ? Для этого нам помогут команды, которые преобразуют последовательность из цифр в число.
Команда strtoint(текст) преобразует последовательность цифр в целое число. Теперь нам необходимо доработать нашу программу следующим образом: заменить тип данных у переменных a, b на integer и в момент копирования данных из текстовых полей будем их преобразовывать в числа:
a:=strtoint(Edit1.Text);
b:=strtoint(Edit2.Text);

После всех преобразований должно получиться вот так:
Попытаемся запустить нашу программу. Получаем ошибку. Почему? Правильно, теперь у нас a и b это числа и соответственно их сумма это тоже число, а мы пытаемся число записать в свойство Text компонента Label, а как мы уже говорили выше оно имеет тип string. Нам на помощь придет команда преобразующее число в текст: inttostr(число).
Подкорректируем команду: label1.Text:=inttostr(a+b);
Запускаем. Все прошло успешно и попробуем сложить числа 123 и 456. Должно получиться 579.
Замечательно мы научили наш вычислитель складывать два числа. теперь аналогичным образом научите вычислитель вычитать, умножать. Деление пока не делайте. Когда запрограммируете еще две операции протестируйте программу.
Все работает. Отлично пришла пора программировать деление. Попробуйте сделать это самостоятельно.
При попытке запустить происходит ошибка? Почему как вы думаете? При делении двух чисел могут получаться как целые, так и дробные числа, компьютер заранее не знает какой результат у нас получится, поэтому при делении двух чисел принято предполагать что ответ получится дробный. Команда inttostr() переводить целое число в строку, а у нас получается дробное, значит она не подходит. В таком случае пользуются командой floattostr(дробное_число), которая, преобразует дробное число в текст. Заменим в команду преобразования в текст при делении: label1.Text:=floattostr(a/b);
Замечательно. Мы сделали простейший вычислитель, который умеет складывать, вычитать, умножать, делить целые числа. Переключим режим на Android , выберем телефон и установим приложение в телефон, чтобы посмотреть как оно будет работать на телефоне.
Задание №1 для самостоятельного выполнения. Добавьте еще одну кнопку. Назовите ее "Очистить". При нажатии на эту кнопку, значения компонент Tedit должно становиться пустым. А значение компоненты Tlabel1 должно становиться: "Введите числа"
Задание №2 для самостоятельного выполнения: Научите ваше приложение работать не только с целыми числами но и с дробными. Для преобразования текста в дробное число используется команда strtofloat(текст). В качестве разделителя используется запятая.
Четверг, 09.04.2020, 16:02
Приветствую Вас Дошкольник
Календарь
«  Апрель 2020  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
27282930
Форма входа
Логин:
Пароль:
 
Полезные ссылки