bsuir.info
БГУИР: Дистанционное и заочное обучение
(файловый архив)
Вход (быстрый)
Регистрация
Категории каталога
Другое [20]
Форма входа
Логин:
Пароль:
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Файловый архив
Файлы » МдЭ » Другое

ОАиП кр2 в4
Подробности о скачивании 10.01.2012, 01:08
4. Дан массив, состоящий из символов. Определить количество различных элементов массива (повторяющиеся элементы считать один раз).

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, Grids, StdCtrls;

type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
Memo1: TMemo;
StringGrid1: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
TStringGrid1: char;
s,k,n,h :integer;
b,c : char;
implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
n:=10;
Edit1.Text:=IntToStr(n);
StringGrid1.ColCount:=n;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
StringGrid1.ColCount:=n;


end;

procedure TForm1.Button2Click(Sender: TObject);
Var a : Array of Char;
s : integer; b,c : char;
begin
Memo1.Clear;
s:=0;
SetLength(a,n);
For k:=0 to n-1 do
a[k]:=StringGrid1.Cells[k,0][1];

k:=0;
repeat
b:=a[k];
k:=k+1;
h:=0;
repeat
c:=a[h];
h:=h+1
until c=b;
if k=h then s:=s+1

until k=n;


Memo1.Lines.Add('Количество символов: '
+IntToStr(s));

end;
end.

4. Сформировать множество символов и выделить из него подмножество цифр.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
BitBtn1: TBitBtn;
Edit1: TEdit;
Memo1: TMemo;
Memo2: TMemo;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
s:Set of Char;
r:set of Char;
c:Char;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
s:=[]; //задание пустого множества
Memo1.Clear; Memo2.Clear;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
c:=Edit1.Text[1]; //чтение символа
Include(s,c); //добавление символа во множество
Memo1.Lines.Add©; //вывод символа в Memo1
Edit1.Clear; //очистка Edit1
Edit1.SetFocus; //установка фокуса в Edit1

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Memo2.Clear;
r:=s*['0'..'9'];
For c:=#0 to #255 Do //вывод результирующего множества
if c in r Then Memo2.Lines.Add©;

end;

end.
4. Дана строка, представляющая собой запись числа в восьмеричной системе счисления. Преобразовать ее в строку, представляющую собой запись числа в двоичной системе счисления.

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons;

type
TForm1 = class(TForm)
ComboBox1: TComboBox;
Memo1: TMemo;
Memo2: TMemo;
BitBtn1: TBitBtn;
procedure ComboBox1Click(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.ComboBox1Click(Sender: TObject);
Var oct:String;
var bin:String;
k,i:Integer;
begin
oct:=ComboBox1.Text; //запись информации в строку s
Memo1.Clear;
Memo2.Clear;

i:=length(oct)*3;
for k:=1 to length(oct) do
begin
if oct[k]='0' then
bin:=bin+'000';
if oct[k]='1' then
bin:=bin+'001';
if oct[k]='2' then
bin:=bin+'010' ;
if oct[k]='3' then
bin:=bin+'011' ;
if oct[k]='4' then
bin:=bin+'100' ;
if oct[k]='5' then
bin:=bin+'101' ;
if oct[k]='6' then
bin:=bin+'110' ;
if oct[k]='7' then
bin:=bin+'111' ;
end;
//For k:=1 To length(s) Do
Memo2.Lines.Add(bin);
end;

procedure TForm1.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
if Key=#13 Then //проверка нажатия клавиши Enter
Begin
ComboBox1.Items.Add(ComboBox1.Text); //строка из окна
//редактирования заносится в список выбо-ра
End;

end;

procedure TForm1.FormActivate(Sender: TObject);
begin
ComboBox1.SetFocus; //передача фокуса ComboBox1
Memo1.Clear;
Memo2.Clear;
end;

end.

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

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;

type
TForm1 = class(TForm)
Memo1: TMemo;
Label1: TLabel;
Memo2: TMemo;
Label2: TLabel;
Memo3: TMemo;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Label4: TLabel;
Label5: TLabel;
Button1: TButton;
Button2: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Button3: TButton;
BitBtn1: TBitBtn;
Button4: TButton;
Button5: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }

end;
Type Rasp=Record
pn:String[20];
vr:Array[1..3] of extended;
end;
var
Form1: TForm1;

