ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 31.03.2024
Просмотров: 124
Скачиваний: 0
Идентификатор должен быть уникальным в пределах программы.
Инструкция присваивания является основной инструкцией языка Delphi. Она предписывает вычислить выражение, стоящее справа от знака присваивания, и присвоить результат переменной, имя которой стоит слева от знака присваивания. Переменная и выражение должны иметь совместимые типы. Допустимо присваивание значений данных любого типа, кроме файлового. Формат инструкции присваивания имеет следующий вид:
<Имя переменной> := <Выражение>;
Вместо имени переменной можно указывать элемент массива или поле записи. Отметим, что знак присваивания := отличается от знака равенства = и имеет другой смысл. Знак присваивания означает, что значение выражения сначала вычисляется, а потом присваивается указанной переменной.
Примеры инструкций присваивания для переменных со следующими описаниями:
var
х, у: real;
n: integer;
stroka: string;
...
n := 17 * n + 1;
stroka := 'Дата ' + DateToStr(Date);
x := 12.3 * sin(pi/4) ;
у := 23.789E+3;
Составная инструкция представляет собой группу из произвольного числа любых инструкций, отделенных друг от друга точкой с запятой, и ограниченную операторными скобками begin и end.
Формат составной инструкции имеет следующий вид:
begin
<Оператор_1>;
... ;
<Оператор_n>;
end;
Независимо от числа входящих в нее инструкций составная инструкция воспринимается как единое целое и может располагаться в любом месте программы, где допускается наличие инструкции. Наиболее часто составная инструкция используется в условных инструкциях и инструкциях цикла.
Пример составной инструкции:
begin
Веер;
Edit1.Text := 'Строка';
Exit;
end;
Приведенная составная инструкция может быть использована в условной инструкции при проверке выполнимости некоторого условия, скажем, для указания действий при возникновении ошибки. Составные инструкции могут вкладываться друг в друга, при этом глубина вложенности составных инструкций никак не ограничена.
Записывать операторы можно в одну строку:
I := 67; J:= 20+1;
Или на каждой строке свой оператор:
I := 67;
J:= 20+1;
Для визуального удобства лучше использовать второй вариант.
Пустая инструкция представляет собой точку с запятой и может быть расположена в любом месте программы, где допускается наличие инструкции. Пустая инструкция не выполняет никаких действий и может быть использована для передачи управления в конец цикла или составной инструкции.
Возведение в степень
Нужно воспользоваться модулем Math (подключить его в разделе Uses), содержащем функцию Power ( X, Y: Extended ): Extended;
Эта функция возводит X в степень Y.
Exp(X) - это экспонента от некоторого числа, т.е. число "е" в степени Х.
Пример:
var
Z: Real;
begin
Z:= Power(0.25, 0.5); {Z:=0.5}
end;
Условная инструкция обеспечивает выполнение или невыполнение некоторых инструкций в зависимости от соблюдения определенных условий. Условная инструкция предназначена для организации ветвления программы на два направления. Условная инструкция имеет формат:
if <Условие> then <Инструкция1> else <Инструкция2>;
Условие представляет собой выражение логического типа. Инструкция работает следующим образом: если Условие истинно (имеет значение True), то выполняется Инструкция 1, в противном случае – Инструкция 2. Обе инструкции могут быть составными.
Допускается запись условной инструкции в сокращенной форме, когда слова else и Инструкция2 отсутствуют. В этом случае при невыполнении условия управление сразу передается инструкции, следующей за условной.
Для организации ветвления на три и более направлений можно использовать несколько условных инструкций, вложенных друг в друга. При этом каждое слово else соответствует тому then, которое непосредственно ему предшествует. Из-за возможной путаницы следует избегать большой глубины вложенности условных инструкций.
Расположите на форме кнопку Button и компонент Label. Для кнопки напишите такой обработчик события:
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
i :=2;
if i = 1 then begin
Label1.Caption := 'Переменная i равна 1';
Form1.Color := clRed
end else begin
Label1.Caption := 'Переменная i не равна 1';
Form1.Color := clGray
end
end;
Изменяя значение переменной i с 1 на двойку мы увидим работу условного оператора в действии. Как результат будет выбор цвета формы и название заголовка компонента label.
Если условие сложное и само в себе включает несколько условий, то их необходимо объединить путем организации вложений условных операторов или используя логические операторы and, or, xor, not.
В сложных логических выражениях отдельные части-условия необходимо заключать в скобки: if (i > y) and (j = 55) then ...
Инструкция выбора является обобщением условной инструкции и позволяет сделать выбор из произвольного числа имеющихся вариантов, т. е. организовать ветвление на произвольное число направлений. Эта инструкция состоит из выражения, называемого селектором, списка вариантов и необязательной ветви else, имеющей тот же смысл, что и в условной инструкции.
Формат оператора выбора имеет следующий вид:
case <Выражение-селектор> of
<Список1> : <Инструкция1>;
...
<СписокN> : <ИнструкцияN>
else <Инструкция>;
end;
Выражение-селектор должно быть порядкового типа. Каждый из вариантов выбора (от список1 до списокN) представляет собой список констант, отделенных двоеточием от относящейся к данному варианту инструкции (инструкция может быть составной). Список констант выбора состоит из произвольного количества уникальных значений и диапазонов, отделенных друг от друга запятыми. Границы диапазона записываются двумя константами через разделитель «...». Тип констант должен совпадать с типом выражения-селектора.
Пример инструкции выбора:
case DayNumber of
2 ... 6 : strDay:='Рабочий день';
7 : strDay: = 'Короткий день'
else strDay:='Выходной день';
end;
3.2. Контрольные вопросы
1. Какие бывают зарезервированные слова?
2. Что такое идентификатор? Какие ограничения накладываются на идентификатор?
3. Как определить значение переменной?
4. Для чего предназначен условный оператор? Какая форма записи условного оператора?
5. Инструкция выбора?
6. Как и когда применяется составной оператор?
7. Перечислите элементы языка Делфи.
3.3. Задания
1. Напишите программу вычисления высот треугольника р=(a+b+c)/2, S=sqrt(p*(p-a)*(p-b)*(p-c)).
2. Написать программу «Угадай число». Программа загадывает число от 1 до 1000 с помощью генератора случайных чисел (randomize), пользователю дается 10 попыток чтобы отгадать число (программа указывает больше или меньше введенное пользователем число, чем задуманное).
3. Написать программу тестирования знаний пользователя (5 вопросов) с выставлением соответствующей оценки.
4. Написать программу, вычисляющую значения переменной:
5. Написать программу, вычисляющую значения переменных:
значения b и m задаются.
6. Написать программу, вычисляющую значения переменных:
значения k и a задаются.
7. Заданы три стороны треугольника a, b и с. Определить является ли этот треугольник прямоугольным, и какая сторона служит гипотенузой.
8. Создать программу, вычисляющую проценты от введенного пользователем числа.
9. Написать программу, которая во введенной с клавиатуры строке перед символами "!" вставит подстроку "Лето".
10. Написать программу, вычисляющую значения переменных:
значения a вводится с клавиатуры.
Лабораторная работа № 4 типы данных delphi
Цель работы: изучение свойств и событий компонентов; переменных и констант; типов данных Delphi.
4.1. Теоретическая часть
Типы данных
Таблица 2. Целочисленные типы
Тип |
Диапазон |
Integer |
-2147483648 .. +2147483647 |
Cardinal |
0 .. 4294967295 |
Shortint |
-128 .. +127 |
Smallint |
-32768 .. +32767 |
Longint |
-2147483648 .. +2147483647 |
Int64 |
-263 .. +263-1 |
Byte |
0 .. +255 |
Word |
0 .. +65535 |
Longword |
0..4294967295 |
Как следует из названия, целочисленные типы позволяют хранить целые числа. Среди них есть типы, которые хранят числа со знаком, а есть и такие, которые хранят только положительные. Чем большее количество значений может содержать тип, тем больше памяти он занимает. Существуют 2 общих типа (Integer и Cardinal).
Логические типы
Существуют следующие логические типы: Boolean, ByteBool, WordBool и LongBool. Использовать рекомендуется тип Boolean. Тип Boolean принимает значения True и False.
Символьные типы
Символьные типы обеспечивают хранение отдельных символов. Основной тип данных - Char, который содержит символы с кодами 0..255. Существуют ещё типы AnsiChar и WideChar. Тип AnsiChar эквивалентен типу Char. Занимает в памяти 1 байт. Для кодирования символов используется код ANSI (American National Standards Institute).
Вещественные (действительные) типы
Эти типы используются для хранения вещественных, т.е. действительных чисел. Отличаются они границами допустимых значений и точностью, т.е. числом цифр после запятой. Ниже приведены стандартные типы дробных чисел и соответствующие им диапазоны допустимых значений.
Таблица 3. Вещественные типы данных
Тип |
Диапазон |
Количество значащих цифр |
Real |
2.9·10-39 .. 1.7·1038 |
11-12 |
Single |
1.5·10-45 .. 3.4·1038 |
7-8 |
Double |
5.0·10-324 .. 1.7·10308 |
15-16 |
Extended |
3.6·10-4951 .. 1.1·104932 |
19-20 |
Comp |
-263+1 .. 263-1 |
19-20 |
Currency |
-922337203685477.5808 .. 922337203685477.5807 |
19-20 |
Строковые типы
В выражениях Delphi поддерживает три физических строковых формата: короткий (ShortString), длинный (LongString) и широкий (WideString). Их можно комбинировать в операторах присваивания и выражениях (все необходимые преобразования Delphi выполняет автоматически).
Переменные типов AnsiString и WideString - это динамически распределяемые массивы символов, максимальная длина которых ограничивается только наличием памяти. Разница между ними состоит в том, что в AnsiString знаки записываются в формате char, а в WideString- в формате WideChar. Тип ShortString-это, по существу, массив Array [0..255] of char. Символы, составляющие строку, занимают места от 1 до 255.