- •Содержание
- •Лабораторная работа № 1
- •1.1 Главное окно Delphi.
- •1.2 Окно формы.
- •1.3 Окно инспектора формы.
- •1.4 Окно программы.
- •Лабораторная работа №2
- •Ход работы
- •5. Свойство Anchors.
- •6. Компонент tRadioGroup.
- •7. Компонент tGroupBox.
- •8. Компонент tCheckBox.
- •9. Компонент tScrollBar.
- •Лабораторная работа №3.
- •Ход работы
- •Лабораторная работа №4
- •Ход работы
- •1. Загрузите систему визуального программирования Delphi.
- •3. Компонент Image.
- •5. Шаблон формы.
- •6. Вспомогательное меню.
- •7. Диалоги.
- •I. Записать в файл. II.Считать из файла
- •8. Для проверки правильности ваших действий осуществите прогон программы.
- •Лабораторная работа №5
- •1. Загрузите систему визуального программирования Delphi.
- •2. Организуйте работу Вашего приложения, разработанного на предыдущем занятии (Lab4).
- •Лабораторная работа №6
- •Ход работы
- •1. Загрузите систему визуального программирования Delphi.
- •2. Создайте подкаталог Lab6 в своем каталоге.
- •4. Компонент tStatusBar.
- •5. Интерфейс Drag&Drop.
- •7. События, связанные с мышью.
- •8. Общие свойства компонентов Hint.
- •Лабораторная работа № 7
- •Ход работы
- •1. Загрузите систему визуального программирования Delphi.
- •3. Панели инструментов.
- •4. Многостраничный блокнот.
- •5. Компонент tPaintBox.
- •6. Компоненты tAnimate, tProgressBar, tUpDown, tShape, tTimer.
- •7. Календари.
- •Лабораторная работа № 8.
- •1. Загрузите систему визуального программирования Delphi.
- •3. Смените пиктограмму в левом верхнем углу формы, указав конкретный файл с рисунком пиктограммы в поле значения свойства Icon (пиктограмма) формы.
- •8. Вставьте на панель три флажка (объекты типа CheckBox).
- •17. Запрограммируйте команду «Выход» главного меню, воспользовавшись стандартной процедурой Close.
- •18. Запрограммируйте команду «Очистить поле вывода» контекстного меню.
- •20. Запустите созданную на этот момент программу и исследуйте ее работу.
- •21. Запрограммируйте команду «Табулировать».
- •22. Выполните программу и поупражняйтесь с разными значениями левой, правой границы и шага аргумента. Закройте окно программы «Табулирование функции».
- •Лабораторная работа № 9.
- •2. Откройте новую форму с многостраничным блокнотом.
- •3. Выделите и удалите клавишей Delete панель (Panel2) с кнопками ok, Cancel и Нelp в нижней части открытой формы.
- •4. Поменяйте заголовок формы с «Tabbed Notebook Dialog» на «Телефонный справочник» и поменяйте стиль границы окна (BorderStyle) на Sizeable (способный менять размер).
- •5. Выделите (щелкнув внутри страницы мышью) и удалите (Delete) третью страницу блокнота TabSbeet3.
- •7. Заполните обе страницы формы визуальными объектами так, как это показано на рис. 6 и рис. 7.
- •8. Сохраните выполненную на данный момент форму в своей папке.
- •18. Добавьте на форму два объекта - стандартные диалоги Windows для открытия и сохранения файлов.
- •19. Запрограммируйте процедуры открытия и сохранения файлов телефонного справочника (команды главного меню «Прочитать из файла» и «Записать в файл»).
- •20. Напишите процедуру создания формы.
- •21. Напишите процедуру заполнения полей редактирования NewEdit.
- •22. Напишите процедуру заполнения комбинированного списка NewComboBox.
- •24. Запрограммируйте команду главного меню «Сохранить изменения в списке записей».
- •25. Запрограммируйте кнопку перехода на предыдущую запись «Предыдущий».
- •26. Аналогично запрограммируйте кнопку «Следующий».
- •27. Сохраните программу и убедитесь в правильности ее работы.
Ход работы
Загрузите систему визуального программирования Delphi.
Поместите на форму компоненты:
Компонент
Свойства
Panel1
Caption – очистить. Align – alBottom.
Edit1, Edit2
Text – очистить.
Label1
Caption – фамилия.
RadioGroup1
Caption – пол. Items – Мужск., Женск. ItemIndex – 0.
RadioGroup2
Items – Средний балл юношей, Средний балл девушек, Общий средний балл. Caption – очистить.
BitBtn1
Caption – записать. Glyph – картинка из подкаталога Images| Buttons
BitBtn2
Kind - bkClose.
StringGrid1
Align – alClient. ColCount – 6. RowCount – 30. DefaultColWidth. Options| goEditting – True.
Form1
Caption – Лабораторная работа №3, Name – Lab3
Сохраните ваш проект в папке Lab3.
Напишите обработчики события:
Const nn=20; mm=5;
//Максимальное количество студентов =20.
// Максимальное количество экзаменов =5.
pp: array [0..1] of string[1] = ('m', 'g');
//Массив, содержащий половой признак.
var
Form1:TForm1;
n: integer;
f: array [1..nn] of string [30];
p: array [1..nn] of string [1];
a: array [1..nn, 1..mm] of real;
ss: array [1..nn] of real;
//n – текущий номер студента. Количество студентов;
//f – массив фамилий;
//p – массив для идентификации пола;
//a – массив оценок;
//ss – массив для среднего балла студентов;
Implementation
{$R *.DFm}
procedure TForm1.BitBtn1Click(Sender: TObject);
// Обработчик кнопки «Записать». Осуществляет ввод фамилии и пола.
// Переносит значения фамилии в фиксированный столбец таблицы.
begin
n:= n+1;
f[n]:= Edit1.Text;
p[n]:= pp[RadioGroup1.ItemIndex];
StringGrid1.Cells[0,n]:=f[n];
Edit1.SetFocus;
Edit1.Clear;
end;
procedure TForm1.FormActivate(Sender:TObject);
// Обработчик для задания значений фиксированной строки
// таблицы. Обнуление начального значения номера студента.
begin
n:=0;
Edit1.SetFocus;
With StringGrid1 do
Begin
Cells[1,0]:= 'Физика';
Cells[2,0]:= 'Математ.';
Cells[3,0]:= 'История';
Cells[4,0]:= 'Иностр.яз.';
Cells[5,0]:= 'Средний балл';
End; end;
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: integer; const Value:string);
//Событие возникает при завершении редактирования
// ячейки (ACol, ARow). В параметре Value обработчик
// получает результат вывода или редактирования текста.
var
b: real; j:byte;
//b – вещественное значение строки редактирования.
//j – параметр цикла для текущего номера столбца матрицы a.
begin
With StringGrid1 do
Begin
If Value = ' ' then Exit; //Если ничего не введено, то выйти из процедуры
//Начало защищенного блока.
Try b:=StrToFloat(Value)
Except ShowMessage('Не верный символ! '); b:=0;
end; //Конец защищенного блока.
//Игнорировать неверно введенную оценку.
If (b<1) or (b>5) then begin Cells[ACol,ARow]:= ' '; Exit; end;
Cells[ACol,ARow]:= Value;//Отразить оценку в таблице.
a[ARow,ACol]:=b; //Записать оценку в массив.
//Далее подсчет среднего балла.
ss[ARow]:=0;
for j:=1 to 4 do ss[ARow]:=ss[ARow] + a[ARow,j];
ss[ARow]:= ss[ARow]/4;
//Отобразить средний балл в 5-ом столбце таблицы.
Cells[5,ARow]:= FormatFloat('##.##', ss[ARow])
End; End;
Расчет среднего балла:
procedure TForm1.RadioGroup2Click(Sender: TObject);
// Событие возникает при смене признака расчета
var S:real; k, i: byte;
begin
S:=0; k:=0;
With RadioGroup2 do
Begin
Case ItemIndex of
0: begin // Расчет среднего балла юношей
for i:= 1 to n do
if p[i] = 'm' then begin S:=S + ss[i] ; k:=k + 1 end;
if k=0 then S:=0 else S:=S/k; end;
1: begin // Расчет среднего балла девушек
for i:= 1 to n do
if p[i] = 'g' then begin S:=S + ss[i] ; k:=k + 1 end;
if k=0 then S:=0 else S:=S/k; end;
2: begin // Расчет общего среднего балла
for i:= 1 to n do
S:=S + ss[i] ;
if n=0 then S:=0 else S:=S/n; end; end; end;
// Вывод результата в окно редактора
Edit2.Text := FormatFloat('##.##',S);
end; end;
5. Обратите внимание на то, что у компонента StringGrid1 существует обработчик OnClick. Он равен обработчику OnClick для RadioGroup2. Установлен он выбором из списка событий, который открывается при щелчке по правой части строки инспектора событий.
Компиляция и отладка приложения.
Подготовка приложения к отладке:
Прежде чем отлаживать приложение, его необходимо откомпилировать специальным образом. Для этого следует выполнить команду ProjectOptions и выбрать страницу Compiler. На этой странице необходимо выбрать опции Debug Information, Local Symbols и Reference Info. После этого необходимо выполнить команду Project/Compiler (комбинация клавиш <Ctrl-F9>). Теперь приложение готово к отладке.
Командой View/Debug windows/Watches вызовите окно наблюдений. Окно наблюдений используется в отладочном режиме для наблюдения за изменением значений выражений, помещенных в это окно. Для добавления нового выражения щелкните по окну правой кнопкой мыши и выберите опцию Add Watch. В строке Expression введите выражение Acol. Окно Repeat count определяет количество показываемых элементов массивов данных; переключатель Enabled разрешает или запрещает вычисление выражения. Остальные элементы определяют вид представления значения. В отладочном режиме текущее значение любой переменной можно посмотреть, указав на нее курсором: значение появится в ярлычке с курсором.
Установите две точки контрольного останова: щелкните мышью, указав на служебную зону слева от нужной строки в программе (выберите строки, содержащие Acol).
Выполните программу (<F9>). После останова выполняйте программу построчно. Посмотрите значения переменных при помощи установки на них курсора.
Попробуйте другие методы отладки, например Run To Cursor, Program Pause, Program Reset.
Задания:
Разработать приложение для обработки результатов соревнований. Исходные данные: фамилия спортсмена, время старта, время финиша, контрольное время. Вывести фамилии спортсменов, уложившихся в контрольное время. Рекомендации: фамилии спортсменов задать в виде типизированной константы-массива; время старта и время финиша вводить в таблицу; результат отразить в компоненте TMemo.
С помощью таблицы TStringGrid ввести элементы матрицы и подсчитать сумму квадратов его столбцов. Организовать по выбору расчет наибольшей суммы элементов столбцов или наибольшей суммы элементов строк. Результат отобразить в компоненте TEdit.
Рассчитать средние параметры группы студентов. Исходные данные: фамилии студентов, количество баллов, набранных каждым студентом при тестировании, рост и вес каждого студента. Рассчитать средний балл, средний вес и средний рост студентов в группе.
Представить в виде таблицы итоги деятельности четырех агентов фирмы по сбыту n-й продукции. Исходной информацией считать фамилии агентов и объем продаж по кварталам. Рассчитать объем продаж каждого агента за год и вывести фамилию агента, имеющего наилучший результат.
Представить в виде таблицы ведомость сведений о пропусках занятий студентами. Исходной информацией является: фамилия, номер группы, количество часов, пропущенных по уважительной и неуважительной причине. Получить список студентов, пропустивших более ХХХ часов по неуважительной причине. ХХХ – вводимая величина.