Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.82/34: Рейтинг темы: голосов - 34, средняя оценка - 4.82
0 / 0 / 2
Регистрация: 04.04.2012
Сообщений: 11

Написать обучающий тест

23.07.2012, 13:40. Показов 7159. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно написать обучающий тест по любой дисциплине! Срочно нужно!! Или может у кого есть готовая программа!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.07.2012, 13:40
Ответы с готовыми решениями:

Обучающий материал по Wordpress
Всем доброго времени суток. Начал изучение wordpressa - с чтения мануалов, и кодекса. Были попытки(даже удачные) в написании плагина,...

Обучающий курс по FrontPage
Люди дайте пожалуйста ссылочку на обучающий курс(желательно наглядный) по FrontPage 2003 rus, необходимо создать WEB страничку! не...

Обучающий курс CS50
Не могли бы Вы подсказать по поводу первой лекции. Не понял, за счет чего достигается увеличение скорости при поиске записи о человеке в...

25
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
23.07.2012, 18:11
вот шаблон, внести вопросы и ответы можно любые. если количество вариантов ответов отличается от 4, надо изменить константу n
текст программы
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
uses crt;
const n=4; //количество вариантов ответов!!! важно!!!
      t='Название теста';
      l='----------------------------------------';
var vopr,otv,potv: text; //файлы: вопросов, ответов и правильных ответов
    r: byte;
 
procedure Obuchenie;
var s: string;
    i,c,o: byte;
begin
assign(vopr,'D:\vopr.txt');
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      clrscr;
      readln(potv,o);
      readln(vopr,s);
      writeln(t);
      writeln(l);
      writeln(s);
      writeln(l);
      for i:=1 to n do
          begin
          readln(otv,s);
          writeln(i,' - ',s);
          end;
      repeat
      writeln('Ваш ответ:');
      readln(c);
      if c<>o then writeln('Ответ неправильный, попробуйте снова');
      until c=o;
      end;
close(vopr);
close(otv);
close(potv);
clrscr;
writeln('Обучение закончено');
readln;
end;
 
procedure Test;
var s: string;
    i,c,o: byte;
    b,a: integer;
begin
b:=0; a:=0;
assign(vopr,'D:\vopr.txt');  //это директории файлов, если они будут храниться не на диске D, надо поменять
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      inc(a);
      clrscr;
      readln(potv,o);
      readln(vopr,s);
      writeln(t);
      writeln(l);
      writeln(s);
      writeln(l);
      for i:=1 to n do
          begin
          readln(otv,s);
          writeln(i,' - ',s);
          end;
      writeln('Ваш ответ:');
      readln(c);
      if c<>o then writeln('Ответ не засчитан') else inc(b);
      end;
close(vopr);
close(otv);
close(potv);
clrscr;
writeln('Тестирование закончено');
writeln('Ваш результат ',b,' из ',a);
readln;
end;
 
begin
repeat
writeln('0-завершение работы');
writeln('1-тестирование в обучающем режиме');
writeln('2-тестирование в контрольном режиме');
readln(r);
case r of
1: Obuchenie;
2: Test;
else r:=0;
end;
until r=0;
end.
пример файлов (файлы располагать на диске D)
Вложения
Тип файла: txt vopr.txt (251 байт, 167 просмотров)
Тип файла: txt otv.txt (346 байт, 125 просмотров)
Тип файла: txt potv.txt (12 байт, 127 просмотров)
2
0 / 0 / 2
Регистрация: 04.04.2012
Сообщений: 11
23.07.2012, 19:24  [ТС]
Огромное спасибо!....)
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
19.05.2013, 12:59
Цитата Сообщение от КонецСвета Посмотреть сообщение
вот шаблон, внести вопросы и ответы можно любые. если количество вариантов ответов отличается от 4, надо изменить константу n
текст программы


у меня к вам немного тупой вопрос вот вы сделали программу в pascal abc я делаю её в ABC.Net я меняю uses crt на граф и всё работает но вот проблема в том, что когда строка вопроса например походитк концу диалогового окна я больше ничего не могу сделать, а мне нужно сделать тест на 20 вопросов а как появятся они если программа не показывает то что ниже диалогового окна. надеюсь вы понели о чём я если что могу кинуть скрин чтоб понятнее было)
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.05.2013, 13:40
dark_7k, давайте скрин, а? ) и отдельно поясните, что значит
Цитата Сообщение от dark_7k Посмотреть сообщение
на граф
вы используете вывод в графическое окно?
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
20.05.2013, 00:12
Цитата Сообщение от КонецСвета Посмотреть сообщение
dark_7k, давайте скрин, а? ) и отдельно поясните, что значит вы используете вывод в графическое окно?