f:File of rasp;
ft:TextFile;
w:rasp;
frasp,fraspt: string;
zak:Boolean;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo1.Clear; Memo2.Clear; Memo3.Clear;
Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Edit5.Clear;
Button1.Enabled:=False;
zak:=False;

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
w.pn:=Edit1.Text;
w.vr[1]:=StrToFloat(Edit2.Text);
w.vr[2]:=StrToFloat(Edit3.Text);
Write(f,w);
Memo1.Lines.Add(w.pn);
Memo2.Lines.Add(floatToStr(w.vr[1]));
Memo3.Lines.Add(floatToStr(w.vr[2]));
Edit1.Clear; Edit2.Clear; Edit3.Clear;

end;

procedure TForm1.Button2Click(Sender: TObject);
Var m:Integer; d:extended;
begin
Memo1.Clear; Memo2.Clear; Memo3.Clear;
d:=StrToFloat(Edit5.Text);
Reset(f);
While Not EOF(f) Do
Begin
Read(f,w);
m:=0;
if w.vr[2]>d Then m:=1;
if m=0 Then
Begin
Memo1.Lines.Add(w.pn);
Memo2.Lines.Add(FloatToStr(w.vr[1]));
Memo3.Lines.Add(FloatToStr(w.vr[2]));
End;
End;
CloseFile(f);

end;

procedure TForm1.Button3Click(Sender: TObject);
begin
SaveDialog1.Title:='Создать файл';
SaveDialog1.DefaultExt:='.dat';
if SaveDialog1.Execute Then
Begin
frasp:=SaveDialog1.FileName;
AssignFile(f,frasp);
ReWrite(f);
End;
Button1.Enabled:=True;
zak:=True;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
OpenDialog1.Title:='Открыть файл';
if OpenDialog1.Execute Then
Begin
frasp:=OpenDialog1.FileName;
AssignFile(f,frasp);
Reset(f);
End;
Memo1.Clear; Memo2.Clear; Memo3.Clear;
While Not EOF(f) Do
Begin
Read(f,w);
Memo1.Lines.Add(w.pn);
Memo2.Lines.Add(floatToStr(w.vr[1]));
Memo3.Lines.Add(floatToStr(w.vr[2]));
End;
CloseFile(f);
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
SaveDialog1.Title:='Сохранить в текстовом файле';
SaveDialog1.DefaultExt:='.dat';
if SaveDialog1.Execute Then
Begin
fraspt:=SaveDialog1.FileName;
AssignFile(ft,fraspt);
ReWrite(ft);
End;
CloseFile(f);
CloseFile(ft);

end;

4. Отобразить взаимное расположение окружности с радиусом R с центром в точке (x0,y0) и прямой, проходящей через точки с координатами (x1,y1) и (х2,y2) (пересекаются, касаются, не пересекаются).


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, Buttons, StdCtrls, ExtCtrls, TeeProcs, Chart, math;

type
TForm1 = class(TForm)
Chart1: TChart;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Label6: TLabel;
Button1: TButton;
BitBtn1: TBitBtn;
Series1: TLineSeries;
Series2: TLineSeries;
Series3: TLineSeries;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear;Edit2.Clear;Edit3.Clear;Edit4.Clear;
Edit5.Clear;Edit6.Clear;Edit7.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
x0, x1, x2, y0, y1, y2, r, x, y, z, c, a : extended;
begin
x1:=StrToFloat(Edit1.Text);
x2:=StrToFloat(Edit2.Text);
y1:=StrToFloat(Edit3.Text);
y2:=StrToFloat(Edit4.Text);
x0:=StrToFloat(Edit5.Text);
y0:=StrToFloat(Edit6.Text);
r:=StrToFloat(Edit7.Text);
x:=-50;
y:=0;
c:=0;
while (x<=50) do
begin
//окружность
while abs(x-x0)<=r do begin
y:=sqrt(sqr®-sqr(x-x0))+y0;
Series2.AddXY(x,c,'',clGreen);
c:=-sqrt(sqr®-sqr(x-x0))+y0;
Series3.AddXY(x,y,'',clGreen);
x:=x+0.002;
z:=((y2-y1)*(x-x1))/(x2-x1)+y1;
Series1.AddXY(x,z,'',clRed);
x:=x+0.002

end;

z:=((y2-y1)*(x-x1))/(x2-x1)+y1;
Series1.AddXY(x,z,'',clRed);

x:=x+0.02;
end;

end;
end.
Категория: Другое | Добавил: ascorn
Просмотров: 1577 | Загрузок: 10
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]