Автор: mifrill 28.04.2003 23:29
Народ я не очень силен в языке ПАскаль но мне срочно нужно написать программу ну хотябы кто нибудь пусть даст намек или найдет что то похожее в архиве. А короче дело обстоит так, Надо написать ТЕСТ по информатике На Паскале. Где в Тесте 20 вопросов и четыре ответа. последовательность вопросов меняеться.А таже если возможно что бы при каждом запуске вопросы не повтрялись. С уважением Ваш МИФРИЛ
если что пишите Firechip@msn.com
Автор: Shadow 29.04.2003 0:13
:D
----
а к вопросам не через файл обращаться
имею ввиду что они не в отдельном файле
должны лежать
----
Автор: AlaRic 29.04.2003 10:28
Что нужно написать в топике правил, чтобы не было недоразумений???
Автор: Clane 29.04.2003 13:08
Код
program pas;
uses crt;
const
nq = 11;
nok: array [1..nq] of Integer = (1,3,2,3,1,3,3,2,1,2,3);
sgoon = 'Для продолжения нажмите клавишу Enter';
var otv,x,y,ires,nprav,i:integer;
ch: Char;
a:string;
samotv,prav:array[1..nq] of integer;
b: Boolean;
s: String;
nrep: array [1..nq] of Integer;
function GetRep: Integer;
const
imin = 1;
imax = 3;
begin
x:=WhereX; y:=WhereY;
{if imin > imax then begin
i:=imin;
imin:=imax;
imax:=i;
end;}
repeat
readln(s);
Val(s, ires, i);
b := (ires >= imin) and (ires <= imax) and (i = 0);
if not b then begin
GotoXY(x+Length(s)+2, y);
writeln(#27' Ошибка ввода ответа');
write('Для продолжения нажмите любую клавишу ');
repeat until KeyPressed;
while KeyPressed do Readkey;
GotoXY(x, y); ClrEol;
writeln; ClrEol; GotoXY(x, y);
end;
until b;
GetRep:=ires;
end; {GetRep}
begin
repeat
nprav:=0;
clrscr;
textcolor(22);
gotoxy(1,1);
write('Clane Company');
textcolor(22);
gotoxy(58,1);
write('e-mail:clane@online.ru');
textcolor(15);
gotoxy(29,2);
write('┌────────────┐');
gotoxy(29,3);
write('│ │');
gotoxy(29,4);
write('└────────────┘');
gotoxy(30,3);
write('Version 1.0');
textcolor(15);
gotoxy (25,12);
write('Это тест по географии ');
gotoxy(20,23);
write(sgoon);
readln;
clrscr;
textcolor(15);
gotoxy (25,12);
write('Тест по столицам Азии');
gotoxy(20,23);
write(sgoon);
readln;
clrscr;
gotoxy(25,10);
write ('Вопрос номер 1: ');
gotoxy (25,12);
write('Назовите столицу России ? ');
gotoxy(20,14);
write('1) Москва; ');
gotoxy(20,16);
write('2) Тверь; ');
gotoxy(20,18);
write('3) Саратов; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[1]:=GetRep;
if nrep[1] = nok[1] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 2: ');
gotoxy(25,12);
write('Назовите столицу Италии ? ');
gotoxy(20,14);
write('1) Милан; ');
gotoxy(20,16);
write('2) Венеция; ');
gotoxy(20,18);
write('3) Рим; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[2]:=GetRep;
if nrep[2] = nok[2] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 3: ');
gotoxy (25,12);
write('Назовите столицу Испании ? ');
gotoxy(20,14);
write('1) Сарагоса; ');
gotoxy(20,16);
write('2) Мадрид; ');
gotoxy(20,18);
write('3) Валенсия; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[3]:=GetRep;
if nrep[3] = nok[3] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 4: ');
gotoxy (25,12);
write('Назовите столицу Франции ? ');
gotoxy(20,14);
write('1) Нант; ');
gotoxy(20,16);
write('2) Лион; ');
gotoxy(20,18);
write('3) Париж; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[4]:=GetRep;
if nrep[4] = nok[4] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 5: ');
gotoxy (25,12);
write('Назовите столицу Германии ? ');
gotoxy(20,14);
write('1) Берлин; ');
gotoxy(20,16);
write('2) Бонн; ');
gotoxy(20,18);
write('3) Мюнхен; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[5]:=GetRep;
if nrep[5] = nok[5] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 6: ');
gotoxy (25,12);
write('Назовите столицу Англии ? ');
gotoxy(20,14);
write('1) Ковентри; ');
gotoxy(20,16);
write('2) Бирмингем; ');
gotoxy(20,18);
write('3) Лондон; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[6]:=GetRep;
if nrep[6] = nok[6] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 7: ');
gotoxy (25,12);
write('Назовите столицу Греции ? ');
gotoxy(20,14);
write('1) Салоники; ');
gotoxy(20,16);
write('2) Патры; ');
gotoxy(20,18);
write('3) Афины; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[7]:=GetRep;
if nrep[7] = nok[7] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 8: ');
gotoxy (25,12);
write('Назовите столицу Норвегии ? ');
gotoxy(20,14);
write('1) Тронхейм; ');
gotoxy(20,16);
write('2) Осло; ');
gotoxy(20,18);
write('3) Одда; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[8]:=GetRep;
if nrep[8] = nok[8] then nprav:=nprav+1;
Автор: Clane 29.04.2003 13:09
Код
clrscr; gotoxy(25,10);
write ('Вопрос номер 9: ');
gotoxy (25,12);
write('Назовите столицу Щвеции ? ');
gotoxy(20,14);
write('1) Стокгольм; ');
gotoxy(20,16);
write('2) Гетеборг; ');
gotoxy(20,18);
write('3) Мальме; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[9]:=GetRep;
if nrep[9] = nok[9] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 10: ');
gotoxy (25,12);
write('Назовите столицу Финляндии ? ');
gotoxy(20,14);
write('1) Коккола; ');
gotoxy(20,16);
write('2) Хельсинки; ');
gotoxy(20,18);
write('3) Сало; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[10]:=GetRep;
if nrep[10] = nok[10] then nprav:=nprav+1;
clrscr; gotoxy(25,10);
write ('Вопрос номер 11: ');
gotoxy (25,12);
write('Назовите столицу Болгарии ? ');
gotoxy(20,14);
write('1) Девин; ');
gotoxy(20,16);
write('2) Айтос; ');
gotoxy(20,18);
write('3) София; ');
gotoxy(25,24);
write('Ваш ответ : ');
nrep[11]:=GetRep;
if nrep[11] = nok[11] then nprav:=nprav+1;
clrscr;
gotoxy(2,1);
textcolor(30);
Writeln('Вопрос: │ Ответ: │ Верно');
textcolor(15);
for i:=1 to nq do begin
write(i:5, ' │', nrep[i]:6, ' │ ');
if nok[i] = nrep[i] then write('Да')
else write('Нет');
if i<>nq then writeln;
end;
gotoxy(40,2);
write('╔════════════════════════════════════╗');
gotoxy(40,3);
write('║ ║');
gotoxy(40,4);
write('╠════════════════════════════════════╣');
gotoxy(40,5);
write('║ ║');
gotoxy(40,6);
write('╚════════════════════════════════════╝');
gotoxy(41,3);
write(' Количество вопросов: ', nq);
gotoxy(41,5);
write(' Количество правильных ответов: ', nprav);
{
textcolor(12);
clrscr;
gotoxy(19,7);
writeln('Кoличество вопросов: ', nq );
gotoxy(19,9);
writeln('Кoличество правильных ответов: ', nprav );
writeln(' Вопрос: Ответ: Верно?');
for i:=1 to nq do begin
write(i:5, ' ', nrep[i], ' ');
if nok[i] = nrep[i] then writeln('Да')
else writeln('Нет');
end; }
gotoxy(43,15);
write('Ваша оценка ');
if nprav=11 then
begin
write('"5"!');
write(' Ну ты отличник!')
end;
if (nprav=10) or (nprav=9) then begin write('"5-"!'); textcolor(15); end;
if (nprav=8) or (nprav=7) then write('"4"');
if (nprav=6) or (nprav=5) then write('"4-"');
if (nprav=4) or (nprav=3) then write('"3"');
if nprav=2 then write('"3-"');
if nprav=1 then write('"2"');
if nprav=0 then write('"1"');
gotoxy(43,20);
textcolor(15);
write('Хотите повторить тесты (y/n)? ');
repeat
ch:=UpCase(ReadKey);
write(ch);
until ch in ['Y', 'N']; { ch in ['0'..'9'] }
until ch <> 'Y';
end.
Автор: Clane 29.04.2003 13:11
Вообщем почти что тебе нужно. Здесь правда нет чтение из файла, но при возможности с этим можем помочь. Программа рабочая, правда написанная лет 5 назад (причем на Ломоносовские чтения). Спрашивай, что непонятно.