USES CRT;меняю на uses GraphABC;





0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
20.05.2013, 01:28
dark_7k, вывод в графическое окно осуществляется с помощью других процедур, вот посмотрите (только для обучающего тестирования!)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
uses graphabc;
const n=4; //количество вариантов ответов!!! важно!!!
      t='Название теста';
      l='----------------------------------------';
var vopr,otv,potv: text; //файлы: вопросов, ответов и правильных ответов
    r: byte;
 
procedure Obuchenie;
var s: string;
    i,c,o: byte;
begin
assign(vopr,'D:\vopr.txt');
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      textout(10,10,t);
      textout(10,30,l);
      textout(10,50,s);
      textout(10,70,l);
      for i:=1 to n do
          begin
          readln(otv,s);
          textout(10,60+(i*20),inttostr(i)+' - '+s);
          end;
      repeat
      textout(10,180,'Ваш ответ:');
      readln(c);
      if c<>o then textout(10,200,'Ответ неправильный, попробуйте снова');
      until c=o;
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Обучение закончено');
readln;
end;
 
procedure Test;
var s: string;
    i,c,o: byte;
    b,a: integer;
begin
b:=0; a:=0;
assign(vopr,'D:\vopr.txt');  //это директории файлов, если они будут храниться не на диске D, надо поменять
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      inc(a);
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      writeln(t);
      writeln(l);
      writeln(s);
      writeln(l);
      for i:=1 to n do
          begin
          readln(otv,s);
          writeln(i,' - ',s);
          end;
      writeln('Ваш ответ:');
      readln(c);
      if c<>o then writeln('Ответ не засчитан') else inc(b);
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Тестирование закончено');
writeln('Ваш результат ',b,' из ',a);
readln;
end;
 
begin
repeat
textout(10,240,'0-завершение работы');
textout(10,260,'1-тестирование в обучающем режиме');
textout(10,280,'2-тестирование в контрольном режиме');
readln(r);
case r of
1: Obuchenie;
2: Test;
else r:=0;
end;
until r=0;
end.
однако я все-таки посоветую, если для вас вывод в графическое окно не принципиально обязателен, используйте все-таки модуль crt (на случай: в PascalABC.NET компиляция программ с использованием crt осуществляется через Shift+F9).
так как то, что изложено выше - не совсем фонтан (
1) слишком длинные вопросы выйдут за границы экрана, надо прописать проверку длины строки и разделение ее на части
2) считывать ответ следовало бы через readkey и надо бы выводить после слов "Ваш ответ"
//в общем, мороки хватит ))
1
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
21.05.2013, 21:52
Цитата Сообщение от КонецСвета Посмотреть сообщение
dark_7k, вывод в графическое окно осуществляется с помощью других процедур, вот посмотрите (только для обучающего тестирования!)
большое спасибо!!! и вот еще один маленький наглый вопросик, я как бы пишу с помощью вашей программы курсовую работу и я вот хочу сделать в самом начале кнопочку, чтоб нажимал на неё и начанался тест... подскажите по этому поводу или скиньте пожалуйста обсуждение похожей темы если не трудно....
P.S: откажете пойму))
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
21.05.2013, 22:21
ну, сказать по правде, я как "кнопку" предпочитаю использовать область экрана

вот пример (левой по правилам игры или правой - в любом месте)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
uses graphABC,Events;                   //подключаемые модули: графики, событий
var    ver_gor: byte;                      //переменная, которая определяет направление, в котором удаляются фишки: горизонтальное или вертикальное
 
//процедура рисования поля
procedure DrawPole;   //входной параметр - массив фишек
begin
clearwindow;                  //очистить окно
 
//рисуем стрелочку, которая направление обозначает
setpenwidth(3);           //толщина пера
setpencolor(clblack);     //цвет пера - черный
if ver_gor=1 then         //если переменная ver_gor=1 (вертикально)
  begin
  line(750,130,750,170);    //линиями рисуем вертикальную стрелку
  line(750,130,745,135);
  line(750,130,755,135);
  line(750,170,745,165);
  line(750,170,755,165);  
  end else                //иначе
    begin
    line(730,150,770,150);  //линиями рисуем горизонтальную стрелку
    line(730,150,735,155);
    line(730,150,735,145); 
    line(770,150,765,155);
    line(770,150,765,145); 
    end;
 
