Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2017, 04:01   #1
nika_dreamy
Новичок
Джуниор
 
Регистрация: 12.03.2017
Сообщений: 2
По умолчанию Как в тесте учесть вариант, если пользователь не выбрал ни одного ответа?

Здравствуйте! Подскажите, пожалуйста, как в данном тесте учесть вариант, если пользователь не выбрал ни одного ответа (в этом случае у меня выдает кол-во правильных ответов 72) или не ответил на некоторые вопросы? Не бросайте тапками, если что не так

Код:
unit Mytest;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, Buttons, ComCtrls, jpeg;
type
  TForm1 = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    Image1: TImage;
    Label2: TLabel;
    Memo1: TMemo;
    Image2: TImage;
    ScrollBox1: TScrollBox;
    RadioGroup1: TRadioGroup;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    RadioGroup2: TRadioGroup;
    RadioGroup3: TRadioGroup;
    RadioGroup4: TRadioGroup;
    RadioGroup5: TRadioGroup;
    RadioGroup6: TRadioGroup;
    RadioGroup7: TRadioGroup;
    RadioGroup8: TRadioGroup;
    RadioGroup9: TRadioGroup;
    RadioGroup10: TRadioGroup;
    RadioGroup11: TRadioGroup;
    RadioGroup12: TRadioGroup;
    RadioGroup13: TRadioGroup;
    RadioGroup14: TRadioGroup;
    RadioGroup15: TRadioGroup;
    RadioGroup16: TRadioGroup;
    RadioGroup17: TRadioGroup;
    RadioGroup18: TRadioGroup;
    RadioGroup19: TRadioGroup;
    RadioGroup20: TRadioGroup;
    RadioGroup21: TRadioGroup;
    RadioGroup22: TRadioGroup;
    RadioGroup23: TRadioGroup;
    RadioGroup24: TRadioGroup;
    RadioGroup25: TRadioGroup;
    RadioGroup26: TRadioGroup;
    RadioGroup27: TRadioGroup;
    RadioGroup28: TRadioGroup;
    RadioGroup29: TRadioGroup;
    RadioGroup30: TRadioGroup;
    RadioGroup31: TRadioGroup;
    RadioGroup32: TRadioGroup;
    RadioGroup33: TRadioGroup;
    RadioGroup34: TRadioGroup;
    RadioGroup35: TRadioGroup;
    RadioGroup36: TRadioGroup;
    Button1: TButton;
    Label6: TLabel;
    Image3: TImage;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  ball:integer;
  type answers=array[1..36,0..4] of byte;
  const otv:answers=((1,0,0,0,0),(0,1,0,0,0),(0,0,0,0,1),(0,0,0,0,1),(0,0,0,1,0),(0,0,0,0,1),(0,0,0,1,0),(0,0,0,0,1),(0,0,0,0,1),(0,1,0,0,0),(0,0,0,0,1),(0,1,0,0,0),(0,0,0,1,0),(0,0,0,0,1),(0,0,1,0,0),(0,0,0,1,0),(0,0,1,0,0),(0,0,1,0,0),(0,0,0,1,0),(1,0,0,0,0),(0,0,0,0,1),(0,0,0,1,0),(0,0,0,0,1),(0,1,0,0,0),(1,0,0,0,0),(0,0,0,1,0),(0,1,0,0,0),(1,0,0,0,0),(0,1,0,0,0),(0,0,1,0,0),(0,0,0,0,1),(1,0,0,0,0),(0,1,0,0,0),(0,0,0,1,0),(0,0,0,1,0),(0,0,0,1,0));

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ball:=otv[1,radiogroup1.itemIndex]+
otv[2,radiogroup2.itemIndex]+
otv[3,radiogroup3.itemIndex]+
otv[4,radiogroup4.itemIndex]+
otv[5,radiogroup5.itemIndex]+
otv[6,radiogroup6.itemIndex]+
otv[7,radiogroup7.itemIndex]+
otv[8,radiogroup8.itemIndex]+
otv[9,radiogroup9.itemIndex]+
otv[10,radiogroup10.itemIndex]+
otv[11,radiogroup11.itemIndex]+
otv[12,radiogroup12.itemIndex]+
otv[13,radiogroup13.itemIndex]+
otv[14,radiogroup14.itemIndex]+
otv[15,radiogroup15.itemIndex]+
otv[16,radiogroup16.itemIndex]+
otv[17,radiogroup17.itemIndex]+
otv[18,radiogroup18.itemIndex]+
otv[19,radiogroup19.itemIndex]+
otv[20,radiogroup20.itemIndex]+
otv[21,radiogroup21.itemIndex]+
otv[22,radiogroup22.itemIndex]+
otv[23,radiogroup23.itemIndex]+
otv[24,radiogroup24.itemIndex]+
otv[25,radiogroup25.itemIndex]+
otv[26,radiogroup26.itemIndex]+
otv[27,radiogroup27.itemIndex]+
otv[28,radiogroup28.itemIndex]+
otv[29,radiogroup29.itemIndex]+
otv[30,radiogroup30.itemIndex]+
otv[31,radiogroup31.itemIndex]+
otv[32,radiogroup32.itemIndex]+
otv[33,radiogroup33.itemIndex]+
otv[34,radiogroup34.itemIndex]+
otv[35,radiogroup35.itemIndex]+
otv[36,radiogroup36.itemIndex];
label6.caption:='Правильных ответов  '+IntToStr(ball);
end;
end.

Последний раз редактировалось Аватар; 12.03.2017 в 09:19.
nika_dreamy вне форума Ответить с цитированием
Старый 12.03.2017, 10:58   #2
Replicant
Форумчанин
 
Аватар для Replicant
 
Регистрация: 17.08.2009
Сообщений: 139
По умолчанию

Перед подсчетом ball сделать проверку - цикл по всем радиогруппам, если не отмечен не один из ответов then showmessage('Вы не ответили на вопрос №'+i) ну и Exit

Код:
  for i := 0 to ComponentCount -1 do
  if (Components[i] is TRadioGroup) and (TRadioGroup(Components[i]).ItemIndex < 0) then
  begin
    Showmessage('Вы не ответили на вопрос №'+i.ToString);
    Exit;
  end;

Последний раз редактировалось Replicant; 12.03.2017 в 11:07.
Replicant вне форума Ответить с цитированием
Старый 12.03.2017, 15:37   #3
nika_dreamy
Новичок
Джуниор
 
Регистрация: 12.03.2017
Сообщений: 2
По умолчанию

Большое спасибо!
nika_dreamy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сортировка не рекурсивный вариант если можно с++ mugik770 Помощь студентам 6 14.07.2012 07:10
Нажатие правильного ответа в Тесте bmb_66 Общие вопросы Delphi 0 02.06.2011 10:06
Ограничение на ввод значений в ячейку макросом. Как учесть особенности? clever77 Microsoft Office Excel 2 22.05.2011 19:04
как быть, если имя и пользователь не допустим в этом домене svet-LANA Помощь студентам 1 22.12.2010 10:30
Обработчик ответа в тесте [pascal] kakawkin Помощь студентам 1 25.11.2009 22:34