Реферат: Программирование 3
Название: Программирование 3 Раздел: Рефераты по информатике Тип: реферат | |||||||||||||||||||||||||
КУРСОВАЯ РАБОТА По программированию Вариант 4 Выполнил: Студент заочного отделения Группы ИТ-21z Медведев Николай Александрович Руководитель: Емельянов Д.А Оглавление Результаты работы программы.. 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 символов. Список используемой литературы:Прим.: Литература не использовалась. Используемые сайты и форумы при подготовке и выполнении:
|