47809 (597360), страница 5
Текст из файла (страница 5)
# sozd Створення довідкової системи {Заголовок1} складається з двох етапів:
I – Створення файлу документів razdel1
II – Компіляція файлу довідки razdel2
# razdel1 Файл документа можна створити засобами процесора MS Word
{ текст розділу }
# razdel2 Компілюємо файл довідки програмою MS Help Workshop
{ текст розділу }
Усі виноски | ▼ |
Закрити |
# sozd
# razdel1
# razdel2
II Компіляція файлу довідки .
1. Запускаємо MS Help Workshop, його шлях:
C:\Program Files\Borland\Delphi\Help\Tools\Hcw.exe
2. У головному вікні програми:
File → New → Help Project → відкривається вікно Project File Name → вибираємо папку з проектом і з файлом rtf → у полі Ім'я файлу вводимо ім'я файлу довідкової системи → Зберегти.
3. Відкрилося вікно проекту довідкової системи .
4. Додаємо файл – документ довідкової системи.
Кнопка Files → у вікні Topic File → Add → вікно «Відкриття файлу» → вибираємо потрібний rtf – файл.
5. Задаємо характеристики вікна довідкової системи:
Кнопка Windows → Windows Properties → у поле Create a window named → слово “Main” – основний тип створюваного вікна → Ok → повернення у вікно Windows Properties.
6. Вкладка General → поле Title bar text → вводимо заголовок головного вікна (напр. Довідка).
7. Можна вибрати колір фону заголовка і тексту довідки
{ Вкладка Color → вибір Change → Ok}
8. Призначимо числові значення ідентифікаторам розділів довідки: {у вікні проекту довідкової системи натиснути кнопку Map → сховалося діалогове вікно Map → Add → у поле Topic ID вводимо ідентифікатор посилання → у поле Mapped numeric Value – відповідне значення }.
9. Компілюємо файл довідки:
Меню File → Compile → Compile a Help File установлюємо прапорець для автоматичного показу створеної довідки → Compile.
10. Створено файл довідки ім'я.hlp.
11. Підключаємо розроблений файл довідки в проект Delphi, зв'язуючи довідку з клавішею F1:
Object Inspector Form1 → Help File → ім'я.hlp;
→Help Context → 1.
12. Для виклику довідки натисканням на кнопку – процедура (Button чи пункт меню)
Procedure TForm1.Button1Click(Sender:TObject);
Begin
Winhelp (Form1.Handle,’ім'я.hlp’, Help_Context,1);
End;
{властивість Handle вікна доступно лише під час роботи роботи програми}/
13. Розроблений проект Delphi, файл – rtf і файл довідки.hlp повинні знаходиться в одній папці.
Література до курсу алгоритмічних мов та програмування:
Література
-
Архангельский А.Я. Программирование в Delphi 6.-
М.: ЗАО “Изд-80 БИНОМ”,2002г.-1120с.:ил.
2. Бобровский С. Delphi 5:Учебный курс-С-П:Питер, 2001.-640 c.: ил.
-
Глинский Я.Н., Анохин В. Е., Ряжская В. А. Turbo Pascal 7.0 и Delphi.
Учебное пособие .-СПб: ООО “ДиаСофтЮП” 2001.-208 c.
4. Культин Н.Б. Программирование на Obgect PASCAL в Delphi 5.
-СПБ.: БХВ-С.-П.,2000,-464 с.:ил.
5. Фаронов В. В. Delphi5. Учебный курс.-М.:’’Нолидж”, 2001.-608c.,ил.
6. Черняхівський В.В.Delphi-4: сучасна технологія візуального програмування.-
Львів: БаК, 1999. – 196 с.
7. Фаронов В.В. Turbo Pascal 7.0 Научный курс. Учебное пособие,
изд.- 7-е М.: „ Нолидж” , 2001, -576 с., ил.
МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ КІСІТКНЕУ імені Вадима Гетьмана Лабораторна робота №12 з предмету: "Алгоритмічні мови та програмування". Тема:” Робота з двовимірним масивом” Фах 5.080.405.027 ПЗ |
Мета: Освоїти методи обробки масиву.
Постановка задачі: Порахувати середній бал студентів за підсумками сесії. По запиту розрахувати і вивести середній бал по всій групі.
Хід роботи:
-
Відкрити новий додаток. Дати заголовок Form1.Caption ― 'Підсумки сесії':
Розмістити на формі:
-
Зі сторінки Standard мітку Label1; властивість Caption ― 'Підсумки сесії по групі 37_';
-
Зі сторінки Additional таблицю рядків StringGrid1; встановити властивості:
ColCount ― 5 {Кількість стовпців};
RowCount ― 5 {Кількість рядків};
FixedCols ― 0 {Кількість фіксованих стовпців};
FixedRows ― 1 {Кількість фіксованих рядків};
Name ― StringGrid1;
Options.goEditing ― True {Редагування осередків таблиці};
Options.goTab ― True;
-
Зі сторінки Standard прапорець CheckBox; установити його властивість Caption ― 'Середній бал по групі';
-
Зі сторінки Standard кнопку Button1; установити властивість Caption ― 'Пуск';
-
Зі сторінки Standard для висновку середнього бала по групі Label2 (чи Panel1); Caption ― ' ' (очистити).
-
Для початкового програмного заповнення заголовка таблиці обробити подія активації форми:
procedure TForm1.FormActivate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := 'Ф И О';
StringGrid1.Cells[1,0] := 'Програм.';
StringGrid1.Cells[2,0] := 'Мат.Ан.';
StringGrid1.Cells[3,0] := 'Диф.Ур.';
StringGrid1.Cells[4,0] := 'Ср.Бал';
end;
-
Основну обробку і введення елементів масиву (при заповненні таблиці) оформляти у виді процедури обробки події натискання клавіші "Пуск":
procedure TForm1.Button1Click(Sender: TObject);
var
a : array [1..5,1..10] of integer; {робочий масив}
S, {середній бал студента}
SR : real; {середній бал по групі}
i, {лічильник стовпців}
j : integer; {лічильник рядків}
begin
SR := 0;
For j := 1 to StringGrid1.RowCount-1 do {цикл по рядках}
begin
S := 0;
For і := 1 to 3 do {цикл по стовпцях}
begin
a[i,j] := StrToInt(StringGrid1.Cells[i,j]);
S := S + a[i,j];
end; {For і}
S := S/3; {ви числение середнього бала студента}
SR := SR+S;
end; {For j}
{аналіз значення прапорця - обчислення середнього бала по групі}
If CheckBox1.State=cbChecked then
begin
SR := SR/(StringGrid1.RowCount-1);
Label2.Caption := FloatToStr(SR);
end; {Then}
end; {Proc}
IV Виконати перевірку коректності введення даних процедурою OnKeyPressed. У випадку помилки вивести повідомлення "Дані не входять у діапазон [1..5]" і повторити введення.
V Перевірити, чи введеноі дані в осередок, якщо немає ― повідомлення на екран і коректування таблиці.
Контрольні питання:
-
Компонент StringGrid, його властивості і події.
-
Компонент CheckBox, його властивості і події.
-
Методи введення й обробки елементів масиву.
-
Перевірка коректності введення даних.
Протокол роботи:
unit lr12;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
StringGrid1: TStringGrid;
CheckBox1: TCheckBox;
Button1: TButton;
Label2: TLabel;
Button2: TButton;
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure StringGrid1KeyPress(Sender: TObject; var Key: Char
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
begin
StringGrid1.Cells[0,0] := 'ФИО';
StringGrid1.Cells[1,0] := 'Програм.';
StringGrid1.Cells[2,0] := 'Мат.ан.';
StringGrid1.Cells[5,0] := ‘Стипендия';
end;
procedure TForm1.Button2Click(Sender: TObject); {Процедура виходу з програми}
begin
form1.Close;
end;
procedure TForm1.Button1Click(Sender: TObject);{ Процедура обробки Button }
var
S, Sr : real;
i, j : integer;begin
Sr := 0;
for j := 1 to StringGrid1.RowCount do
begin
S := 0;
for i := 1 to 3 do
begin if StringGrid1.cells[i,j]<>''
then S := S+StrToInt(StringGrid1.Cells[i,j])
else StringGrid1.Cells[i,j] := '0';
end; //end i
S := S/3;
StringGrid1.Cells[4,j] := FloatToStrF(s,ffFixed,4,2);
if s=5 then StringGrid1.Cells[5,j] := '40.00'
else if (S=4) then StringGrid1.Cells[5,j] := '32.50'
else StringGrid1.Cells[5,j] := 'не получает';
sr := Sr+s;
end; //end i
if CheckBox1.State=cbChecked then
begin
Sr := sr/(stringGrid1.RowCount-1);
label2.Caption := 'Средний балл ='+FloatToStrF(Sr,ffFixed,4,2);
end; //end check
end; //end proc
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
#8, '2'..'5':;
else begin
MessageDlg('Оценка по 5-ой смистеме(2..5)',mtError,[mbOk,MbCancel],0);
Key := chr(0);
end;
end;
end;
end. //end program
Форми: