
- •Лабораторная работа №2 Тема: «Разветвляющаяся базовая конструкция (Ветвление, альтернатива). Оператор условия»
- •Срсп(3 часа) Задание 1. Решить задачи и создать проекты для реализации решения задач. Постановка задачи
- •При выполнении задач и при защите лабораторных указывать способ передачи параметров по ссылке или по значению. Постановка задачи
- •Дополнительное задание
- •Лабораторная работа №12 Тема: «Использование записей при составлении программ» Цели работы
- •2. Объявите глобальные переменные после строки Form1: Tform1;:
- •Код формы с организацией тестирования:
- •Постановка задачи
- •Постановка задачи
- •Дополнительное задание
Код формы с организацией тестирования:
unit Unittest;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, mylib,
StdCtrls, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Label1: TLabel;
RadioGroup1: TRadioGroup;
Label2: TLabel;
Label3: TLabel;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label4: TLabel;
Image1: TImage;
Label5: TLabel;
procedure FormCreate(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
vopros:array[1..100] of shortstring; // массив для записи вопросов в тесте
otvet: array[1..1000,1..5] of shortstring; // массив для записи ответов в тесте
prav_otv:array[1..1000] of shortstring; // массив для записи правильных ответов
reiting : integer; // переменная для подсчета рейтинга
rmax ,ksl :integer; // переменные передаваемые в процедуру sluch для выбора случайным //образом rmax вопросов для тестирования из числа имеющихся ksl.
rmax1,ksl1:integer; // для перемешивания вариантов ответа
fix : mas; // массив для запоминания номеров вопросов используемых в тесте
answer : mas; // массив для запоминания номеров ответов в случайном порядке num_vopr:integer; // номер вопроса
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var s,s1:shortstring;
name_f:shortstring;
i,k,j:integer;
f,f1:textfile;
begin
k:=0;
assignfile(f,’test.dat’);
reset(f);
while not eof(f) do
begin
readln(f,s);
if s[1]='?' then
begin
inc(k);
s1:=copy(s,2,length(s));
vopros[k]:=s1;
j:=0;
end
else
if s[1]='+' then
begin
inc(j);
s1:=copy(s,2,length(s));
otvet[k,j]:=s1;
prav_otv[k]:=s1;
// showmessage(s1);
end
else
begin
inc(j);
otvet[k,j]:=s;
end;
end; // while
closefile(f);
ksl:=k;
rmax:=k;
sluch(fix,rmax,ksl);
num_vopr:=1;
label1.caption:=vopros[fix[num_vopr]];
rmax1:=5;
ksl1:=5;
sluch(answer,rmax1,ksl1);
Radiogroup1.Items.Clear;
for i:=0 to 4 do begin
if otvet[num_vopr,answr[I+1]]>’’ then
radiogroup1.Items.Add(otvet[num_vopr,answr[I+1]]);
radiogroup1.ItemIndex:=-1;
reiting:=0;
end;
// Кнопка «Далее»
procedure TForm1.BitBtn2Click(Sender: TObject);
var i,k:integer;
В:double;
begin
if Radiogroup1.ItemIndex<0 then begin
showmessage('Выберите ответ' );
exit;
end;
if prav_otv[fix[num_vopr]]= Radiogroup1. Items [ Radiogroup1.ItemIndex] then
begin inc(reiting);
label2.Caption:='Правильно!!!' end
else begin
label2.Caption:='Неправильно...';
s_num_neotv:=s_num_neotv+inttostr(fix[num_vopr])+' ';
end;
inc(num_vopr);
if num_vopr<=rmax then begin
label3.Caption:='Вопрос '+inttostr(num_vopr);
label1.caption:=vopros[fix[num_vopr]];
label4.Caption:='Правильных ответов = '+inttostr(reiting);
sluch(answer,rmax1,ksl1);
Radiogroup1.Items.Clear;
for i:=0 to 4 do
if otvet[num_vopr,answr[I+1]]>’’ then
radiogroup1.Items.Add(otvet[num_vopr,answr[I+1]]);
radiogroup1.ItemIndex:=-1;
end
else begin
Showmessage(‘Тестирование завершено’);
B:= reiting/rmax*100;
Label5.Caption:=' '+floatTostr(B);
end;
end; //proc
СРСП(3 часа)