РефератыИнформатикаПрПрограммирование 3

Программирование 3

КУРСОВАЯ РАБОТА


По программированию


Вариант 4


Выполнил:


Студент заочного отделения


Группы ИТ-21z


Медведев Николай Александрович


Руководитель:


Емельянов Д.А


Оглавление


Условие задач. 2


Текст программы.. 2


Результаты работы программы.. 2


Список используемой литературы:2


Условие задач

Задача 1.


Составить программу, которая позволяет численно убедиться в справедливости равенства, приведенного ниже, с заданной точностью E:



Вычисления необходимо продолжать до тех пор, пока для очередного члена ряда А не будет выполнено условие: . Значение Е вводятся в диалоге по запросу пользователя (например, ). Вывести значения всех членов ряда и количество итераций, необходимых для достижения заданной точности.


Задача 2.


Задан одномерный массив из N целых чисел. Заполнить массив случайными числами из интервала [A, B]. Предусмотреть ввод в массив как положительных, так и отрицательных чисел. Значения N, A, B задаются в диалоге с компьютером по желанию пользователя. Составить программу, которая находит разность между суммой квадратов всех четных элементов массива и квадратом суммы всех нечетных элементов. Исходный массив и результаты работы вывести на экран.


Задача 3.


Задан двумерный массив M2[n, m] целых чисел. Заполнить массив случайными числами из интервала [A, B]. Предусмотреть ввод в массив как положительных, так и отрицательных чисел. Значения n, m, A, B задаются в диалоге с компьютером по желанию пользователя. Составить программу, которая вычисляет сумму и количество отрицательных и сумму и количество положительных элементов для каждого столбца этого массива. Исходный массив и все необходимые для проверки результаты работы вывести на экран.


Задача 4.


Составить программу, которая позволяет ввести с клавиатуры произвольный текст, удаляет все гласные буквы в этом тексте и считает количество сделанных удалений. Полученный текст вывести на экран.


Задача 5.


Составить программу табулирования функции «спираль», заданной параметрически:




Где: , a>0,


На интервале изменения параметра с заданным шагом h.


Все необходимые значения (t0, tk, h, A) задаются в диалоге с компьютером по желанию пользователя. На экран выводится таблица значений t, x, y на заданном интервале изменения параметра t с заданным шагом. Привести графическую иллюстрацию задачи: построить график заданной функции на заданном интервале с необходимыми комментариями (подписи осей координат, формула графика). Параметры функции подобрать так, чтобы ее график был «фотогеничен».


Задача 6.


Написать программу создания/чтения файла, содержащего сведения по теме «служба знакомств». Каждая запись файла должна содержать 4-5 полей (названия придумать самостоятельно). Файл должен содержать не менее 8-10 записей.


Текст программы

unit Unit1;


interface


uses


Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,


Dialogs, Menus, ComCtrls, XPMan, StdCtrls, ExtCtrls, Buttons, Grids;


type


TForm1 = class(TForm)


MainMenu1: TMainMenu;


PageControl1: TPageControl;


PageControl2: TPageControl;


TabSheet1: TTabSheet; TabSheet8: TTabSheet; TabSheet7: TTabSheet; TabSheet12: TTabSheet;


TabSheet2: TTabSheet; TabSheet9: TTabSheet; TabSheet6: TTabSheet; TabSheet5: TTabSheet;


TabSheet3: TTabSheet; TabSheet10: TTabSheet; TabSheet13: TTabSheet; TabSheet11: TTabSheet;


TabSheet4: TTabSheet;


Button1: TButton; Button7: TButton; Button13: TButton; Button49: TButton;


Button2: TButton; Button8: TButton; Button14: TButton; Button47: TButton;


Button3: TButton; Button9: TButton; Button15: TButton; Button50: TButton;


Button4: TButton; Button10: TButton; Button16: TButton; Button48: TButton;


Button5: TButton; Button11: TButton; Button17: TButton; Button46: TButton;


Button6: TButton; Button12: TButton; Button18: TButton; Button45: TButton;


Button19: TButton; Button22: TButton; Button25: TButton; Button42: TButton;


Button20: TButton; Button23: TButton; Button26: TButton; Button39: TButton;


Button21: TButton; Button24: TButton; Button27: TButton; Button44: TButton;


Button28: TButton; Button29: TButton; Button37: TButton; Button41: TButton;


Button30: TButton; Button33: TButton; Button32: TButton; Button38: TButton;


Button31: TButton; Button34: TButton; Button35: TButton; Button43: TButton;


Button36: TButton; Button40: TButton;


N2: TMenuItem; N11: TMenuItem; N51: TMenuItem; N22: TMenuItem; N7: TMenuItem;


N3: TMenuItem; N21: TMenuItem; N61: TMenuItem; N23: TMenuItem; N8: TMenuItem;


N4: TMenuItem; N31: TMenuItem; N6: TMenuItem; N24: TMenuItem; N9: TMenuItem;


N5: TMenuItem; N41: TMenuItem; N12: TMenuItem; N52: TMenuItem; N1: TMenuItem;


N62: TMenuItem;


Panel1: TPanel; Panel4: TPanel; Panel7: TPanel; Panel6: TPanel;


Panel2: TPanel; Panel5: TPanel; Panel8: TPanel; Panel3: TPanel;


Label8: TLabel; Label12: TLabel; Label16: TLabel; Label20: TLabel; Label121: TLabel;


Label9: TLabel; Label13: TLabel; Label17: TLabel; Label21: TLabel; Label2: TLabel;


Label10: TLabel; Label14: TLabel; Label18: TLabel; Label22: TLabel; Label120: TLabel;


Label11: TLabel; Label15: TLabel; Label19: TLabel; Label23: TLabel; Label116: TLabel;


Label24: TLabel; Label28: TLabel; Label32: TLabel; Label36: TLabel; Label112: TLabel;


Label25: TLabel; Label29: TLabel; Label33: TLabel; Label37: TLabel; Label108: TLabel;


Label26: TLabel; Label30: TLabel; Label34: TLabel; Label38: TLabel; Label119: TLabel;


Label27: TLabel; Label31: TLabel; Label35: TLabel; Label39: TLabel; Label115: TLabel;


Label1: TLabel; Label4: TLabel; Label7: TLabel; Label42: TLabel; Label111: TLabel;


Label5: TLabel; Label40: TLabel; Label43: TLabel; Label107: TLabel; Label118: TLabel;


Label3: TLabel; Label6: TLabel; Label41: TLabel; Label44: TLabel; Label114: TLabel;


Label45: TLabel; Label48: TLabel; Label51: TLabel; Label54: TLabel; Label110: TLabel;


Label46: TLabel; Label49: TLabel; Label52: TLabel; Label55: TLabel; Label106: TLabel;


Label47: TLabel; Label50: TLabel; Label53: TLabel; Label56: TLabel; Label117: TLabel;


Label57: TLabel; Label59: TLabel; Label61: TLabel; Label63: TLabel; Label113: TLabel;


Label58: TLabel; Label60: TLabel; Label62: TLabel; Label64: TLabel; Label109: TLabel;


Label65: TLabel; Label70: TLabel; Label71: TLabel; Label72: TLabel; Label105: TLabel;


Label73: TLabel; Label66: TLabel; Label67: TLabel; Label75: TLabel; Label104: TLabel;


Label68: TLabel; Label76: TLabel; Label79: TLabel; Label82: TLabel; Label99: TLabel;


Label69: TLabel; Label77: TLabel; Label80: TLabel; Label83: TLabel; Label94: TLabel;


Label74: TLabel; Label78: TLabel; Label81: TLabel; Label89: TLabel; Label88: TLabel;


Label84: TLabel; Label90: TLabel; Label95: TLabel; Label100: TLabel; Label103: TLabel;


Label85: TLabel; Label91: TLabel; Label96: TLabel; Label101: TLabel; Label98: TLabel;


