for i:=1 to 5 do
for j:=1 to 5 do
if Length(StringGrid1.Cells[i-1,j-1])<>0
then a[i,j]:=StrToInt(StringGrid1.Cells[i-1,j-1])
else a[i,j]:=0;
begin
min:=a[1,1];
for i:=1 to 5 do
begin
if (min>a[i,1]) and ((a[i,1]>0)or(a[i,1]=0)) then min:=a[i,1];
end;
Label1.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,2];
for i:=1 to 5 do
begin
if (min>a[i,2]) and ((a[i,2]>0)or(a[i,2]=0)) then min:=a[i,2];
end;
Label2.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,3];
for i:=1 to 5 do
begin
if (min>a[i,3]) and ((a[i,3]>0) or(a[i,3]=0))then min:=a[i,3];
end;
Label3.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,4];
for i:=1 to 5 do
begin
if (min>a[i,4]) and ((a[i,4]>0)or(a[i,4]=0)) then min:=a[i,4];
end;
Label4.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,5];
for i:=1 to 5 do
begin
if (min>a[i,5]) and ((a[i,5]>0)or(a[i,5]=0)) then min:=a[i,5];
end;
Label5.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
9. Створюю ярлички-підказки для всіх елементів додатку . Для цього:
- виділяю компонент і до його властивості Hint вводжу пояснювальний текст;
- встановлюю властивість ShowHint (показ ярличка) у значення true.
10. Компілюю створений додаток, зберігаю його.
ЛІСТИНГ
unit Unit1; //назва проекта
interface // описання інтерфейсу
uses
Windows, Messages, SysUtils,Classes,Graphics, Controls, Forms,Dialogs,StdCtrls,Buttons, Grids; // підключення бібліотек
Type
TForm1 = class(TForm) // описання класу
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
BitBtn1: TBitBtn;
procedure BitBtn1Click(Sender: TObject); // опис процедури
private
{ Private declarations }
public
{ Public declarations }
end;
var //блок опису змінних
Form1: TForm1;
a:array [1..5,1..5] of integer; // опис двовимірного масиву цілочислового типу(5x5)
i,j,min:integer;
implementation
{$R *.DFM}
procedure TForm1.BitBtn1Click(Sender: TObject); //обробка подіі onclick на компоненті BitBtn1
begin
StringGrid1.SetFocus; // присвоєння фокусу елементу StringGrid1
for i:=1 to 5 do
for j:=1 to 5 do
if Length(StringGrid1.Cells[i-1,j-1])<>0 // якщо довжина рядка не дорівнює 0
then a[i,j]:=StrToInt(StringGrid1.Cells[i-1,j-1]) // то елементу a[i,j] присвоюється значення комірки елемента StringGrid1
else a[i,j]:=0;
begin
min:=a[1,1];
for i:=1 to 5 do
begin
if (min>a[i,1]) and ((a[i,1]>0)or(a[i,1]=0)) then min:=a[i,1]; // умова визначення мінімального елемента рядка
end;
Label1.Caption:='Мін. елем. рядка = '+IntToStr(min); // присвоєння властивості Caption мітки Label1 значення мінімального додатнього елемента рядка
end;
// аналогічно для наступних рядків
begin
min:=a[1,2];
for i:=1 to 5 do
begin
if (min>a[i,2]) and ((a[i,2]>0)or(a[i,2]=0)) then min:=a[i,2];
end;
Label2.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,3];
for i:=1 to 5 do
begin
if (min>a[i,3]) and ((a[i,3]>0) or(a[i,3]=0))then min:=a[i,3];
end;
Label3.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,4];
for i:=1 to 5 do
begin
if (min>a[i,4]) and ((a[i,4]>0)or(a[i,4]=0)) then min:=a[i,4];
end;
Label4.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
begin
min:=a[1,5];
for i:=1 to 5 do
begin
if (min>a[i,5]) and ((a[i,5]>0)or(a[i,5]=0)) then min:=a[i,5];
end;
Label5.Caption:='Мін. елем. рядка = '+IntToStr(min);
end;
end;
end.
Вигляд форми:
Результати виконання:
День9
Варіант 8
Постановка задачі
Варіант 8*
Самостійно розробити форму для проекту, що реалізує розв’язання даної файлової задачі. Передбачити наявність зручного інтерфейсу користувача, який дозволяє прочитати умову задачі, що її розв’язує проект, підказки щодо того, в яке вікно що треба вводити, коментарі в разі некоректних дій при введенні даних, тощо. Форма має вміщувати поле редагування для введення повного імені файлу, а також поле для перегляду вмісту файлу до і після його обробки. Перевірити проект для різних текстових файлів, перевірити сформовані ним файли на відповідність задачі, що її розв’язує проект, після чого записати його до окремої папки з назвою Day9. Папку записати до персональної флеш-карти пам’яті..
Задача: Зчитати англійський текст з текстового файлу, шлях до якого введений до рядка редагування Edit1, виділити слова, що починаються і закінчуються однією і тією ж літерою, після чого записати дані слова до текстового файлу, шлях до якого введений до рядка редагування Edit2. Передбачити можливість перегляду обох текстових файлів у відповідних вікнах форми (Label або Memo). Роботу програми перевірити шляхом перегляду файлу результату за допомогою текстового редактора Блокнот.
Опис форми та її компонентів
На формі міститься:
· 2 рядки введення Edit1, Edit2
· 2 мітки Label1, Label2
· 7 кнопок Button1, Button2, Button3, Button4,Button5, Button6, Button7
· Поле Memo1
· Компонент OpenDialog1
Опис алгоритму розв’язання задачі
1. Проектую розташування додатку всередині екрану (Натискаю на форму-Object Inspector-Properties-Position: poScreenCenter) і встановлюю заборону зміни його розмірів (Натискаю на форму-Object Inspector-Properties-BorderStyle: bsDialog).
2. Зменшую розмір форми до розумних розмірів.
3. Додаю на порожню форму 2 рядки введення Edit1, Edit2, 7 кнопок Button1, Button2, Button3, Button4, Button5, Button6, Button7, 2 мітки Label, Поле Memo1 та невізуальний компонент OpenDialog1 та розташовую їх зручним чином.
4. Клацаю мишею по формі, переходжу до Інспектора Об’єктів і задаю властивість Caption форми: Слова, що починаються і закінчуються однією і тією ж літерою.
5. Змінюю властивість Caption кнопки Button1 на Пошук слів, аналогічно: . Button2 і Button3 - …, Button4 - Вхідний файл, Button5 - Вихідний файл, Button6 – Очистити, Button7 – Вихід.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.