//заголовок окна, обновляется после каждого клика, поэтому включен в эту процедуру    
//window.Caption:='Мой тест  '+'Ваш счет: '+inttostr(schet);
 
//рисуем кнопки - для правил и для выбора уровня сложности
setpencolor(clblue);                //цвет пера - синий
setbrushcolor(clcornflowerblue);    //цвет кисти - светлосиний
rectangle(520,300,750,350);         //большой прямоугольник - для книпки с правилами
rectangle(520,420,570,470);         //маленькие прямоугольники - для кнопок сложности
rectangle(610,420,660,470);
rectangle(700,420,750,470);
setfontcolor(clwhite);              //цвет шрифта белый, чтобы писать на кнопке
textout(530,310,'ПРАВИЛА ИГРЫ');    //выводим текст на кнопках
textout(535,430,'1');
textout(625,430,'2');
textout(715,430,'3');
 
redraw;                             //перерисовка
end;
 
procedure Help;                       //процедура помощи
begin
clearwindow;                          //очистить окно
setbrushcolor(clwhite);               //цвет кисти - белый
setfontcolor(clblack);                //цвет шрифта - черный
//выводим текст правил
textout(300,50,'ПРАВИЛА ИГРЫ');
textout(20,90,'тыр,');
textout(20,130,'тыр');
textout(20,180,'одного цвета.');
redraw;                               //перерисовка
end;
 
//процедура обработки нажатия мышки - самая важная часть программы
procedure MouseDown(x,y,mb: integer);   //входные параметры - координаты щелчка и клавиша (правая / левая)
begin
  if mb=1 then                                      //если левая
    begin
    DrawPole;             //производим рисование поля
    if (x>520) and (x<750)      //если мышкой кликнули в координатах прямоугольника с надписью "правила игры"
      and (y>300) and (y<350) then Help;   //осуществляем процедуру вывода правил игры
      end else          //иначе, (то есть если произведен щелчок правой кнопкой мыши)
      begin
      ver_gor:=ver_gor*(-1);              //меняем значение направления вертикаль / горизонталь на противоположное
      DrawPole;                     //рисуем поле
      end;
end;
 
//основная программа
begin
CenterWindow;             //разместить окно по центру
setwindowsize(800,520);   //размер графического окна
lockdrawing;              //Блокирует рисование на графическом окне. Перерисовка графического окна выполняется с помощью Redraw, это чтобы экран не мигал при перерисовке 
ver_gor:=1;               //начальное значение направления  по умолчанию - вертикаль
DrawPole;           //рисуем начальное поле
OnMouseDown := MouseDown; //дальше осуществляется обработка по щелчку мыши
end.
1
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
23.05.2013, 20:03
Цитата Сообщение от КонецСвета Посмотреть сообщение
dark_7k, вывод в графическое окно осуществляется с помощью других процедур, вот посмотрите (только для обучающего тестирования!)
.....
вот вы сделали чтобы он очищал экран чтобы текст не накладывался но получилось так, что он стирает то впрос на который я уже ответил и пишет следующий с большим отступом, а можно сделать так чтобы программа очищала окно после 3 впросов например чтоб не было так
Миниатюры
Написать обучающий тест   Написать обучающий тест  
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
23.05.2013, 22:01
dark_7k, вряд ли это будет рационально, потому что придется каждый раз просчитывать новую позицию для "Ваш ответ"
но у меня ничего не смещается, каждый вопрос выводится в левом верхнем углу (?!)
проверьте еще раз код выше - точно съезжает?
у меня версия PABC.NET 1,8 сборка 496
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
25.05.2013, 10:24
Цитата Сообщение от КонецСвета Посмотреть сообщение
dark_7k, вряд ли это будет рационально, потому что придется каждый раз просчитывать новую позицию для "Ваш ответ"
но у меня ничего не смещается, каждый вопрос выводится в левом верхнем углу (?!)
проверьте еще раз код выше - точно съезжает?
у меня версия PABC.NET 1,8 сборка 496
хорошо я проверю может действительно это из за того что паскаль старенький, а это точно может быть из за того что версия старая?
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
25.05.2013, 11:32
не думаю... (хотя кто его знает) наоборот, у меня версия старовата...
я думаю, возможно, вы добавили какие-то параметры в цикл?
можете выложить свой код? )
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
25.05.2013, 12:35
Цитата Сообщение от КонецСвета Посмотреть сообщение
не думаю... (хотя кто его знает) наоборот, у меня версия старовата...
я думаю, возможно, вы добавили какие-то параметры в цикл?
можете выложить свой код? )
нееет ничего не изменял вот вставляю ваш код и так делается... у меня версия 2.0 сборка 534
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
25.05.2013, 20:39
dark_7k, а вот как это выглядит у меня