Label86: TLabel; Label92: TLabel; Label97: TLabel; Label102: TLabel; Label93: TLabel;


Label87: TLabel;


Image1: TImage; Image6: TImage; Image5: TImage; Image10: TImage;


Image2: TImage; Image7: TImage; Image9: TImage; Image12: TImage;


Image3: TImage; Image8: TImage; Image4: TImage; Image11: TImage;


Memo1: TMemo; Memo3: TMemo;


Memo2: TMemo; Memo5: TMemo;


Edit1: TEdit; Edit16: TEdit; Edit23: TEdit; Edit34: TEdit; Edit49: TEdit;


Edit2: TEdit; Edit17: TEdit; Edit24: TEdit; Edit35: TEdit; Edit48: TEdit;


Edit5: TEdit; Edit18: TEdit; Edit25: TEdit; Edit36: TEdit; Edit47: TEdit;


Edit6: TEdit; Edit4: TEdit; Edit26: TEdit; Edit37: TEdit; Edit46: TEdit;


Edit7: TEdit; Edit3: TEdit; Edit27: TEdit; Edit38: TEdit; Edit45: TEdit;


Edit8: TEdit; Edit14: TEdit; Edit28: TEdit; Edit39: TEdit; Edit44: TEdit;


Edit9: TEdit; Edit15: TEdit; Edit29: TEdit; Edit40: TEdit; Edit54: TEdit;


Edit10: TEdit; Edit19: TEdit; Edit30: TEdit; Edit41: TEdit; Edit56: TEdit;


Edit11: TEdit; Edit20: TEdit; Edit31: TEdit; Edit42: TEdit; Edit55: TEdit;


Edit12: TEdit; Edit21: TEdit; Edit32: TEdit; Edit43: TEdit; Edit33: TEdit;


Edit13: TEdit; Edit22: TEdit;


Timer1: TTimer; Bevel1: TBevel;


Timer2: TTimer; Bevel2: TBevel;


ScrollBar1: TScrollBar; PaintBox1: TPaintBox;


StringGrid1: TStringGrid;


StringGrid2: TStringGrid;


StringGrid3: TStringGrid;


SaveDialog1: TSaveDialog;


OpenDialog1: TOpenDialog;


procedureFormCreate(Sender: TObject); procedure Button51Click(Sender: TObject);


procedure N5Click(Sender: TObject); procedure PageControl2Change(Sender: TObject);


procedure N6Click(Sender: TObject); procedure PageControl1Change(Sender: TObject);


procedure N11Click(Sender: TObject); procedure Button49Click(Sender: TObject);


procedure N31Click(Sender: TObject); procedure Button48Click(Sender: TObject);


procedure N41Click(Sender: TObject); procedure FormActivate(Sender: TObject);


procedure N51Click(Sender: TObject); procedure Button47Click(Sender: TObject);


procedure N61Click(Sender: TObject); procedure Button46Click(Sender: TObject);


procedure N21Click(Sender: TObject); procedure Button45Click(Sender: TObject);


procedure Button1Click(Sender: TObject); procedure Button44Click(Sender: TObject);


procedure N12Click(Sender: TObject); procedure Button41Click(Sender: TObject);


procedure Button2Click(Sender: TObject); procedure StringGrid2Click(Sender: TObject);


procedure N22Click(Sender: TObject); procedure Button43Click(Sender: TObject);


procedure Button3Click(Sender: TObject); procedure Button42Click(Sender: TObject);


procedure Button6Click(Sender: TObject); procedure Button40Click(Sender: TObject);


procedure Button4Click(Sender: TObject); procedure Button39Click(Sender: TObject);


procedure N23Click(Sender: TObject); procedure Button38Click(Sender: TObject);


procedure Button7Click(Sender: TObject); procedure Button36Click(Sender: TObject);


procedure Button5Click(Sender: TObject); procedure Button35Click(Sender: TObject);


procedure Button9Click(Sender: TObject); procedure Button34Click(Sender: TObject);


procedure N24Click(Sender: TObject); procedure Button37Click(Sender: TObject);


procedure N52Click(Sender: TObject); procedure Button31Click(Sender: TObject);


procedure N62Click(Sender: TObject); procedure Button33Click(Sender: TObject);


procedure Button8Click(Sender: TObject); procedure Button32Click(Sender: TObject);


procedure Button16Click(Sender: TObject); procedure BitBtn8Click(Sender: TObject);


procedure Button14Click(Sender: TObject); procedure BitBtn7Click(Sender: TObject);


procedure Button17Click(Sender: TObject); procedure BitBtn6Click(Sender: TObject);


procedure Button13Click(Sender: TObject); procedure BitBtn5Click(Sender: TObject);


procedure Button11Click(Sender: TObject); procedure Button30Click(Sender: TObject);


procedure Button15Click(Sender: TObject); procedure Button29Click(Sender: TObject);


procedure Button12Click(Sender: TObject); procedure Button28Click(Sender: TObject);


procedure Button10Click(Sender: TObject); procedure ScrollBar1Change(Sender: TObject);


procedure Button18Click(Sender: TObject); procedure Button27Click(Sender: TObject);


procedure Button21Click(Sender: TObject); procedure Timer2Timer(Sender: TObject);


procedure Button19Click(Sender: TObject); procedure Timer1Timer(Sender: TObject);


procedure N8Click(Sender: TObject); procedure Button26Click(Sender: TObject);


procedure N9Click(Sender: TObject); procedure Button25Click(Sender: TObject);


procedure Button22Click(Sender: TObject); procedure Button24Click(Sender: TObject);


procedure Button20Click(Sender: TObject); procedure Button23Click(Sender: TObject);


private


{ Private declarations }


public


{ Public declarations }


end;


var


Form1: TForm1;


{ описаниеглобальныхпеременных }


VarKs,KSim:integer; // Ks-кол-вослов KSim-кол-восимволов


Mas:array [1..1000000,1..91] of string; // Массив 5-гозадания


MasEx2:array [1..9999] of integer; // Massive Exercise 2 - Массивупражнения 2


M2:array [1..999, 1..999] of integer; // Массив 3-гозадания


PBA,PBB,PBDx,PBmx,PBmy,PBx,PBy:real;


PBx0,PBy0,PBH:integer;


xmin, xmax, ymin, ymax : real; // математические (декартовы) координаты


RazX,RazY:integer; // переменные для размеров PaintBox’a


Implementation


{$R *.dfm}


{=== Функции перевода координат из декартовой системы в экранную =====}


{==================================================================}


FUNCTION Xs( x : real ) : integer;


BEGIN


Xs := round( RazX * (x-xmin)/(xmax-xmin) );


END;


FUNCTION Ys( y : real ) : integer;


BEGIN


Ys := round( RazY * (1-(y-ymin)/(ymax-ymin)) );


END;


{=================================================================}


{=== Процедура перевода фокуса на выбранную ячейку ==================}


procedureSetGridFocus(SGrid: TStringGrid; r, c: integer);


var


SRect: TGridRect;


begin


withSGrid do


begin


SetFocus;


Row := r;


Col := c;


SRect.Top := r;


SRect.Left := c;


SRect.Bottom := r;


SRect.Right := c;


Selection :=SRect;


end;


end;


{=== Процедура сохранения данных в текстовый фаил ===================}


{==================================================================}


procedureSaveStringGrid(StringGrid: TStringGrid; constFileName: TFileName);


var f:TextFile;


i, k:Integer;


begin


AssignFile(f, FileName);


Rewrite(f);


withStringGriddo


begin


// Читаем номер колонки и столбца


Writeln(f, ColCount);


Writeln(f, RowCount);


// цикл по ячейкам


for i := 0 to ColCount - 1 do


for k := 0 to RowCount - 1 do


Writeln(F, Cells[i, k]);


end;


CloseFile(F);


