Студопедия — Практический раздел
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Практический раздел






Изучим целые и вещественные типы на практике. Для этого создадим простую программу, которая делит одно целое число на другое. Результат будет выводиться, как вещественное число.

Откройте Delphi, создайте новый проект. На форму нужно поместить три компонента Label, три компонента Edit и одну кнопку, чтобы получилась такая картина:

Рис. 3.1. Внешний вид формы

 

Совет: чтобы выполнить одинаковую операцию над несколькими компонентами сразу, их можно выделить один за другим, удерживая клавишу <Shift>. Например, если таким образом выделить все три компонента Edit, то затем можно разом очистить их свойство Text.

Сохраните проект под именем MyCalc. Затем дважды щелкните по кнопке, чтобы создать обработчик нажатия на кнопку.

Перед begin процедуры следует создать раздел var, и объявить там три переменных:

var

Perem1, Perem2: Integer;

Perem3: Double;

Затем вернемся в тело процедуры (между командами begin и end), и присвоим целым переменным введенные пользователем значения. Здесь нужно понять одну важную вещь. Пользователь будет вводить значения в компоненты Edit, и там они будут храниться в свойстве Text в виде строкового типа данных. Строку нельзя будет присвоить переменной какого-либо другого типа данных, присвоение

Perem1:= Edit1.Text; //ошибочное присвоение

//– несовместимость типов данных

будет ошибочным. Разница довольно существенная: даже если пользователь вводит, казалось бы, целое число, например,

то компьютер видит строку символов, а вовсе не число:

'123'

Выход – преобразовать один тип данных в другой, в нашем случае, строку в целый тип. Преобразовать строку в целый тип можно с помощью функции

StrToInt('String');

В качестве параметра (в скобках) указывается строка. Функция преобразует ее в целое число и вернет его как результат. Примеры использования функции (эти примеры не нужно вводить в редактор кода):

var

s: String;

i: Integer;

begin

s:= '1234';

i:= StrToInt(s); //параметр – строковая переменная

i:= StrToInt(‘123456’); //параметр – строка

i:= StrToInt(Edit1.Text); //параметр – свойство Text

//компонента Edit, имеющее строковый тип

end;

Как видно из примера, имеется масса возможностей передать в функцию строку. В первом случае преобразования мы передаем строковую переменную s, в которой хранится строка '1234'. Функция преобразует эту строку в целое число, и в результате в переменнуюi попадет уже число 1234.

Во втором случае мы передаем непосредственно строку '123456', а в переменную i попадает преобразованное из этой строки число. В третьем случае мы в качестве параметра передаем тот текст, который пользователь ввел в поле ввода Edit1. Здесь следует сделать оговорку. Функция сработает правильно, если пользователь ввел туда действительно целое число. В противном случае возникнет ошибка. Пользователь – личность непредсказуемая, поэтому программист в таких случаях перед преобразованием типов всегда делает проверку – а действительно ли в поле ввода имеются только цифры от 0 до 9? Нет ли там случайно буквы или запятой? Такую проверку мы научимся делать позднее. Пока что придется самим следить, чтобы в этих полях ввода были только целые числа.

Вернемся к программе. Сразу после begin присваиваем целым переменным значения, которые ввел пользователь:

Perem1:= StrToInt(Edit1.Text);

Perem2:= StrToInt(Edit2.Text);

В третью, вещественную переменную, мы должны записать результат деления первого числа на второе. Тут может крыться еще один "подводный камень" - что, если во второе поле пользователь ввел число 0? Еще со школы все мы знаем, что на ноль делить нельзя. Если же мы попробуем это сделать, то компьютер, в лучшем случае, зависнет. Здесь опять придется делать проверку на правильность введенных данных, ставить, как говорят, "защиту от дураков". Подробнее о таких проверках мы поговорим на следующих лекциях, когда изучим условные конструкции. А пока просто наберите этот код:

{защита от дураков:}

If Perem2 = 0 then begin //если это ноль, то:

ShowMessage('На ноль делить нельзя!'); //выводит сообщение

Edit3.Text:= '0'; //как результат записываем ноль

end

else begin //иначе:

Perem3:= Perem1 / Perem2; //делим

Edit3.Text:= FloatToStr(Perem3); //преобразуем вещественное в

//строку и записываем результат

end;

Здесь следует обратить внимание на предпоследнюю строку. Функция FloatToStr() в качестве параметра принимает вещественное число, и возвращает это же число в виде строки. Например, в результате преобразования

s:= FloatToStr(123.45);

переменной s будет присвоена строка '123.45', которую затем уже можно будет вывести пользователю в качестве результата. В нашем примере мы результат деления двух целых чисел преобразуем в строку и выводим его в поле Edit3. Справедливости ради следует заметить, что в качестве параметра можно передавать не только значение, но и выражение. Например, если указать

Edit3.Text:= FloatToStr(Perem1 / Perem2);

то надобность в использовании вещественной переменной Perem3 отпадает. Попробуйте, как работают оба варианта.







Дата добавления: 2015-10-01; просмотров: 282. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Мелоксикам (Мовалис) Групповая принадлежность · Нестероидное противовоспалительное средство, преимущественно селективный обратимый ингибитор циклооксигеназы (ЦОГ-2)...

Менадиона натрия бисульфит (Викасол) Групповая принадлежность •Синтетический аналог витамина K, жирорастворимый, коагулянт...

Разновидности сальников для насосов и правильный уход за ними   Сальники, используемые в насосном оборудовании, служат для герметизации пространства образованного кожухом и рабочим валом, выходящим через корпус наружу...

Дезинфекция предметов ухода, инструментов однократного и многократного использования   Дезинфекция изделий медицинского назначения проводится с целью уничтожения патогенных и условно-патогенных микроорганизмов - вирусов (в т...

Машины и механизмы для нарезки овощей В зависимости от назначения овощерезательные машины подразделяются на две группы: машины для нарезки сырых и вареных овощей...

Классификация и основные элементы конструкций теплового оборудования Многообразие способов тепловой обработки продуктов предопределяет широкую номенклатуру тепловых аппаратов...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия