Добавил:
Fragga
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
const n=3;
type
ball=record { описание типа записи }
fizik,matem,progr: integer;
end;
zap=record
fio: string[10]; { поле фамилии студента }
fak: string[3]; { поле названия факультета }
oz: ball; { поле оценок }
sb:real; { поле среднего балла }
end;
ar=array[1..n] of zap; { массив записей }
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:byte;
mas:ar;
x:zap;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.SetFocus;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{ Для ввода массива записей - используем составные имена }
Edit1.Setfocus;
mas[i].fio:=Edit1.Text;
mas[i].fak:=ComboBox1.Text;
mas[i].oz.fizik:=StrToInt(Edit2.Text);
mas[i].Oz.matem:=StrToInt(Edit3.Text);
mas[i].Oz.progr:=StrToInt(Edit4.Text);
Memo1.Lines.Add(mas[i].fio+' '+mas[i].fak+' '+IntToStr(mas[i].oz.fizik)
+' '+' '+IntToStr(mas[i].oz.matem)+' '+IntToStr(mas[i].oz.progr));
inc(i);
if i>n then begin
Button1.Enabled:=False;
exit;
end
else begin
Edit1.clear;
ComboBox1.text:='';
Edit2.clear;
Edit3.clear;
Edit4.clear;
Edit1.Setfocus;
end;
{ Вывод массива записей в Memo1 }
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i,j:integer;
begin
If RadioButton1.Checked=True Then
Begin
{ Вычисление среднего балла, используем оператор присоединения WITH }
Memo1.Lines.Add('Ср. балл каждого');
for i:=1 to n do
with mas[i] do
Begin
sb:=(oz.fizik+oz.matem + oz.progr)/3;
Memo1.Lines.Add(fio+' '+FloatToStr(sb));
end;
end;
If RadioButton2.Checked=True Then
Begin
{ Сортировка массива записей }
for i:=1 to n-1 do
for j:=i downto 1 do
if mas[j].sb>mas[j+1].sb
then begin
x:=mas[j];
mas[j]:=mas[j+1];
mas[j+1]:=x;
end;
{ Вывод отсортированного массива }
Memo1.Lines.Add('сорт. по ср.баллу');
for i:=1 to n do
with mas[i] do
begin
Memo1.Lines.Add(mas[i].fio+' '+IntToStr(mas[i].oz.fizik)+' '+
IntToStr(mas[i].oz.matem)+' '+
IntToStr(mas[i].oz.progr)+' '+FloatToStr(mas[i].sb));
end;
end;
If RadioButton3.Checked=True Then
Begin
{ Вывод студентов, сдавших программирование на "5" }
Memo1.Lines.Add('На "5"');
for i:=1 to n do
with mas[i].oz do
if progr=5 then
Memo1.Lines.Add(mas[i].fio);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close
end;
begin
i:=1;
end.
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
const n=3;
type
ball=record { описание типа записи }
fizik,matem,progr: integer;
end;
zap=record
fio: string[10]; { поле фамилии студента }
fak: string[3]; { поле названия факультета }
oz: ball; { поле оценок }
sb:real; { поле среднего балла }
end;
ar=array[1..n] of zap; { массив записей }
type
TForm1 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
Edit2: TEdit;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
procedure FormActivate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i:byte;
mas:ar;
x:zap;
implementation
{$R *.DFM}
procedure TForm1.FormActivate(Sender: TObject);
begin
Edit1.SetFocus;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
{ Для ввода массива записей - используем составные имена }
Edit1.Setfocus;
mas[i].fio:=Edit1.Text;
mas[i].fak:=ComboBox1.Text;
mas[i].oz.fizik:=StrToInt(Edit2.Text);
mas[i].Oz.matem:=StrToInt(Edit3.Text);
mas[i].Oz.progr:=StrToInt(Edit4.Text);
Memo1.Lines.Add(mas[i].fio+' '+mas[i].fak+' '+IntToStr(mas[i].oz.fizik)
+' '+' '+IntToStr(mas[i].oz.matem)+' '+IntToStr(mas[i].oz.progr));
inc(i);
if i>n then begin
Button1.Enabled:=False;
exit;
end
else begin
Edit1.clear;
ComboBox1.text:='';
Edit2.clear;
Edit3.clear;
Edit4.clear;
Edit1.Setfocus;
end;
{ Вывод массива записей в Memo1 }
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Memo1.Clear;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
i,j:integer;
begin
If RadioButton1.Checked=True Then
Begin
{ Вычисление среднего балла, используем оператор присоединения WITH }
Memo1.Lines.Add('Ср. балл каждого');
for i:=1 to n do
with mas[i] do
Begin
sb:=(oz.fizik+oz.matem + oz.progr)/3;
Memo1.Lines.Add(fio+' '+FloatToStr(sb));
end;
end;
If RadioButton2.Checked=True Then
Begin
{ Сортировка массива записей }
for i:=1 to n-1 do
for j:=i downto 1 do
if mas[j].sb>mas[j+1].sb
then begin
x:=mas[j];
mas[j]:=mas[j+1];
mas[j+1]:=x;
end;
{ Вывод отсортированного массива }
Memo1.Lines.Add('сорт. по ср.баллу');
for i:=1 to n do
with mas[i] do
begin
Memo1.Lines.Add(mas[i].fio+' '+IntToStr(mas[i].oz.fizik)+' '+
IntToStr(mas[i].oz.matem)+' '+
IntToStr(mas[i].oz.progr)+' '+FloatToStr(mas[i].sb));
end;
end;
If RadioButton3.Checked=True Then
Begin
{ Вывод студентов, сдавших программирование на "5" }
Memo1.Lines.Add('На "5"');
for i:=1 to n do
with mas[i].oz do
if progr=5 then
Memo1.Lines.Add(mas[i].fio);
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
close
end;
begin
i:=1;
end.