end;


{=== Процедура загрузки данных из текстового фаила =====================}


{===================================================================}


procedureLoadStringGrid(StringGrid: TStringGrid; constFileName: TFileName);


var f:TextFile;


iTmp, i, k:Integer;


strTemp:String;


begin


AssignFile(f, FileName);


Reset(f);


withStringGrid do


begin


// Получаемколичествоколонок


Readln(f, iTmp);


ColCount:= iTmp;


// Получаем количество колонок строк


Readln(f, iTmp);


RowCount:=iTmp;


// Цикл по ячейкам и заполнению значений


for i := 0 to ColCount - 1 do


for k := 0 to RowCount - 1 do


begin


Readln(f, strTemp);


Cells[i, k] := strTemp;


end;


end;


CloseFile(f);


end;


{=== Процедура отрисовки осей и фона =================================}


{===================================================================}


procedure OSI;


begin


with form1.PaintBox1,canvas do


begin


PBx0:=width div 2;


PBy0:=height div 2;


brush.Color:=clwhite;


rectangle(0,0,width,height);


pen.Color:=clblack;


pen.style:=pssolid;


moveto(PBx0,0); lineto(PBx0,height);


moveto(0,PBy0); lineto(width,PBy0);


end;


end;


{===================================================================}


procedure TForm1.FormCreate(Sender: TObject);


vari,j:integer;


begin


PageControl1.ActivePage:=TabSheet1;


StringGrid2.Cells[0,0]:='Фамилия';


StringGrid2.Cells[1,0]:='Имя';


StringGrid2.Cells[2,0]:='Отчество';


StringGrid2.Cells[3,0]:='Пол';


StringGrid2.Cells[4,0]:='Возраст';


StringGrid2.Cells[5,0]:='Ищет (пол)';


StringGrid2.Cells[6,0]:='Сколькилет';


StringGrid2.Cells[7,0]:='Сцелью';


StringGrid3.Cells[0,0]:=' t';


StringGrid3.Cells[1,0]:=' X=R*Cos(t)';


StringGrid3.Cells[2,0]:=' Y=R*Sin(t)';


KSim:=0;


Form1.Width:=598; Form1.Height:=484;


PageControl1.Top:=0; PageControl1.Height:=409;


PageControl1.Left:=0; PageControl1.Width:=595;


Panel1.Visible:=False; Panel4.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel6.Visible:=False;


Panel1.Top:=0; Panel2.Top:=0; Panel3.Top:=0;


Panel1.Left:=0; Panel2.Left:=0; Panel3.Left:=0;


Panel1.Height:=409; Panel2.Height:=409; Panel3.Height:=409;


Panel1.Width:=595; Panel2.Width:=595; Panel3.Width:=595;


Panel4.Top:=0; Panel5.Top:=0; Panel6.Top:=0;


Panel4.Left:=0; Panel5.Left:=0; Panel6.Left:=0;


Panel4.Height:=409; Panel5.Height:=409; Panel6.Height:=409;


Panel4.Width:=595; Panel5.Width:=595; Panel6.Width:=595;


{=== Созданиетаблицы ===============================================}


StringGrid1.Font.Size:=8;


StringGrid1.Cells[0,0]:='Сумма "-"';


StringGrid1.Cells[0,1]:='Кол-во. "-"';


StringGrid1.Cells[0,2]:='Сумма "+"';


StringGrid1.Cells[0,3]:='Кол-во. "+"';


StringGrid1.Cells[0,4]:=' №';


StringGrid1.ColWidths[0]:=65;


StringGrid1.RowCount:=11;


StringGrid1.ColCount:=11;


for i:=1 to 11 do StringGrid1.Cells[i,4]:=IntToStr(i);


for i:=1 to 11 do begin


StringGrid1.Cells[0,i+4]:=' '+IntToStr(i);


// StringGrid1.Canvas.TextOut(Rect.Left, Rect.Top, StringGrid1.Cells[5,5);


end;


{====================================================================}


end;


procedure TForm1.N5Click(Sender: TObject);


begin


Close;


end;


procedure TForm1.N6Click(Sender: TObject);


begin


PageControl1.ActivePage:=TabSheet1;


PageControl1.Visible:=True;


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


Form1.Height:=484;


N8.Visible:=False;


N9.Visible:=False;


end;


procedure TForm1.N11Click(Sender: TObject);


begin


PageControl1.Visible:=true;


PageControl1.ActivePage:=TabSheet2;


PageControl2.ActivePage:=TabSheet8;


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


N8.Visible:=True;


N9.Visible:=True;


end;


procedure TForm1.N31Click(Sender: TObject);


begin


PageControl1.Visible:=true;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.ActivePage:=TabSheet4;


PageControl2.ActivePage:=TabSheet10;


N8.Visible:=True;


N9.Visible:=True;


end;


procedure TForm1.N41Click(Sender: TObject);


begin


PageControl1.Visible:=true;


Panel1.Visible:=false;


Panel2.Visible:=False;


Panel3.Visible:=False;


PageControl1.ActivePage:=TabSheet5;


PageControl2.ActivePage:=TabSheet11;


N8.Visible:=True;


N9.Visible:=True;


end;


procedure TForm1.N51Click(Sender: TObject);


begin


PageControl1.Visible:=true;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.ActivePage:=TabSheet6;


PageControl2.ActivePage:=TabSheet12;


N8.Visible:=True;


N9.Visible:=True;


end;


procedure TForm1.N61Click(Sender: TObject);


begin


PageControl1.Visible:=true;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.ActivePage:=TabSheet7;


PageControl2.ActivePage:=TabSheet13;


N8.Visible:=True;


N9.Visible:=True;


end;


procedure TForm1.N21Click(Sender: TObject);


begin


PageControl1.Visible:=true;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.ActivePage:=TabSheet3;


PageControl2.ActivePage:=TabSheet9;


N8.Visible:=True;


N9.Visible:=True;


end;


procedure TForm1.Button1Click(Sender: TObject);


begin


Panel1.Visible:=true;


PageControl1.Visible:=false;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.N12Click(Sender: TObject);


begin


PageControl1.Visible:=False;


Panel1.Visible:=True; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=False;


Panel3.Visible:=false; Panel4.Visible:=False;


Form1.Height:=484;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button2Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=True;


PageControl1.ActivePage:=TabSheet2;


PageControl2.ActivePage:=TabSheet8;


N8.Visible:=true;


N9.Visible:=true;


end;


procedure TForm1.N22Click(Sender: TObject);


begin


PageControl1.Visible:=False;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=true; Panel5.Visible:=False;


Panel3.Visible:=false; Panel4.Visible:=False;


Form1.Height:=484;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button3Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=false;


Panel2.Visible:=true; Panel5.Visible:=false;


Panel3.Visible:=false; Panel4.Visible:=false;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button6Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=true; Panel4.Visible:=False;


Panel2.Visible:=false; Panel6.Visible:=False;


Panel3.Visible:=false; Panel5.Visible:=False;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button4Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=True;


PageControl1.ActivePage:=TabSheet3;


PageControl2.ActivePage:=TabSheet9;


N8.Visible:=true;


N9.Visible:=true;


end;


procedure TForm1.N23Click(Sender: TObject);


begin


PageControl1.Visible:=False;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=False;


Panel3.Visible:=true; Panel4.Visible:=False;


Form1.Height:=484;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button7Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=True;


PageControl1.ActivePage:=TabSheet4;


PageControl2.ActivePage:=TabSheet10;


N8.Visible:=true;


N9.Visible:=true;


end;


procedure TForm1.Button5Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=false;


Panel2.Visible:=false; Panel5.Visible:=false;


Panel3.Visible:=true; Panel4.Visible:=false;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button9Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=true; Panel5.Visible:=False;


Panel3.Visible:=false; Panel4.Visible:=False;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.N24Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=true;


PageControl1.Visible:=False;