Попытка выводить по 3 вопроса закончилась неудачно - у меня даже два вопроса в заданную область не вмещаются
у меня 2 варианта дальнейших действий:
1) попробуйте скомпилировать программу и запустить exe-файлом - та же ситуация повторится (?)
2) выложите свой текст, проверю "на себе" )
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
26.05.2013, 11:28
Цитата Сообщение от КонецСвета Посмотреть сообщение
dark_7k, а вот как это выглядит у меня
Вложение 272797Вложение 272798Вложение 272799

1) попробуйте скомпилировать программу и запустить exe-файлом - та же ситуация повторится (?)
2) выложите свой текст, проверю "на себе" )

скомпилировал ничего не изменилось
вот моя работа я там попытался сделать кнопку но это не из за неё так смещается
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
uses graphabc,ABCbuttons;
const n=4; //количество вариантов ответов!!! важно!!!
      t='Название теста';
      l='----------------------------------------';
var vopr,otv,potv: text; //файлы: вопросов, ответов и правильных ответов
    r: byte;
 
procedure Obuchenie;
var s: string;
    i,c,o: byte;
    d:  buttonabc;
begin
 
assign(vopr,'D:\vopr.txt');
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
 
while not (eof(vopr)) do
      begin
      
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      textout(10,10,t);
      textout(10,30,l);
      textout(10,50,s);
      textout(10,70,l);
      for i:=1 to n do
          begin
          readln(otv,s);
          textout(10,60+(i*20),inttostr(i)+' - '+s);
          end;
      repeat
      textout(10,180,'Ваш ответ:');
      readln(c);
      if c<>o then textout(10,200,'Ответ неправильный, попробуйте снова');
      until c=o;
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Обучение закончено');
readln;
end;
 
procedure Test;
var s: string;
    i,c,o: byte;
    b,a: integer;
    d : buttonabc;
begin
b:=0; a:=0;
assign(vopr,'D:\vopr.txt');  //это директории файлов, если они будут храниться не на диске D, надо поменять
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      writeln(t);
      writeln(l);
      writeln(s);
      writeln(l);
      for i:=1 to n do
          begin
          readln(otv,s);
          writeln(i,' - ',s);
          end;
      writeln('Ваш ответ:');
      readln(c);
      if c<>o then writeln('Ответ не засчитан') else inc(b);
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Тестирование закончено');
writeln('Ваш результат ',b,' из ',a);
readln;
end;
 
begin
var d: buttonabc;
repeat
 d := buttonabc.create(200, 410, 400, 50, 'старт теста ', clwhite);
     d.Onclick :=clearwindow;
textout(10,240,'0-завершение работы');
 
textout(10,286,'2-Начать тест!');
readln(r);
case r of
 
2: Test;
else r:=0;
end;
until r=0;
end.
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
26.05.2013, 11:34
вижу. буду разбираться )

причина найдена (кажется)

сравните процедуры тренировочного тестирования и просто тестирования ))
тренировочное настроено для вывода в очищенном окне сверху, а просто тестирование - друг за другом.

