Краткая теория
К сегодняшнему занятию Вами изучены следующие элементы управления
Edit
Label
Button
RadioButton
CheckBox
SpinEdit (на вкладке Misc)
ListBox (на вкладке Standard)
Memo (на вкладке Standard)
Практикум. Скачайте по следующей ссылке zip-архив таблицы Д.И.Менделеева,сохранив его в личной папке. Правый щелчок мыши на ссылке вызовет выпадающее меню, в котором нужно выбрать команду "Сохранить объект как..."
[ Скачать файл ]
Об отметках
Основные упражнения не отмечены никакими специальными знаками, их выполнения достаточно для удовлетворительной оценки. Дополнительные упражнения отмечены "звездочками", их выполнение необходимо для получения повышенной оценки.
"5" - в отчете выполнены все основные упражнения, дополнительно выполнены упражнения с одной и двумя "звездочками".
"4" - в отчете выполнены все основные упражнения, дополнительно выполнены упражнения с одной "звездочкой".
"3" - в отчете выполнены все основные упражнения.
Упражнения
Шаг перехода. Изменить целое число, выводимое в Label1, на заданный в SpinEdit1 шаг. При нажатии на кнопку Назад, Button1, число уменьшается. При нажатии на кнопку Дальше, Button2, число увеличивается.
Пример интерфейса
Пример.
var Form1: TForm1; x : Integer; step : Integer; { ... } // Pred procedure TForm1.Button1Click(Sender: TObject); begin x := StrToInt(Label1.Caption); step := SpinEdit1.Value; Dec(x, step); // x := x - step; Label1.Caption := IntToStr(x); end; // Next procedure TForm1.Button2Click(Sender: TObject); begin x := StrToInt(Label1.Caption); step := SpinEdit1.Value; Inc(x, step); // x := x + step; Label1.Caption := IntToStr(x); end;
Следующий элемент. С помощью SpinEdit1 задать шаг step, на который
будет меняться атомный номер выбираемого химического
элемента. Химические элементы перечисленны в множестве.
При щелчке по кнопке Button2, Дальше, в Label1
выводится отстоящий от текущего на заданный шаг далее
по периодической таблице элементов.
При щелчке по кнопке Button1, Назад, в Label1
выводится предшествующий на step номеров ранее текущему
элемент по периодической таблице элементов.
Указание к выполнению. Использовать процедуры Inc(a, step)
и Dec(a, step) для перехода между элементами множества.
Использовать процедуры и функции
Inc(a, step)
Inc(a)
Dec(a, step)
Low(type)
Hi(type)
Ord
Pred
Succ
Пример интерфейса
Пример.
var Form1: TForm1; x : Integer; step : Integer; type t_mendeleev = (H, He, B, C, N, O, F, Ne, Si, P, S, Cl, Ar, Li, Be, Na, Mg, Al, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni); var me : set of t_mendeleev; notme : set of t_mendeleev; me_or_notme : set of t_mendeleev; element : t_mendeleev; elem_str : String; {...} // Pred procedure TForm1.Button1Click(Sender: TObject); begin step := SpinEdit1.Value; Dec(element, step); // x := x - step; for element := H to Ni do begin case element of H : elem_str := 'H'; He : elem_str := 'He'; B : elem_str := 'B'; C : elem_str := 'C'; N : elem_str := 'N'; O : elem_str := 'O'; F : elem_str := 'F'; Ne : elem_str := 'Ne'; Si : elem_str := 'Si'; P : elem_str := 'P'; S : elem_str := 'S'; Cl : elem_str := 'Cl'; Ar : elem_str := 'Ar'; //=============== me =============== Li : elem_str := 'Li'; Be : elem_str := 'Be'; Na : elem_str := 'Na'; Mg : elem_str := 'Mg'; Al : elem_str := 'Al'; K : elem_str := 'K'; Ca : elem_str := 'Ca'; Sc : elem_str := 'Sc'; Ti : elem_str := 'Ti'; V : elem_str := 'V'; Cr : elem_str := 'Cr'; Mn : elem_str := 'Mn'; Fe : elem_str := 'Fe'; Co : elem_str := 'Co'; Ni : elem_str := 'Ni'; end; end; Label1.Caption := elem_str; end; // Next procedure TForm1.Button2Click(Sender: TObject); begin step := SpinEdit1.Value; Inc(element, step); // x := x + step; for element := H to Ni do begin case element of H : elem_str := 'H'; He : elem_str := 'He'; B : elem_str := 'B'; C : elem_str := 'C'; N : elem_str := 'N'; O : elem_str := 'O'; F : elem_str := 'F'; Ne : elem_str := 'Ne'; Si : elem_str := 'Si'; P : elem_str := 'P'; S : elem_str := 'S'; Cl : elem_str := 'Cl'; Ar : elem_str := 'Ar'; //=============== me =============== Li : elem_str := 'Li'; Be : elem_str := 'Be'; Na : elem_str := 'Na'; Mg : elem_str := 'Mg'; Al : elem_str := 'Al'; K : elem_str := 'K'; Ca : elem_str := 'Ca'; Sc : elem_str := 'Sc'; Ti : elem_str := 'Ti'; V : elem_str := 'V'; Cr : elem_str := 'Cr'; Mn : elem_str := 'Mn'; Fe : elem_str := 'Fe'; Co : elem_str := 'Co'; Ni : elem_str := 'Ni'; end; end; Label1.Caption := elem_str; end; procedure TForm1.FormCreate(Sender: TObject); begin element := Ar; elem_str := 'Ar'; Label1.Caption := elem_str; end;
Классы химических элементов. Сформировать множества металлов и неметаллов из обозначений химических элементов.
Требования к выполнению. Химические элементы выводятся в поле Memo. Класс элементов выбирается с помощью RadioButton.
Пример интерфейса
Пример.
type
t_mendeleev = (H, He, B, C, N, O, F, Ne, Si, P, S, Cl, Ar, Li, Be, Na, Mg, Al, K, Ca, Sc, Ti, V, Cr, Mn, Fe, Co, Ni);
var
me : set of t_mendeleev;
notme : set of t_mendeleev;
procedure TForm1.Button1Click(Sender: TObject);
var
element : t_mendeleev;
elem_str : String;
begin
elem_str := ComboBox1.Text;
if elem_str = 'H' then element := H;
if elem_str = 'He' then element := He;
if elem_str = 'B' then element := B;
if elem_str = 'C' then element := C;
if elem_str = 'N' then element := N;
if elem_str = 'O' then element := O;
if elem_str = 'F' then element := F;
if elem_str = 'Ne' then element := Ne;
if elem_str = 'Si' then element := Si;
if elem_str = 'P' then element := P;
if elem_str = 'S' then element := S;
if elem_str = 'Cl' then element := Cl;
if elem_str = 'Ar' then element := Ar;
if elem_str = 'Li' then element := Li;
if elem_str = 'Be' then element := Be;
if elem_str = 'Na' then element := Na;
if elem_str = 'Mg' then element := Mg;
if elem_str = 'Al' then element := Al;
if elem_str = 'K' then element := K;
if elem_str = 'Ca' then element := Ca;
if elem_str = 'Sc' then element := Sc;
if elem_str = 'Ti' then element := Ti;
if elem_str = 'V' then element := V;
if elem_str = 'Cr' then element := Cr;
if elem_str = 'Mn' then element := Mn;
if elem_str = 'Fe' then element := Fe;
if elem_str = 'Co' then element := Co;
if elem_str = 'Ni' then element := Ni;
if element in me then RadioButton1.Checked := True;
if element in notme then RadioButton2.Checked := True;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
element : t_mendeleev;
begin
ComboBox1.ItemIndex := 0;
notme := [];
me := [];
for element := H to Ni do begin
notme := notme + [element];
if element > Ar then me := me + [element];
end;
notme := notme - me;
end;
*Группы химических элементов. Определить к какому классу веществ относится заданный химический элемент.
Требования к выполнению. Химический элементы выбирается из списка ComboBox. В программе формируются множества из металлов и неметаллов по заданным спискам. Определение принадлежности к первому или второму множеству производится с помощью команды in.
**Классы элементов 2. В программе к задаче "Классы элементов" создать массив-константу строк с обозначениями химических элементов. По этому массиву в цикле идентифицировать выбранный в списке элемент и преобразовать его к типу t_mendeleev, перечислимому типу, созданному пользователем.
Требования. Использовать тип множество для формирования классов неметаллов и металлов.