Form1.Height:=484;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.N52Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=true;


Panel3.Visible:=False; Panel4.Visible:=false;


PageControl1.Visible:=False;


Form1.Height:=484;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.N62Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=true;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=false;


PageControl1.Visible:=False;


Form1.Height:=484;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button8Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=false;


Panel2.Visible:=false; Panel5.Visible:=false;


Panel3.Visible:=false; Panel4.Visible:=true;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button16Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=false;


Panel2.Visible:=false; Panel5.Visible:=true;


Panel3.Visible:=false; Panel4.Visible:=false;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button14Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=true;


Panel2.Visible:=false; Panel5.Visible:=false;


Panel3.Visible:=false; Panel4.Visible:=false;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button17Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=False;


Panel3.Visible:=true; Panel4.Visible:=False;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button13Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=False;


Panel3.Visible:=false; Panel4.Visible:=true;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button11Click(Sender: TObject);


begin


PageControl1.Visible:=false;


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=true;


Panel3.Visible:=false; Panel4.Visible:=False;


N8.Visible:=false;


N9.Visible:=false;


end;


procedure TForm1.Button15Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=True;


PageControl1.ActivePage:=TabSheet5;


PageControl2.ActivePage:=TabSheet11;


Memo1.SetFocus;


N8.Visible:=true;


N9.Visible:=true;


end;


procedure TForm1.Button12Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=True;


PageControl1.ActivePage:=TabSheet6;


PageControl2.ActivePage:=TabSheet12;


N8.Visible:=true;


N9.Visible:=true;


end;


procedure TForm1.Button10Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=True;


PageControl1.ActivePage:=TabSheet7;


PageControl2.ActivePage:=TabSheet13;


N8.Visible:=true;


N9.Visible:=true;


end;


procedure TForm1.Button18Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=true;


PageControl1.Visible:=False;


end;


procedure TForm1.Button21Click(Sender: TObject);


vari,j:integer;


begin


Button20.Caption:='Показатьтекстсгласными';


Button19.Enabled:=true;


Button21.Enabled:=false;


Memo2.Visible:=False;


Memo1.Visible:=True;


Memo1.Text:='';


Memo1.SetFocus;


Edit1.Text:=''; Edit6.Text:=''; Edit11.Text:=''; Edit18.Text:='';


Edit2.Text:=''; Edit7.Text:=''; Edit12.Text:=''; Edit17.Text:='';


Edit3.Text:=''; Edit8.Text:=''; Edit13.Text:=''; Edit10.Text:='';


Edit4.Text:=''; Edit9.Text:=''; Edit16.Text:=''; Edit5.Text:='';


Button20.Enabled:=False;


Edit1.Enabled:=False;


Label63.Enabled:=False;


for i:=1 to Ks do


for j:=1 to 91 do


Mas[i,j]:='';


KSim:=0;


Memo2.Text:='';


end;


procedure TForm1.Button19Click(Sender: TObject);


vari,j,iGlas:integer; // Переменные для циклов


Y:integer; // Переменная для кол-ва строк


LinesX:ShortString; // Переменная для собирания элементов строки массива


DLinX:integer; // Длина строки в переменной LinesX


S:ShortString; // Переменная для копирования в нее символа из текста


Glas:array [1..32] of ShortString; // Массивгласных


begin


Button20.Caption:='Показать текст с гласными';


Button20.Enabled:=true;


Button19.Enabled:=False;


Button21.Enabled:=True;


Button20.SetFocus;


Edit1.Enabled:=True;


Label63.Enabled:=True;


Button19.Enabled:=False;


Memo2.Visible:=True;


Memo1.Visible:=False;


{=== Заполнения массива гласными буквами ============================}


Glas[1]:='A'; Glas[2]:='a'; Glas[3]:='E'; Glas[4]:='e'; Glas[5]:='I'; Glas[6]:='i'; Glas[7]:='Y'; Glas[8]:='y'; Glas[9]:='U'; Glas[10]:='u';


Glas[11]:='А'; Glas[12]:='Е'; Glas[13]:='е'; Glas[14]:='Ё'; Glas[15]:='ё'; Glas[16]:='И'; Glas[17]:='и'; Glas[18]:='О'; Glas[19]:='о'; Glas[20]:='У';


Glas[21]:='Ы'; Glas[22]:='ы'; Glas[23]:='Э'; Glas[24]:='э'; Glas[25]:='Ю'; Glas[26]:='ю'; Glas[27]:='Я'; Glas[28]:='я'; Glas[29]:='O'; Glas[30]:='o';


Glas[31]:='а'; Glas[32]:='у';


{--------------------------------------------------------------------}


Edit2.Text:=inttostr(Memo1.Lines.Count); // Выводкол-вастроквтексте


Y:=StrToInt(Edit2.Text); // Кол-во строк в тексте - для алгоритма


Ks:=StrToInt(Edit2.Text); // Кол-во строк в тексте - глобальная для сброса


{=== Заполнение массива буквами текста ============================}


for i:=1 to Y dobegin // Цикл по строкам


S:=Memo1.Lines[i-1]; // Копируем в переменную i-1 строку из текста


for j:=1 to 91 do // Цикл по символам строки


Mas[i,j]:=Copy(S,j,1); // Копируем в [i,j] из S j-ый элемент строки


end;


{=== Удаление глассных из массива =================================}


for i:=1 to Y do // Циклпострокам


for j:=1 to 91 do // Цикл по символам строки


foriGlas:=1 to 32 do // Цикл по проверке гласных


if (Mas[i,j]=Glas[iGlas]) then begin


Mas[i,j]:=' '; // Если символ гласный, то заменяем его пробелом


KSim:=KSim+1; // Если символ гласный, то накручиваем счетчик


end;


{=== Выводтестовойинформации =====================================}


Edit5.Text:=Mas[1,1]; Edit9.Text:=Mas[2,1]; Edit13.Text:=Mas[3,1];


Edit6.Text:=Mas[1,2]; Edit10.Text:=Mas[2,2]; Edit16.Text:=Mas[3,2];


Edit7.Text:=Mas[1,3]; Edit11.Text:=Mas[2,3]; Edit17.Text:=Mas[3,3];


Edit8.Text:=Mas[1,4]; Edit12.Text:=Mas[2,4]; Edit18.Text:=Mas[3,4];


{=== Заполнение текста из массива ==================================}


DLinX:=0; // Обнуление длины строки из переменной LinesX


LinesX:=''; //

Обнуление строковой переменной


for i:=1 to Y dobegin // Цикл по строкам


LinesX:=''; // Обнуление строковой переменной


for j:=1 to 91 dobegin // Цикл по символам строки


insert(Mas[i,j],LinesX,j); // Собираем Mas[1,j] встроку


end;


if i<>Y then// Если i<>Y то вводит в RichEdit строку и переводит переход на следующую строку


Memo2.Lines[i-1]:=LinesX+#13+#10// Вводит в RichEdit готовую строку и переводит курсор ниже


Else // иначе вводит в RichEdit строку без перехода на следующую строку


Memo2.Lines[i-1]:=LinesX; // Вводит в RichEdit готовую строку


Edit4.Text:=LinesX; // Вывод собранной строки в тестовое окно


DLinX:=Length(S); // Подсчет длины готовой строки


Edit3.Text:=inttostr(DLinX); // Вывод длины собранной строки


end;


{=====================================================================}


Edit1.Text:=inttostr(KSim); // Вывод кол-ва гласных


end;


procedure TForm1.N8Click(Sender: TObject);


begin


Form1.Height:=690;


end;


procedure TForm1.N9Click(Sender: TObject);


begin


Form1.Height:=484;


end;


procedure TForm1.Button22Click(Sender: TObject);


begin


Edit2.Text:=inttostr(Memo1.Lines.Count); // Считаетколичествостроквполе Memo1


end;


procedure TForm1.Button20Click(Sender: TObject);


begin


if Button20.Caption='Показатьтекстсгласными' then begin


Memo1.Visible:=True;


Memo2.Visible:=False;


Button20.Caption:='Показать текст без гласных';


end


else begin


Memo1.Visible:=False;


Memo2.Visible:=True;


Button20.Caption:='Показатьтекстсгласными';


end;


end;


procedure TForm1.Button23Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=true; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=false;


PageControl1.Visible:=False;


end;


procedure TForm1.Button24Click(Sender: TObject);


VarN,A,B:integer;


Code,Si:integer;


Ss:string;


begin


if (Edit14.Text='') or (Edit15.Text='') or (Edit19.Text='') then begin


Label75.Font.Color:=clRed;


Timer1.Enabled:=true;


end;


{== Проверка ввода значений ==========================================}


Val(Edit14.Text,N,code);


if (code<>0) then begin


Edit14.Text:='';


Timer2.Enabled:=true;


Label77.Visible:=true;


end


else begin


N:=strtoint(Edit14.Text);


Edit20.Text:=inttostr(N);


end;


Val(Edit15.Text,A,code);


if (code<>0) then begin


Edit15.Text:='';


Timer2.Enabled:=true;


Label77.Visible:=true;


end


else begin


A:=strtoint(Edit15.Text);


Edit21.Text:=inttostr(A);


end;


Val(Edit19.Text,B,code);


if (code<>0) then begin


Edit19.Text:='';


Timer2.Enabled:=true;


Label77.Visible:=true;


end


else begin


B:=strtoint(Edit19.Text);


Edit22.Text:=inttostr(B);


end;


{=====================================================================}


if (Edit20.Text<>'') and (Edit21.Text<>'') and (Edit22.Text<>'') and (B>A) and (StrToInt(Edit14.Text)>0) then


Button27.Click;


end;


procedure TForm1.Button25Click(Sender: TObject);


VarN,A,B:integer;


begin


Randomize;


N:=Random(9998)+1;


A:=Random(9999)-9999;


B:=Random(9999);


Edit14.Text:=IntToStr(N); Edit20.Text:=inttostr(N);


Edit15.Text:=IntToStr(A); Edit21.Text:=inttostr(A);


Edit19.Text:=IntToStr(B); Edit22.Text:=inttostr(B);


Button27.Click;


Button24.Enabled:=False;


Button25.Enabled:=False;


end;


procedure TForm1.Button26Click(Sender: TObject);


var i:integer;


begin


Edit14.Text:=''; Edit20.Text:=''; Edit23.Text:=''; Edit26.Text:='';


Edit15.Text:=''; Edit21.Text:=''; Edit24.Text:=''; Edit27.Text:='';


Edit19.Text:=''; Edit22.Text:=''; Edit25.Text:=''; Edit28.Text:='';


Edit29.Text:='';


Label86.Caption:='';


Button24.Enabled:=True; ScrollBar1.Position:=0;


Button25.Enabled:=True; ScrollBar1.Max:=100;


for i:=1 to 9999 do


MasEx2[i]:=0;


end;


procedure TForm1.Timer1Timer(Sender: TObject);


begin


Timer1.Enabled:=false;


Label75.Font.Color:=clBlack;


Label83.Font.Color:=clBlack;


end;


procedure TForm1.Timer2Timer(Sender: TObject);


begin


Label77.Visible:=false;


Label102.Visible:=false;


Timer2.Enabled:=false;


end;


procedure TForm1.Button27Click(Sender: TObject);


var i:integer;


A,B,N:integer;


EvenNumber:longint; // Четноечисло


OddNumber: longint; // Нечетноечисло


begin


Randomize;


N:=StrToInt(Edit20.Text);


A:=StrToInt(Edit21.Text);


B:=StrToInt(Edit22.Text);


Button24.Enabled:=False;


Button25.Enabled:=False;


{== Заполнение массива случайными числами из заданного диапазона ====}


for i:=1 to N do begin


MasEx2[i]:=A+Random((B+1)-A);


Edit23.Text:=IntToStr(MasEx2[i]);


end;


{=== Собирание массива в строку и вывод этой строки =================}


for i:=1 to N do


Edit25.Text:=Edit25.Text+IntToStr(MasEx2[i])+' ';


{=== Определение длины прокрутки для полосы прокрутки ===============}


Edit24.Text:=IntToStr(Length(Edit25.Text));


ScrollBar1.Max:=StrToInt(Edit24.Text);


{====================================================================}


EvenNumber:=0;


for i:=1 to N do


if (MasEx2[i] mod 2 = 0) then


EvenNumber:=EvenNumber+sqr(MasEx2[i]);


Edit28.Text:=IntToStr(EvenNumber);


OddNumber:=0;


for i:=1 to N do


if (MasEx2[i] mod 2 <> 0) then


OddNumber:=OddNumber+MasEx2[i];


OddNumber:=sqr(OddNumber);


Edit29.Text:=IntToStr(OddNumber);


Label86.Caption:=IntToStr(EvenNumber-OddNumber);


end;


procedure TForm1.ScrollBar1Change(Sender: TObject);


begin


{=== Связывание полосы прокрутки и окна с массивом ==================}


Edit25.SelStart:=ScrollBar1.Position;


end;


procedure TForm1.Button28Click(Sender: TObject);


varNi,i:integer;


Code:integer;


begin


{== Проверка ввода значений окна выбора элемента массива =============}


if (Edit26.Text='') then begin


Label83.Font.Color:=clRed;


Timer1.Enabled:=true;


end;


{== Проверка ввода истинности значений ==========================================}


Val(Edit26.Text,Ni,code);


if (code<>0) or (StrToInt(Edit26.Text)<1) or (Edit20.Text='') or


(StrToInt(Edit26.Text)>9999) or (StrToInt(Edit26.Text)<-9999) then begin


Edit26.Text:='';


Edit27.Text:='';


Label83.Font.Color:=clRed;


Timer1.Enabled:=true;


end


else begin


Ni:=strtoint(Edit26.Text);


Edit27.Text:=inttostr(MasEx2[Ni]);


end;


end;


procedure TForm1.Button29Click(Sender: TObject);


begin


Panel1.Visible:=False; Panel6.Visible:=False;


Panel2.Visible:=False; Panel5.Visible:=False;


Panel3.Visible:=True; Panel4.Visible:=false;


PageControl1.Visible:=False;


end;


procedure TForm1.Button30Click(Sender: TObject);


vari,j:integer;


begin


Edit30.Text:=''; Edit56.Text:=''; Edit37.Text:='';


Edit31.Text:=''; Edit54.Text:=''; Edit36.Text:='';


Edit32.Text:=''; Edit55.Text:=''; Edit35.Text:='';


Edit33.Text:=''; Edit34.Text:='';


Button31.Enabled:=True;


Button32.Enabled:=True;


for i:=1 to 999 do // Обнуление двумерного массива


for j:=1 to 999 do


M2[i,j]:=0;


{=== Очистка таблицы ================================================}


with StringGRid1 do


for i:=1 to 4 do


for j:=1 to ColCount do


Cells[j, i-1]:='';


with StringGRid1 do


for i:=5 to RowCount do


for j:=1 to ColCount do


Cells[j, i]:='';


{=== Задание таблице начального вида =================================}


StringGrid1.Font.Size:=8;


StringGrid1.Cells[0,0]:='Сумма "-"';


StringGrid1.Cells[0,1]:='Кол-во. "-"';


StringGrid1.Cells[0,2]:='Сумма "+"';


StringGrid1.Cells[0,3]:='Кол-во. "+"';


StringGrid1.Cells[0,4]:=' №';


StringGrid1.ColWidths[0]:=65;


StringGrid1.RowCount:=11;


StringGrid1.ColCount:=11;


for i:=1 to 11 do StringGrid1.Cells[i,4]:=IntToStr(i);