сможете переделать процедуру простого как тренировочного, или подмогнуть? ()
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
26.05.2013, 11:45
еще вот проблема щас мне помогли сделать кнопку старта но выдаёт ошибку(((
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
uses graphABC, ABCbuttons;
const n=4; //количество вариантов ответов!!! важно!!!
      t='Название теста';
      l='----------------------------------------';
var vopr,otv,potv: text; //файлы: вопросов, ответов и правильных ответов
    r: byte;
 
procedure Obuchenie;
var s: string;
    i,c,o: byte;
    d:  buttonabc;
begin
 
assign(vopr,'vopr.txt');
assign(otv,'otv.txt');
assign(potv,'potv.txt');
reset(vopr);
reset(otv);
reset(potv);
 
while not (eof(vopr)) do
      begin
      
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      textout(10,10,t);
      textout(10,30,l);
      textout(10,50,s);
      textout(10,70,l);
      for i:=1 to n do
          begin
          readln(otv,s);
          textout(10,60+(i*20),inttostr(i)+' - '+s);
          end;
      repeat
      textout(10,180,'Ваш ответ:');
      readln(c);
      if c<>o then textout(10,200,'Ответ неправильный, попробуйте снова');
      until c=o;
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Обучение закончено');
readln;
end;
 
procedure Test;
var s: string;
    i,c,o: byte;
    b,a: integer;
    d : buttonabc;
begin
b:=0; a:=0;
assign(vopr,'vopr.txt');  //это директории файлов, если они будут храниться не на диске D, надо поменять
assign(otv,'otv.txt');
assign(potv,'potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      writeln(t);
      writeln(l);
      writeln(s);
      writeln(l);
      for i:=1 to n do
          begin
          readln(otv,s);
          writeln(i,' - ',s);
          end;
      writeln('Ваш ответ:');
      readln(c);
      if c<>o then writeln('Ответ не засчитан') else inc(b);
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Тестирование закончено');
writeln('Ваш результат ',b,' из ',a);
readln;
end;
 
 procedure start;
begin
var d: buttonabc;
textout(100,200,'Тест по теме:');
 d := buttonabc.create(200, 410, 400, 50, 'старт теста ', clwhite);
 d.Onclick :=Test;
 
end;
begin
start
end.
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
26.05.2013, 11:46
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
procedure Test;
var s: string;
    c,o: byte;
    b,a: integer;
    d : buttonabc;
begin
b:=0; a:=0;
assign(vopr,'D:\vopr.txt');  //это директории файлов, если они будут храниться не на диске D, надо поменять
assign(otv,'D:\otv.txt');
assign(potv,'D:\potv.txt');
reset(vopr);
reset(otv);
reset(potv);
while not (eof(vopr)) do
      begin
      
      clearwindow;
      readln(potv,o);
      readln(vopr,s);
      textout(10,10,t);
      textout(10,30,l);
      textout(10,50,s);
      textout(10,70,l);
      for var i:=1 to n do
          begin
          readln(otv,s);
          textout(10,60+(i*20),inttostr(i)+' - '+s);
          end;
      textout(10,180,'Ваш ответ:');
      readln(c);
      if c<>o then textout(10,200,'Ответ не засчитан, нажмите любую кнопку') else inc(b);
      readln;
      end;
close(vopr);
close(otv);
close(potv);
clearwindow;
writeln('Тестирование закончено');
writeln('Ваш результат ',b,' из ',a);
readln;
end;
вот процедура тестирования с очисткой окна и выводом в верхнем левом углу


пс.. с кнопкой вряд ли смогу помочь (
0
1 / 1 / 1
Регистрация: 17.05.2013
Сообщений: 50
26.05.2013, 11:52
Цитата Сообщение от КонецСвета Посмотреть сообщение
[PASCAL]procedure Test;

вот процедура тестирования с очисткой окна и выводом в верхнем левом углу


пс.. с кнопкой вряд ли смогу помочь (
блиинн не знаю мпочему может действительно из за веорсии паскаль но у меня ничего не изменилось щас попробую установить самую новую может поможет
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.05.2013, 11:52
Помогаю со студенческими работами здесь

Подскажите обучающий сайт
Подскажите пожалуйста, есть ли сайт вроде этого http://acodemy.ru/courses но про c++

Как создать обучающий симулятор?
Добрый день, господа! Поставлена задача создать обучающий симулятор, который будет полностью копировать действующее устройство. При...

Что делает обучающий скрипт?
Скрипт объясняет как сделать так что бы функции запускались строго одна после другой. Я новичок в JS // Запускаем цепочку...

Обучающий материал по Visual Studio
Ищу обучающий материал по среде разработки visual studio (курс/книга/статьи). Использую C++, так что желательно чтобы материал также связан...

TrinityCore C++ Обучающий проект. + DB MySQL
Есть игра, World of Warcraft И симулятор / ядро на котором оно основано. TrinityCore на C++ Вот исходный код ядра: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru