Урок «Создание проекта в системе программирования Lazarus»
ТЕМА: Создание проекта «Выбор компонентов персонального компьютера» в системе программирования
Цель урока: научить применять полученные ранее знания по теме «Основные составляющие персонального компьютера» при создании приложения в системе программирования Lazarus. Продемонстрировать связь таких предметов как «Аппаратно-программное обеспечение ЭВМ» и «Основы программирования».
ТИП УРОКА: комбинированный урок
ФОРМА ПРОВЕДЕНИЯ: самостоятельная работа, элементы лекции
ОБОРУДОВАНИЕ К УРОКУ: Персональный компьютер, мультимедийный проектор, интерактивная доска.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ: ОС Windows 10, Lazarus
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ:
1. О.П.Новожилов. Основы компьютерной техники, «Радиософт» , 2013.
2. https://docs.altlinux.org/books/freepascal.pdf
Ход урока
1. Организационный этап: тема урока, постановка целей и мотивация учебно-познавательной деятельности.
2. Актуализация опорных знаний
Что такое системы программирования?
Какие системы программирования вы знаете?
Что такое интерператоры и компиляторы?
Перечислите основные этапы разработки проекта.
Перечислите основные окна системы программирования
Каким образом можно изменить значения свойств программного объекта?
3. Постановка задачи
Для выполнения лабораторной работы необходимо определить способы предоставления информации о компонентах персонального компьютера и смоделировать выбор компонентов персонального компьютера (CPU, MotherBoard, Video, RAM) в среде Lazarus.
Технология моделирования выбора комплектующих включает следующие шаги:
выбор группы комплектующих (например, MotherBoard ) и формирование списка позиций из указанной группы с ценами;
показ изображений выбранной позиции;
выбор из списка нужной позиции;
показ цены выбранной позиции в валюте (доллар, евро);
вычисление суммы всех выбранных комплектующих.
Примерный вид создаваемого приложения показан на рис.1.
Рис.1.- Примерный вид создаваемого приложения.
Определение способа хранения информации
Информацию будем хранить в двух массивах, в первом – названия позиций в группах, во втором – соответствующие им цены.
Массив наименований (строковый) a[i,j] |
Массив цен (числовой) b[i,j] |
|||||||||
CPU1 |
Video1 |
MotherBoard1 |
RAM1 |
Цена CPU1 |
Цена Video1 |
Цена MotherBoard1 |
Цена RAM1 |
|||
CPU2 |
Video2 |
MotherBoard2 |
RAM2 |
… |
… |
… |
… |
|||
CPU3 |
Video3 |
MotherBoard3 |
RAM3 |
… |
… |
… |
… |
|||
CPU4 |
Video4 |
MotherBoard4 |
RAM4 |
Цена CPU4 |
Цена Video4 |
Цена MotherBoard4 |
Цена RAM4 |
Разработка интерфейса
Для данной задачи информацию будем располагать на двух формах: на первой форме – группы комплектующих и кнопка выбора, на второй – список наименований из выбранной группы, изображение выбранной позиции и стоимость выбранных компонентов.
При проектировании внешнего вида приложения необходимо создать форму 1 (Form1) и разместить на ней соответствующие компоненты (Button, RadioGroup, Image) и форму 2 (Form2) c компонентами ListBox, Label, Edit, Image.
Виды форм при проектировании приведены на рисунке 2.
Форма 1 |
Форма 2 |
Рис. 2. – Вид проектируемых форм.
4. Выполнение задания
Осуществить разработку интерфейса, написать и отладить нужный программный код.
Массивы заполняются данными в момент создания формы 1 (процедура Form1Create).
Фрагмент кода:
procedure TForm1.FormCreate(Sender: TObject);
begin
//заполнение массива позициями CPU
a[1,1] := 'AMD Ryzen 5 1600X ';
a[2,1] := 'Intel Core i7-8700K ';
a[3,1] := 'AMD Ryzen 5 1600 ';
a[4,1] := 'AMD Ryzen 7 1700 ';
…
// заполнение массива ценами позиций CPU
b[1,1] := 16500;
b[2,1] := 32000;
b[3,1] := 14000;
b[4,1] := 25000;
end;
Для кнопки Выбор создается процедура, позволяющая показать список выбранных позиций и их цены (номер столбца соответствующей категории запоминается в переменной j):
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0: j:=1; // номер столбца соответствующей группы
1: j:=2;
2: j:=3;
3: j:=4;
end;
end;
Заполнение поля ListBox (Форма 2) данными из массивов a и b:
procedure TForm2.FormActivate(Sender: TObject);
var i:integer;
begin
listbox1.Clear;
for i := 1 to 4 do
ListBox1.items.add(a[i,j] + ‘ ‘ + b[i,j]);
end;
По одинарному клику мыши на позиции выводится изображение компонента
Фрагмент кода:
procedure TForm2.ListBox1Click(Sender: TObject);
begin
case ListBox1.ItemIndex of
0 : begin
if j=1 then
Image1.Picture.LoadFromFile('1.png');
if j=2 then
Image1.Picture.LoadFromFile('vidio1.jpg');
if j=3 then
Image1.Picture.LoadFromFile('mat1.jpg');
if j=4 then
Image1.Picture.LoadFromFile('ozy1.jpg');
end;
…
Еnd;
Задание. Самостоятельно добавить нужный код.
По двойному клику мыши на позиции выводится цена выбранного компонента и накопление суммы выбранных товаров, а также перерасчет цены выбранной позиции в другие валюты.
Фрагмент кода:
procedure TForm2.ListBox1DblClick(Sender: TObject);
begin
i := ListBox1.ItemIndex;
s := s+b[i+1,j];
Form2.Edit1.Text:= inttostr(s);
g := s;
g := g/55.6717; //в доллары
Form2.Edit2.Text:= floattostrF(g,fffixed,6,2);
h := s;
h := h/68.6599; //в евро
Form2.Edit3.Text:= floattostrF(h,fffixed,6,2);
end;
Выбранный список позиций отображается на Форме 2.
При одинарном клике мыши |
При двойном клике мыши |
Задание. Предусмотреть занесение выбранных позиций с ценами в таблицу (компонент StringGrid), например, так:
Если необходимо расширить список наименований, то следует изменить границы массивов и при загрузке формы задать все необходимые значения. При работе с приложением можно выбирать наименования компонент сколько угодно раз.
5. Подведение итогов урока и рефлексия