for i:=1 to 11 do StringGrid1.Cells[0,i+4]:=' '+IntToStr(i);


{====================================================================}


end;


procedure TForm1.BitBtn5Click(Sender: TObject);


vari,j,n,m:integer;


sum:longint;


begin


if (button32.Enabled=False) then begin


n:=StrToInt(Edit34.Text);


m:=StrToInt(Edit35.Text);


{=== Нахождение суммы отрицательных элементов столбцов ===========}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]<0) then sum:=sum+M2[i,j];


end;


end;


{================================================================}


end;


end;


procedure TForm1.BitBtn6Click(Sender: TObject);


vari,j,n,m:integer;


sum:longint;


begin


if (button32.Enabled=False) then begin


n:=StrToInt(Edit34.Text);


m:=StrToInt(Edit35.Text);


{=== Нахождение количества отрицательных элементов столбцов =======}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]<0) then sum:=sum+1;


end;


end;


{===================================================================}


end;


end;


procedure TForm1.BitBtn7Click(Sender: TObject);


vari,j,n,m:integer;


sum:longint;


begin


if (button32.Enabled=False) then begin


n:=StrToInt(Edit34.Text);


m:=StrToInt(Edit35.Text);


{=== Нахождение суммы положительных элементов столбцов ============}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]>0) then sum:=sum+M2[i,j];


end;


end;


{===================================================================}


end;


end;


procedure TForm1.BitBtn8Click(Sender: TObject);


vari,j,n,m:integer;


sum:longint;


begin


if (button32.Enabled=False) then begin


n:=StrToInt(Edit34.Text);


m:=StrToInt(Edit35.Text);


{=== Нахождение количества положительных элементов столбцов =======}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]>0) then sum:=sum+1;


end;


end;


{==================================================================}


end;


end;


procedure TForm1.Button32Click(Sender: TObject);


Vari,j,A,B,n,m:integer;


begin


Randomize;


A:=Random(999)-999; n:=Random(998)+1;


B:=Random(999); m:=Random(998)+1;


Edit32.Text:=IntToStr(A); Edit30.Text:=IntToStr(n);


Edit33.Text:=IntToStr(B); Edit31.Text:=IntToStr(m);


Edit36.Text:=IntToStr(A); Edit34.Text:=IntToStr(n);


Edit37.Text:=IntToStr(B); Edit35.Text:=IntToStr(m);


for i:=1 to n do


for j:=1 to m do


M2[i,j]:=A+Random((B+1)-A);


Button37.Click;


Button31.Enabled:=False;


Button32.Enabled:=False;


end;


procedure TForm1.Button33Click(Sender: TObject);


varn,m,i,j:integer;


begin


n:=0;


m:=0;


{=== Если массив заполнен и задан элемент, который нужно показать ===}


if (edit32.Text<>'') and (edit54.Text<>'') and (edit55.Text<>'') then begin


n:=StrToInt(Edit54.Text);


m:=StrToInt(Edit55.Text);


end;


{=== Если запрашивается элемент > 0 и < границ массива ==============}


if (n>0) and (n<StrToInt(Edit34.Text)+1) and (m>0) and (m<StrToInt(Edit35.Text)+1) then begin


Edit56.Text:=IntToStr(M2[n,m]);


j:=StrToInt(Edit55.Text);


i:=StrToInt(Edit54.Text)+4;


SetGridFocus(StringGrid1, i, j );


end else


Edit56.Text:='';


{====================================================================}


end;


procedure TForm1.Button31Click(Sender: TObject);


vari,j,A,B,n,m:integer;


Code:integer;


begin


Randomize;


{== Проверка ввода значений ==========================================}


Val(Edit30.Text,n,code);


if (code<>0) then begin


Edit30.Text:='';


end


else begin


n:=strtoint(Edit30.Text);


Edit34.Text:=inttostr(N);


end;


Val(Edit31.Text,m,code);


if (code<>0) then begin


Edit31.Text:='';


end


else begin


m:=strtoint(Edit31.Text);


Edit35.Text:=inttostr(m);


end;


Val(Edit32.Text,A,code);


if (code<>0) then begin


Edit32.Text:='';


end


else begin


A:=strtoint(Edit32.Text);


Edit36.Text:=inttostr(A);


end;


Val(Edit33.Text,B,code);


if (code<>0) then begin


Edit33.Text:='';


end


else begin


B:=strtoint(Edit33.Text);


Edit37.Text:=inttostr(B);


end;


{=== Проверка ввода значений и заполнение массива ====================}


if (Edit34.Text<>'') and (Edit35.Text<>'') and (Edit36.Text<>'') and (Edit37.Text<>'')and


(StrToInt(Edit37.Text)>=StrToInt(Edit36.Text)) and (StrToInt(Edit34.Text)>0) and (StrToInt(Edit35.Text)>0)then begin


for i:=1 to n do


for j:=1 to m do M2[i,j]:=A+Random((B+1)-A);


Button37.Click;


end


else begin


Edit30.Text:=''; Edit31.Text:=''; Edit34.Text:=''; Edit36.Text:='';


Edit32.Text:=''; Edit33.Text:=''; Edit35.Text:=''; Edit37.Text:='';


for i:=1 to 4 do


for j:=1 to 4 do


Edit54.Text:=''; Edit55.Text:=''; Edit56.Text:='';


Label102.Visible:=true;


Timer2.Enabled:=True;


end;


if (Edit34.Text<>'') then begin


Button37.Click;


Button31.Enabled:=False;


Button32.Enabled:=False;


end;


end;


procedure TForm1.Button37Click(Sender: TObject);


Var i,j,A,B,n,m,M2i,M2j:integer;


sum:longint;


begin


n:=StrToInt(Edit34.Text);


m:=StrToInt(Edit35.Text);


{=== Нахождение суммы отрицательных элементов столбцов ==============}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]<0) then sum:=sum+M2[i,j];


end;


StringGrid1.Cells[j,0]:=IntToStr(sum);


end;


{=== Нахождение кол-ва отрицательных элементов столбцов ==============}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]<0) then sum:=sum+1;


end;


StringGrid1.Cells[j,1]:=IntToStr(sum);


end;


{=== Нахождение суммы положительных элементов столбцов ==============}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]>0) then sum:=sum+M2[i,j];


end;


StringGrid1.Cells[j,2]:=IntToStr(sum);


end;


{=== Нахождение кол-ва положительных элементов столбцов ==============}


for j:=1 to m do begin


sum:=0;


for i:=1 to n do begin


if (M2[i,j]>0) then sum:=sum+1;


end;


StringGrid1.Cells[j,3]:=IntToStr(sum);


end;


{=== Заполнение заглавных ячеек таблицы =============================}


StringGrid1.Font.Size:=8;


StringGrid1.Cells[0,0]:='Сумма "-"';


StringGrid1.Cells[0,1]:='Кол-во. "-"';


StringGrid1.Cells[0,2]:='Сумма "+"';


StringGrid1.Cells[0,3]:='Кол-во. "+"';


StringGrid1.Cells[0,4]:=' №';


StringGrid1.ColWidths[0]:=65;


{=== Подгонка таблицы под введенные размеры двумерного массива ======}


StringGrid1.RowCount:=n+5;


StringGrid1.ColCount:=m+1;


{=== Нумерация колонок и строк ======================================}


for i:=1 to m+1 do StringGrid1.Cells[i,4]:=IntToStr(i);


for i:=1 to n+5 do StringGrid1.Cells[0,i+4]:=' '+IntToStr(i);


{=== Заполнение таблицы массивом ====================================}


M2i:=0;


M2j:=0;


For i:=5 to n+5 do begin


M2i:=M2i+1;


m2j:=1;


for j:=1 to m+1 do begin


StringGrid1.Cells[j,i]:=IntToStr(M2[M2i,M2j]);


