Конспект урока "Типы данных. Преобразование типов"

1
Шабашная Людмила Николаевна
КГУ СОШ № 61 г. Караганды.
Учитель физики, информатики и ВТ.
Тема урока. Типы данных. Преобразование типов.
Цель урока:
Продолжить формирование навыков оформления дизайна проекта с
использованием наиболее часто употребляемых объектов;
Рассмотреть классификацию типов данных языка программирования
FreePascal
Задачи урока:
Изучить основные типы данных языка программирования; способы
преобразования одного типа данных в другой.
Развивать умение работать с основными математическими функциями;
преобразовывать целочисленный и вещественный типы в строковый и обратно,
определять тип выражения.
Воспитывать эстетические навыки при оформлении формы и компонентов.
План урока:
I. Организационный момент (2 мин).
II. Актуализация знаний (5 мин).
III. Теоретическая часть (20 мин).
IV. Практическая часть (10 мин).
V. Домашнее задание (1 мин).
VI. Вопросы учащихся (5 мин).
VII. Итоги урока (2 мин).
Ход урока
I. Организационный момент
Приветствие учащихся, проверка присутствующих, определение задач урока.
II. Актуализация знаний
На прошлом уроке мы рассмотрели форму и наиболее востребованные
объекты. Мы узнали. Что все объекты обладают рядом свойств и познакомились с
некоторыми из них. Кроме того, мы выяснили, что объекты реагируют на некоторые
события и методы.
Сегодня мы продолжим знакомство со средой программирования. Разработаем
наш следующий проект. Подготовимся к этой работе. Повторим ранее изученный
материал.
1. Для чего служит окно “Инспектор объектов”?
A. Для отображения свойств выбранного объекта
B. Для изменения свойств выбранного объекта
C. Для отображения списка файлов в проекте
D. Для отображения списка форм в проекте
2
E. Для показа макета проекта
2. Как сохранить новый проект?
A. Меню "Файл" - "Сохранить модуль"
B. Меню "Файл" - "Сохранить все"
C. Кнопка "Сохранить" на панели инструментов
D. Меню "Сохранить" - "Сохранить проект как..."
3. Как отобразить Инспектор объектов, если он не виден в рабочей среде?
A. Меню "Вид" - "Компоненты"
B. Меню "Вид" - "Палитра компонентов"
C. Меню "Вид" - "Инспектор объектов"
D. Меню "Вид" - "Обозренватель"
4. Свойство Text используют, чтобы:
A. заполнить СПИСОК;
B. заполнить ТЕКСТОВОЕ ПОЛЕ;
C. дать имя ОБЪЕКТУ;
D. заполнить заголовок ФОРМЫ и заполнить надписями КНОПКИ,
ФЛАЖКИ, ПЕРЕКЛЮЧАТЕЛИ и МЕТКИ.
5. Свойство Name используют, чтобы:
A. заполнить ТЕКСТОВОЕ ПОЛЕ;
B. заполнить СПИСОК ;
C. заполнить заголовок ФОРМЫ и заполнить надписями КНОПКИ,
ФЛАЖКИ, ПЕРЕКЛЮЧАТЕЛИ и МЕТКИ;
D. дать имя ОБЪЕКТУ.
6. Свойство Caption используют, чтобы:
A. заполнить ТЕКСТОВОЕ ПОЛЕ;
B. заполнить заголовок ФОРМЫ и заполнить надписями КНОПКИ,
ФЛАЖКИ, ПЕРЕКЛЮЧАТЕЛИ и МЕТКИ;
C. заполнить СПИСОК;
D. дать имя ОБЪЕКТУ.
7. Стиль выравнивания текста задает свойство:
A. Alignment;
B. Font;
C. Multiline;
D. Locked.
8. Свойство Font задает:
A. цвет шрифта;
B. тип, начертание и размеры шрифта;
C. цвет заливки ТЕКСТОВОГО ПОЛЯ;
D. стиль выравнивания текста.
3
9. Что из перечисленного может являться событием объекта?
A. Изменение программного кода;
B. Открытие и закрытие формы;
C. Щелчок по кнопке;
D. Изменение шрифта;
E. Изменение размера объекта;
F. Добавление формы.
10. Назовите компоненты формы:
A.
B.
C.
III. Теоретическая часть
1. Переменные
Переменная представляет собой зарезервированное место в оперативной
памяти для временного хранения данных. Переменная характеризуется именем и
типом данных
Имя это слово, которое используется для ссылки на значение, которое
содержит переменная
Имена переменных надо выбирать так, чтобы они были как можно короче, но
одновременно понятными:
Например:
переменная для обозначения времени: t
переменная для обозначения временного интервала: dt
максимальная высота подъема: Hmax или maxH
2. Соглашение об именах
Имена переменных, констант, процедур, объявляемых в программе должны
соответствовать следующим требованиям
начинаться с латинской буквы
должны отсутствовать пробелы
не должны содержать точки
должны отливаться от ключевых слов языка
длина не должна превышать 255 символов
Можно: CurrentNum, Total, Date_Of_Birth
Нельзя: 1Time, $Total, Date of Birth
3. Тип данных
Тип данных определяет вид данных, который можно хранить в этой
переменной.
Типы данных относятся к самым фундаментальным свойствам любого языка
программирования. Данные, с которыми работает программа, хранятся в оперативной
памяти. Компилятору необходимо знать, сколько места они занимают, и какие
действия с ними можно выполнять. Т.О. тип данных однозначно определяет
возможный диапазон значений переменной и допустимые над ней действия.
4
В языке Паскаль существует очень разветвлённая система типов, но пока
рассмотрим только некоторые из них:
Целые типы - простые типы для представления целых чисел.
Имя типа.
Диапазон значений.
Размер памяти.
shortint
- 128 .. 127
1 байт
integer
- 32768 .. 32767
2 байтa
long
- 2147483648 .. 2147483647
4 байтa
byte
0 .. 255
1 байт
word
0 .. 65535
2 байтa
Вещественные типы - простые типы для представления вещественных чисел
Имя типа.
Диапазон значений.
Размер памяти.
Real
2.9e-39 .. 1.7e+38
6 байт
Single
1.5e-45 .. 3.4e+38
4 байт
Double
5.0e-324 .. 1.7e+308
8 байт
Extende
3.4e-4932 .. 1.1e+4932
10 байт
Comp
-9.2e+18 .. 9.2e + 18
8 байт
Итак, прежде чем использовать некую переменную в программе её
необходимо объявить, т.е. указать её имя и тип данных, которые в ней могут
храниться.
4. Объявление переменных
Объявление переменных помещается в разделе описаний после ключевого
слова var
VAR <имя переменной> : <тип данных> ;
<имя переменной> : <тип данных> ;
Можно записать в одну строчку через запятую
<имя переменной> , <имя переменной> : <тип данных> ;
5. Оператор присваивания
Присвоить переменной вычисленное значение можно с помощью оператора
присваивания. Главное условие при присваивании совместимость типов вычисленного
выражения и переменной, которой оно присваивается. Оператор присваивания на
Паскале изображается двумя символами :=
Пример:
x := 0 ;
x := x + 1;
После выполнения первой операции x имеет значение 0, а в результате второй
получает значение равное 1.
6. Арифметические операции
5
Над действительными и целыми числами определены четыре арифметические
действия: сложение, вычитание, умножение и деление. Возведение в степень в языке
Паскаль не предусмотрено. Для целых чисел определены две операции деления с
целочисленным результатом: целочисленное деление и остаток от целочисленного
деления:
Оператор
Выполняемая операторы
Пример
+
сложение
С:=А+В
-
вычитание
С:=А-В
*
умножение
С:=А*В
/
деление
С:=А/В
mod
остаток от деления нацело
С:=А mod В
div
целочисленное деление
С:=А div В
7. Функции преобразования
Функции преобразования типов часто используются при вводе и выводе
информации.
Например, для того чтобы вывести в поле вывода (компонент Label)
диалогового окна значение переменной Real, необходимо преобразовать число в
строку символов, изображающую данное число. Это можно сделать при помощи
функции FloatToStr, которая возвращает строковое представление значения
выражения, указанного в качестве параметра функции.
Основные функции преобразования типов
Свойство
Описание
Chr(n)
Символ, код которого равен n.
IntToStr(k)
Строка, являющаяся изображением целого k.
FloatToStr(n)
Строка, являющаяся изображением вещественного n.
FloatToStrF(n,f,k,
m)
Строка, являющаяся изображением вещественного n.
При вызове функции указывают: f - формат; k –
точностью (общее количество цифр); m - количество
цифр после десятичной точки.
StrToInt(s)
Целое, изображением которого является строка s.
StrToFloat(s)
Вещественное, изображением, которого является
строка s.
Round(n)
Целое, полученное путем округления n по известным
правилам.
Trunc(n)
Целое, полученное путем отбрасывания дробной части
n.
Frac(n)
Дробное, представляющее собой дробную часть
вещественного n.
Int(n)
Дробное, представляющее собой целую часть
вещественного n.
Наиболее часто программа может получать исходные данные из окна ввода
или из поля редактирования (компонент Edit). Для преобразования данных в числовой
тип используют соответствующую функцию.
6
Например, для преобразования в вещественный тип используется оператор:
Funt:= StrToFloat(Edit1.Text);
Основные сведения об переменных, числовых типах данных и финкциях
преобразования типов мы повторили. Теперь переходим к практической части нашего
занятия.
IV. Практическая часть
Проект "Простейший калькулятор"
Создайте новый чистый проект через меню
Проект Создать проект (В появившемся окне должен быть выбран пункт
Приложение) и расположите объекты на форме как показано на рисунке
На форме располагаются 6 кнопок (Button), 3 метки (Label) и 3 текстовых поля (Edit).
Текстовые поля на форме выглядят как белые полосы (строки) и располагаются на
рисунке прямо под метками с надписями "Первый аргумент", "Второй аргумент" и
"Результат". Постарайтесь расположить метки, кнопки и текстовые поля в правильном
порядке, чтобы метка с надписью "Первый аргумент" имела имя Label1, "Второй
аргумент" - Label2 и т.д., то же и с текстовыми полями Edit1 под первым аргументом и
т.д. Кнопки Button1, Button2 и т.д. с лева направо по порядку. Такое расположение
некритично, однако если вы разместите все аккуратно и в правильном порядке вам
будет легче работать. Пропишите необходимые свойства объектов, чтобы все
выглядело как на рисунке, т.е. дайте заголовки меткам и кнопкам и самой форме. Вы
уже знаете какие свойства нужно изменять.
Сохраните проект в отдельной папке (Вы же помните что для каждого проекта
внутри вашей личной папки должна быть создана отдельная папка). Назовите папку
для этого проекта "Простейший калькулятор".
Запустите проект, попробуйте вписать числа в текстовые поля и понажимайте
кнопки арифметических действий. Ничего не происходит? Все верно, мы ведь еще не
начинали писать программу, мы только оформили внешний вид формы.
Как должен работать калькулятор?
7
Мы запускаем проект, вводим первый и второй аргументы, нажимаем кнопку,
ну например, плюс и в текстовом поле результата отображается сумма. Аналогично и
с другими кнопками, только другие арифметические операции.
И так, все что мы пишем в текстовом поле оказывается в свойстве Text как в
переменной. Т.е. то что написано в текстовом поле является значением свойства Text
объекта Edit. Обращаться к свойству Text следует так:
Код LAZARUS:
Edit1.Text при условии конечно, если мы обращаемся к свойству первого
текстового поля (Edit1)
Теперь анализируем: после того как мы введем два аргумента в оба текстовых
поля мы нажимаем кнопку + и после этого в текстовом поле Edit3 должен
отобразиться результат. Значит, мы должны создать событие OnClick нажатия кнопки
+ и внутри событийной процедуры OnClick прописать, что должно происходить.
Код LAZARUS:
procedure TForm1.Button1Click(Sender: TObject);
begin
{здесь должен быть код, который берет значение свойства Edit1.Text и
Edit2.Text, складывает эти числа и присваивает свойству Edit3.Text
значение результата}
end;
Напомню, если вы разместили объекты в другом порядке, то ваши имена
объектов могут не совпадать с моими. В данном примере Edit1 соответствует первому
аргументу, Edit2 - второму, Edit3 - результату.
И так, мы должны присвоить свойству Edit3.Text значение суммы Edit1.Text +
Edit2.Text
Зная что оператор присвоения в Lazarus такой же как и в Pascal, мы можем написать
так:
Код LAZARUS:
Edit3.Text := Edit1.Text + Edit2.Text
И вроде бы все логично, но попробуйте после этого запустить программу и
посмотрите что получится.
Если вы все сделали как описано выше, то запустив программу вы
обнаружите, что калькулятор вовсе не складывает числа, он "складывает строки",
т.е. берет строку из 1-го текстового поля, строку из 2-го текстового поля и
"прилепляет" к концу первой строки вторую строку. Например, если вы введете числа
34 и 58, то вместо ожидаемой суммы вы увидите результат 3458. Все верно, так и
должно быть. Дело в том, что текстовое поле воспринимает все вводимое как текст
(строка, в Pascal аналогичный тип данных string). И прежде чем складывать первый и
второй аргумент, нужно перевести текст в число.
8
Описываем в процедуре TForm1.Button1Click переменные a, b и sum как
целые числа.
Код LAZARUS:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c: integer; {описываем 3 перменных целочисленным типом данных}
begin
a:=StrToInt(Edit1.Text); {переводим Edit1.Text в целочисленный тип данных
функцией StrToInt и помещаем результат в переменную a}
b:=StrToInt(Edit2.Text); {переводим Edit2.Text в целочисленный тип данных
функцией StrToInt и помещаем результат в переменную a}
end;
И так, мы превратили 2 аргумента в числа и поместили их в переменные a и b.
Теперь мы можем сложить a и b и поместить сумму в переменную c. Затем сразу
превращаем значение переменной c в текст и помещаем этот текст в Edit3.
Дописываем код:
Код LAZARUS:
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c: integer; {описываем 3 перменных целочисленным типом данных}
begin
a:=StrToInt(Edit1.Text); {переводим Edit1.Text в целочисленный тип данных
функцией StrToInt и помещаем результат
в переменную a}
b:=StrToInt(Edit2.Text); {переводим Edit2.Text в целочисленный тип данных
функцией StrToInt и помещаем результат
в переменную b}
c:=a+b; {присваиваем переменной c значение суммы переменных a и b}
Edit3.Text:= IntToStr(c); {Переводим значение переменной c из целого числа
в текст и присваиваем его свойству Text объекта
Edit2}
end;
Запускаем проект и проверяем работает ли все как нужно.
При программировании других кнопок возникнет необходимость работать с
вещественным типом данных. Например, при делении получается нецелое число и тип
данных integer здесь уже неприменим. Нужно использовать тип данных real. Также
вместо функции StrToInt и IntToStr придется использовать соответственно
StrToFloat и FloatToStr.
ЗАДАНИЕ: Остальные кнопки должны работать аналогично в соответствии с
теми арифметическими операциями которые на них изображены. Сохраните
работающий проект, впоследствии он нам может пригодиться для доработки.
9
V. Домашнее задание
§ 7 учебника, контрольные вопросы.
VI. Вопросы учащихся
VII. Итоги урока
Сегодня на уроке мы познакомились:
с типами данных, которые можно использовать в среде
программирования;
с правилами записи имен переменных;
изучили арифметические операции, выполняемые в среде
программирования;
изучили функции преобразования целочисленных и вещественных типов
в строковый и обратно;
создали проект «Простой калькулятор».
Литература:
1. Информатика. Учебник. Методическое пособие. Е. Вьюшкова, Н. Параскун.
Астана: Арман-ПВ, 2014 г.
2. Самоучитель по программированию на Free Pascal и Lazarus. Алексеев Е. Р.,
Чеснокова О. В., Кучер Т. В.. Донецк: Унитех, 2009 г.
3. Основы программирования в среде Lazarus. Мансуров К. Т.