47567 (Методи розробки структури програми), страница 2
Описание файла
Документ из архива "Методи розробки структури програми", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве . Не смотря на прямую связь этого архива с , его также можно найти и в других разделах. Архив можно найти в разделе "контрольные работы и аттестации", в предмете "информатика, программирование" в общих файлах.
Онлайн просмотр документа "47567"
Текст 2 страницы из документа "47567"
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Grids, Menus;
type
TForm1 = class (TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Edit2: TEdit;
Label3: TLabel;
Edit3: TEdit;
StringGrid1: TStringGrid;
BitBtn1: TBitBtn;
Label4: TLabel;
ListBox1: TListBox;
Memo1: TMemo;
BitBtn2: TBitBtn;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N3: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
BitBtn3: TBitBtn;
procedure BitBtn1Click (Sender: TObject);
procedure Edit1KeyPress (Sender: TObject; var Key: Char);
procedure Edit2KeyPress (Sender: TObject; var Key: Char);
procedure Edit3KeyPress (Sender: TObject; var Key: Char);
procedure Edit1Exit (Sender: TObject);
procedure Edit2Exit (Sender: TObject);
procedure Edit3Exit (Sender: TObject);
procedure BitBtn2Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure N3Click (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure BitBtn3Click (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure N7Click (Sender: TObject);
procedure N8Click (Sender: TObject);
procedure N9Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
X,Xn,Xk,H: real; // Параметри табулювання
fname: String [25] ; //
f: textfile;
implementation
{$R *. dfm}
// Повідомлення про помилку у завданні інтервалів табулювання
procedure P1;
begin
MessageDlg ('"Xп" не може бути більшим ніж "Хк". ' +#13
+'Введіть значення правильно. ', mtWarning, [mbCancel], 0);
Form1. Edit1. Text: ='';
Form1. Edit2. Text: ='';
end;
// Повідомлення про помилку у значенні кроку табулювання по відношенню до
// меж табулювання
procedure P2;
begin
MessageDlg ('Крок табулювання "H" не може приймати таких значень. ' +#13
+'Введіть значення правильно. ', mtWarning, [mbCancel], 0);
Form1. Edit3. Text: ='';
end;
// Повідомлення про помилку перевищення допустимої розмірності даних
procedure P3;
begin
MessageDlg ('Введене значення знаходться за межами допустимого. ' +#13
+'Введіть значення правильно. ', mtWarning, [mbCancel], 0);
end;
procedure P4;
begin
MessageDlg ('Треба ввести всі дані. ', mtWarning, [mbCancel], 0);
end;
// Процедура очищення даних у формі
procedure P5;
begin
Form1. Edit1. Text: ='';
Form1. Edit2. Text: ='';
Form1. Edit3. Text: ='';
Form1. Edit1. SetFocus;
Form1. Height: =167;
Form1. Position: =poScreenCenter;
Form1. Label4. Visible: =False;
Form1. Label5. Visible: =False;
Form1. Label6. Visible: =False;
Form1. Label7. Visible: =False;
Form1. StringGrid1. Visible: =False;
Form1. ListBox1. Items. Clear;
Form1. Memo1. Lines. Clear;
Form1. ListBox1. Visible: =False;
Form1. Memo1. Visible: =False;
end;
// Контроль введення даних у поля фории
procedure TForm1. Edit1KeyPress (Sender: TObject; var Key: Char);
begin
case Key of
'0'. '9',Chr (8):;
'-': if (pos ('-',Edit1. Text) = 0) and (length (Edit1. Text) = 0)
Then Key: = '-'
else Key: = Chr (0);
',': if pos (',',Edit1. Text) <>0
THen Key: = Chr (0);
else Key: = Chr (0);
end;
end;
procedure TForm1. Edit2KeyPress (Sender: TObject; var Key: Char);
begin
case Key of
'0'. '9',Chr (8):;
'-': if (pos ('-',Edit2. Text) = 0) and (length (Edit2. Text) = 0)
Then Key: = '-'
else Key: = Chr (0);
',': if pos (',',Edit2. Text) <>0
THen Key: = Chr (0);
else Key: = Chr (0);
end;
end;
procedure TForm1. Edit3KeyPress (Sender: TObject; var Key: Char);
begin
case Key of
'0'. '9',Chr (8):;
',': if pos (',',Edit3. Text) <>0
THen Key: = Chr (0);
else Key: = Chr (0);
end;
end;
procedure TForm1. Edit1Exit (Sender: TObject);
begin
If Edit1. Text='' Then Exit;
If (Abs (StrToFloat (Edit1. Text)) >100000) Then
begin
P3;
Edit1. Text: ='';
Edit1. SetFocus;
end;
end;
procedure TForm1. Edit2Exit (Sender: TObject);
begin
If Edit2. Text='' Then Exit;
If (Abs (StrToFloat (Edit2. Text)) >100000) Then
begin
P3;
Edit2. Text: ='';
Edit2. SetFocus;
end;
end;
procedure TForm1. Edit3Exit (Sender: TObject);
begin
If Edit3. Text='' Then Exit;
If (StrToFloat (Edit3. Text) >10000) Then
begin
P3;
Edit3. Text: ='';
Edit3. SetFocus;
end;
end;
// Основна процедура програми
Procedure TForm1. BitBtn1Click (Sender: TObject);
var
I,K: integer;
Y: array [0. .1000] of Real;
label L1;
begin
// Перевірка наявності правильних значень в полях введення і їх взаємної
// коректності, з виведенням відповдних повідомлень і формуванням переходів
IF (Edit1. Text = '') or (Edit2. Text = '') or (Edit3. Text = '') then
begin
P4;
Exit;
end;
IF Edit3. Text = '0' then
begin
MessageDlg ('Треба задати крок табулювання,'
+ #13 +' який має ненульове значення', mtWarning, [mbCancel], 0);
Edit3. Text: = '';
Edit3. SetFocus;
goto l1;
end;
Xn: =StrToFloat (Edit1. Text);
Xk: =StrToFloat (Edit2. Text);
H: =StrToFloat (Edit3. Text);
If Xk begin P1; goto L1; end; If (H=Abs (Xk-Xn)) Then begin P2; goto L1; end; X: =Xn-H; K: = Round ( (Abs ( (Xk-Xn)) /H)); If K>1000 Then begin MessageDlg ('Переповнення масиву даних. ' +#13 +'Треба зменшити інтервал або' +#13 +' збільшити крок табулювання', mtWarning, [mbCancel], 0); Edit1. Text: = ''; Edit2. Text: = ''; Edit3. Text: = ''; goto l1; end; // Фомування компонентів для виведення результатів StringGrid1. RowCount: = K+2; Form1. Height: =430; Form1. Position: =poScreenCenter; Label4. Visible: =True; Label5. Visible: =True; Label6. Visible: =True; Label7. Visible: =True; StringGrid1. Visible: =True; Label7. Caption: ='у полі memo'; ListBox1. Items. Clear; Memo1. Lines. Clear; ListBox1. Visible: =True; Memo1. Visible: =True; StringGrid1. Cells [0,0]: ='X'; StringGrid1. Cells [1,0]: ='Y'; // Розрахунок і виведення результатів For I: =0 to K do begin Y [I]: = (1+ln (2-Xn+H*I)) / (1-Xn+H*I+0.1); // Наступний рядок забезпечує виведення результату // з точністю до тисячних Y [I]: = Round (Y [I] *1000) /1000; StringGrid1. Cells [0, I+1]: =FloatToStr (Xn+H*I); // Виведення у таблицю StringGrid1. Cells [1, I+1]: =FloatToStr (Y [I]); ListBox1. Items. Add (FloatToStr (Xn+H*I) +' '+FloatToStr (Y [i])); // Виведення у список Memo1. Lines. Add (FloatToStr (Xn+H*I) +' '+FloatToStr (Y [i])); // Виведення у поле Мемо end; l1:; end; // Запис результатів у файл procedure TForm1. BitBtn2Click (Sender: TObject); begin ListBox1. Items. SaveToFile ('result. txt'); end; // Збереження у файлі procedure TForm1. N4Click (Sender: TObject); begin ListBox1. Items. SaveToFile (fname); end; // Зчитати з файла і вивести у поле Мемо із скриттям зайвих компонентів procedure TForm1. N3Click (Sender: TObject); begin If FileExists ('result. txt') = False Then Begin MessageDlg ('Файла не існує', mtWarning, [mbCancel], 0); Exit; end; Label7. Visible: =True; Label7. Caption: = 'Результати зчитування з файлу'; Memo1. Lines. LoadFromFile ('result. txt'); Memo1. Visible: =True; Label4. Visible: =False; Label5. Visible: =False; Label6. Visible: =False; ListBox1. Visible: =False; StringGrid1. Visible: =False; Form1. Height: =430; Memo1. SetFocus; Form1. Position: =poScreenCenter; end; // Створення файлу з перевіркою його існування procedure TForm1. FormActivate (Sender: TObject); begin fname: ='result. txt'; AssignFile (f, fname); If FileExists ('result. txt') = False Then begin rewrite (f); CloseFile (f); end; end; // Очищення полів введення procedure TForm1. BitBtn3Click (Sender: TObject); begin P5; end; procedure TForm1. N5Click (Sender: TObject); begin P5; end; // Вихід з програми procedure TForm1. N7Click (Sender: TObject); begin Close; end; // Виведення довідки procedure TForm1. N8Click (Sender: TObject); begin ShowMessage ('Томашов О.В. ' + #13 + ' студент групи ПЗС-504'); end; procedure TForm1. N9Click (Sender: TObject); begin ShowMessage ('Навчальна програма табулювання функції. ' + #13 + ' Версія 1.0'); end; end. "Требования и спецификации в разработке программ." М. Мир, 1984. В. Турский. "Методология программирования". Б. Іванов “Дискретная математика. Алгоритмы и программы". Конспект лекцій з предмету. Інтернет.
Список використаної літератури