M2j:=M2j+1;


end;


end;


{====================================================================}


end;


procedure TForm1.Button34Click(Sender: TObject);


begin


Panel1.Visible:=true; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=false;


PageControl1.Visible:=False;


end;


procedure TForm1.Button35Click(Sender: TObject);


vark,n,code:integer;


A,E,S:Extended;


begin


if (copy(Edit38.Text,1,1)='0') and (StrToInt(copy(Edit38.Text,3,1))<6) then begin


E:=StrToFloat(Edit38.Text);


k:=1;


A:=1/2;


s:=0;


{-->}while (abs(A)>=E) do begin


A:=1/((2*k-1)*(2*k+1));


k:=k+1;


s:=s+A;


memo3.Lines[k-2]:=IntToStr(k-1)+' '+FloatToStr(A)+#13+#10;


memo5.Lines[k-2]:=IntToStr(k-1)+' '+FloatToStr(s)+#13+#10;


{-->}end;


Edit39.Text:=IntToStr(k-1);


end else


Edit38.Text:='';


end;


procedure TForm1.Button36Click(Sender: TObject);


begin


memo3.Text:='';


memo5.Text:='';


memo3.Lines[0]:='Шаг / Значение А на шаге i';


memo5.Lines[0]:='Шаг / Значение S на шаге i';


Edit39.Text:='';


Edit38.Text:='0,0001';


end;


procedure TForm1.Button38Click(Sender: TObject);


var s:string;


n:double;


begin


{--- Проверка ввода в окно "Введите E" -------------------------------}


s:=Edit38.Text;


ifTryStrToFloat(s, n) then


begin


if (StrToFloat(s)>0) and (StrToFloat(s)<0.6) then button35.Click


else Edit38.Text:='';


end


else Edit38.Text:='';


{------------------------------------------------------------------}


end;


procedure TForm1.Button39Click(Sender: TObject);


begin


Panel1.Visible:=false; Panel6.Visible:=true;


Panel2.Visible:=false; Panel5.Visible:=False;


Panel3.Visible:=False; Panel4.Visible:=False;


PageControl1.Visible:=False;


end;


procedure TForm1.Button40Click(Sender: TObject);


Vari,j,n,k:integer;


s:string;


begin


k:=0;


for i:=0 to 7 do begin


for j:=1 to 8 do begin


k:=0;


k:=length(StringGrid2.Cells[i,j]);


if (k>15) then begin


Label107.Visible:=true;


Edit41.Text:=IntToStr(i+1);


Edit42.Text:=IntToStr(j);


end;


end;


end;


if (Label107.Visible=False) then


button43.Click;


end;


procedure TForm1.Button42Click(Sender: TObject);


begin


Label107.Visible:=False;


Edit40.Text:='';


Edit41.Text:='';


Edit42.Text:='';


end;


procedure TForm1.Button43Click(Sender: TObject);


vark,i,j,d:integer;


s:string;


begin


Edit40.Text:='Всевведеноверно';


// Сохраняем по выбранному пути


ifsavedialog1.Executethen


SaveStringGrid(StringGrid2, savedialog1.FileName);


end;


procedure TForm1.StringGrid2Click(Sender: TObject);


begin


Label107.Visible:=False;


Edit40.Text:='';


Edit41.Text:='';


Edit42.Text:='';


end;


procedure TForm1.Button41Click(Sender: TObject);


begin


// Открываем по выбранному пути


if opendialog1.Execute then


LoadStringGrid(StringGrid2, opendialog1.FileName);


end;


procedure TForm1.Button44Click(Sender: TObject);


begin


Panel1.Visible:=false; Panel6.Visible:=False;


Panel2.Visible:=false; Panel5.Visible:=true;


Panel3.Visible:=False; Panel4.Visible:=false;


PageControl1.Visible:=False;


end;


procedure TForm1.Button45Click(Sender: TObject);


var t0,t0code,tn,tncode,a,acode,M:integer;


s:string;


h:double;


begin


M:=0; // Накапливаемая метка - правильно ли введены данные


Val(Edit43.Text,t0,t0code);


if (t0code<>0) then Edit43.Text:='' else


if (t0<0) then Edit43.Text:='' else M:=M+1;


Val(Edit44.Text,tn,tncode);


if (tncode<>0) then Edit44.Text:='' else


if (tn<0) then Edit44.Text:='' else M:=M+1;


if (t0 >= tn) then Edit43.Text:='' else M:=M+1;


Val(Edit46.Text,a,acode);


if (a<=0) then Edit46.Text:='' else M:=M+1;


{--- Проверка ввода в окно "Шаг (h)" -------------------------------}


s:=Edit45.Text;


ifTryStrToFloat(s, h) then


begin


Edit48.Text:='Введеноверно';


if (StrToFloat(s)>0) then M:=M+1;


end


else Edit48.Text:='Ошибкаввода';


{------------------------------------------------------------------}


Edit47.Text:=inttostr(M);


if (M=5) then button47.Click;


end;


procedure TForm1.Button46Click(Sender: TObject);


vari,j:integer;


begin


Edit43.Text:='0';


Edit44.Text:='50';


Edit45.Text:='0,007';


Edit46.Text:='4';


Edit47.Text:='';


Edit48.Text:='';


Edit49.Text:='';


Button48.Enabled:=False;


PaintBox1.Visible:=False;


StringGrid3.Visible:=True;


{=== Очисткатаблицы ================================================}


with StringGRid3 do


for i:=0 to RowCount do


for j:=0 to ColCount do


Cells[j, i]:='';


StringGRid3.RowCount:=7;


{=== Задание таблице начального вида =================================}


StringGrid3.Cells[0,0]:=' t';


StringGrid3.Cells[1,0]:=' X=R*Cos(t)';


StringGrid3.Cells[2,0]:=' Y=R*Sin(t)';


end;


procedure TForm1.Button47Click(Sender: TObject);


vari,ks,a:integer;


h,tn,R,x,y:real;


tnE:string;


begin


a:=StrToInt(Edit46.Text); // a - значениедлявычислениярадиуса


h:=StrToFloat(Edit45.Text); // h - шаг


tnE:=Edit43.Text; // t начальная Edit (т.е. не число)


tn:=StrToFloat(Edit43.Text); // t на n-омшаге - число


i:=1; // для записывания в i-ую строку таблицы


ks:=2; // для приращивания кол-ва строк таблицы


// крутить пока не достигнет tk (tk - см. условие задачи)


while (tn<=StrToInt(Edit44.Text)) do begin


StringGrid3.Cells[0,i]:=tnE; // в i-уюстрокузаписатьtnE


R:=a*StrToFloat(tnE)/2; // находим R - по формуле задания


x:=R*Cos(StrToFloat(tnE)); // находим x - по формуле задания


y:=R*Sin(StrToFloat(tnE)); // находим y - по формуле задания


StringGrid3.Cells[1,i]:=FloatToStr(x); // в i-уюстрокузаписать x


StringGrid3.Cells[2,i]:=FloatToStr(y); // в i-уюстрокузаписать y


i:=i+1; // увеличиваем i на 1


tnE:=FloatToStr(StrToFloat(tnE)+h); // Изменяем tnE с учетом шага


StringGrid3.RowCount:=ks; // задаем кол-во строк в таблице


ks:=ks+1; // увеличиваем переменную кол-ва строк


tn:=tn+h; // изменяем t n-ое на заданный шаг


end;


Button48.Enabled:=True;


end;


procedure TForm1.FormActivate(Sender: TObject);


begin


paintbox1.refresh;


OSI;


end;


procedure TForm1.Button48Click(Sender: TObject);


begin


if (Button48.Caption='Показатьграфик') then


begin


StringGrid3.Visible:=false;


PaintBox1.Visible:=true;


Button48.Caption:='Показатьтаблицу';


paintbox1.refresh;


OSI;


Button49.Click;


end else


begin


StringGrid3.Visible:=true;


PaintBox1.Visible:=false;


Button48.Caption:='Показатьграфик';


end;


end;


procedure TForm1.Button49Click(Sender: TObject);


varks,i:integer;


Xt,Yt:real;


begin


RazX:=PaintBox1.Width;


RazY:=PaintBox1.Height;


Xmin:=0-(PaintBox1.Width div 2);


Xmax:=PaintBox1.Width div 2;


Ymin:=0-(PaintBox1.Height div 2);


Ymax:=PaintBox1.Height div 2;


ks:=0;


ks:=StringGrid3.RowCount-1;


Edit49.Text:=IntToStr(ks);


with form1.PaintBox1,canvas do begin


for i:=1 to ks do begin


Xt:=StrToFloat(StringGrid3.Cells[1,i]);


Yt:=StrToFloat(StringGrid3.Cells[2,i]);


Canvas.Pixels[Xs(Xt), Ys(Yt)]:=clRed;


end;


PaintBox1.Canvas.TextOut(10, 10, 'Функция "Спираль"');


PaintBox1.Canvas.TextOut(Xs(0),Ys(0),'0'); // подписываемначалокоординат


PaintBox1.Canvas.TextOut(PaintBox1.Width-10,Ys(-1),'x'); // подписываем y


PaintBox1.Canvas.TextOut((PaintBox1.Width div 2)-10, 5,'y'); // подписываем x


// рисуем стрелку вправо


MoveTo(PaintBox1.Width, PaintBox1.Height div 2);


PaintBox1.Canvas.LineTo(PaintBox1.Width-10, (PaintBox1.Height div 2)-4);


MoveTo(PaintBox1.Width, PaintBox1.Height div 2);


PaintBox1.Canvas.LineTo(PaintBox1.Width-10, (PaintBox1.Height div 2)+4);


// рисуем стрелку вверх


MoveTo(PaintBox1.Width div 2, 0);


PaintBox1.Canvas.LineTo((PaintBox1.Width div 2)-4, 10);


MoveTo(PaintBox1.Width div 2, 0);


PaintBox1.Canvas.LineTo((PaintBox1.Width div 2)+4, 10);


end;


end;


procedure TForm1.PageControl1Change(Sender: TObject);


begin


if PageControl1.ActivePage=TabSheet1 then


begin


Form1.Height:=484;


N8.Visible:=False;


N9.Visible:=False;


end;


if PageControl1.ActivePage=TabSheet2 then


begin


PageControl2.ActivePage:=TabSheet8;


N8.Visible:=true;


N9.Visible:=true;


end;


if PageControl1.ActivePage=TabSheet3 then


begin


PageControl2.ActivePage:=TabSheet9;


N8.Visible:=true;


N9.Visible:=true;


end;


if PageControl1.ActivePage=TabSheet4 then


begin


PageControl2.ActivePage:=TabSheet10;


N8.Visible:=true;


N9.Visible:=true;


end;


if PageControl1.ActivePage=TabSheet5 then


begin


PageControl2.ActivePage:=TabSheet11;


N8.Visible:=true;


N9.Visible:=true;


end;


if PageControl1.ActivePage=TabSheet6 then


begin


PageControl2.ActivePage:=TabSheet12;


N8.Visible:=true;


N9.Visible:=true;


end;


if PageControl1.ActivePage=TabSheet7 then


begin


PageControl2.ActivePage:=TabSheet13;


N8.Visible:=true;


N9.Visible:=true;


end;


end;


procedure TForm1.PageControl2Change(Sender: TObject);


begin


if PageControl2.ActivePage=TabSheet8 then


PageControl1.ActivePage:=TabSheet2;


if PageControl2.ActivePage=TabSheet9 then


PageControl1.ActivePage:=TabSheet3;


if PageControl2.ActivePage=TabSheet10 then


PageControl1.ActivePage:=TabSheet4;


if PageControl2.ActivePage=TabSheet11 then


PageControl1.ActivePage:=TabSheet5;


if PageControl2.ActivePage=TabSheet12 then


PageControl1.ActivePage:=TabSheet6;


if PageControl2.ActivePage=TabSheet13 then


PageControl1.ActivePage:=TabSheet7;


end;


procedure TForm1.Button51Click(Sender: TObject);


begin


n8.Visible:=false;


n9.Visible:=false;


end;


end.


Результаты работы программы

Задача 1.



В программу вводится число Е.


После нажатия на кнопку «вычислить»


программа выводит все члены ряда


и количество итераций.


В разделе программы


«техническая информация…»


отслеживается сумма на


соответствующем шаге.


Задача 2.





Ввод данных можно осуществить как автоматически, так и вручную.


Предусмотрена проверка на правильность введенных данных вручную.


После заполнения программа подсчитывает, чему равно значение выражения.


В «технической информации» можно отследить отдельно сумму квадратов и квадрат суммы.


Также можно увидеть последнее число в массиве, или увидеть любой элемент массива по запросу.



Задача 3.



Параметры задаются вручную или


Автоматически случайным образом.


В первый 4-х строках таблицы


подсчитываются значения


соответственного столбца.


При заполнении автоматически


следует учитывать, что возможный


диапазон включает все целые трехзначные


числа. И в связи с этим возможна задержка


в работе программы. Это зависит от


быстродействия вашего компьютера.


Также в «технической информации»


можно получить любой элемент массива


по запросу его координат.


Задача 4.



При вводе текста и нажатии «удалить все гласные буквы из текста» происходит удаление гласных букв текста. Причем предусмотрена возможность переключения к исходному тексту и обратно для сравнения.


Программа выводит количество удаленных гласных. В ««технической информации» можно отследить количество строк в тексте, длину последней строки и начало заполнения массива буквами текста, в котором происходит проверка букв.


Задача 5.



Вводятся начальные данные, на основании которых вычисляются X, Y. Полученные результаты сводятся в таблицу, по которой по нажатии на кнопку «показать график» строится график функции.


В программе предусмотрена возможность переключения между графиком и таблицей, а так же сброс данных в состояние по умолчанию. Как и во всей программе – в разделе «технической информации» можно увидеть дополнительные данные.


Задача 6.



Открывается файл базы данных «службы знакомств» или заполняется чистая таблица. После чего ее можно сохранить в файл базы. Предусмотрена проверка и ограничение на ввод в ячейку до 15 символов.


Список используемой литературы:

Прим.: Литература не использовалась. Используемые сайты и форумы при подготовке и выполнении:






































1. Строковые функции Delphi


http://na-start.narod.ru/material/delphi03.htm
2. Знакомство с компонентами Delphi

http://www.rtfm.4hack.com/books.php?id1=2&id2=4&id3=5


3. Портал программистов

http://shelek.su/index.php?site=forum.shelek.ru&page=board&id=7


4. Ветка форума по работе с функцией


TryStrToFloat


http://www.sql.ru/forum/actualthread.aspx?tid=716083


5. Определитель 16-и ричного цвета

http://calc-all.narod.ru/color/index.html


6. Отображение графической информации


http://www.oplk.narod.ru/Delphi/Books/Delphi_2.0/11/Graf.html


7. Двумерные массивы

http://borlpasc.narod.ru/docym/prac/dvymerni.htm


8. Примеры задач с двумерным массивом

http://www.pascal7.ru/index.php?option=com_content&view=category&layout=blog&id=29&Itemid=30


9. Массив из элементов и как с ним работать


http://www.delphimaster.ru/articles/comparray.html


10. Построение графиков функций

http://www.yotx.ru/Default.aspx


11. Работа с графической системой координат

http://physics.herzen.spb.ru/library/03/01/pp/Advices/graph.htm


12. Типы данных Delphi

http://www.interface.ru/home.asp?artId=2561


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Программирование 3

Слов:5327
Символов:75831
Размер:148.11 Кб.