Помогите с тренажёрам для тренеровки памяти на PASCAL ???
Расскажите более подробно, пожалуйста. Что имеется ввиду под тренировкой памяти?
Просто задали написать на Pascal какую нибудь прогу для тренировки памяти, причем тип её определяется студентом. Вот я и не знаю как это сделать.
1. Тренировка памяти на цвет, форму, количество геометрических фигур.
2. Тренировка памяти на слова, числа.
Всё достаточно просто реализуется. Вам нужно идеи или готовые программы?
Подаем идеи, если человек не справляется - программы или примеры!
Мне нужны исходники, хоть это и просто, но я не совсем дружу с PASCALем и это вызывает трудности. Поэтомы если вам не трудно отправте мне её, мне подойдёт любой тренажёр.
А поисковиками не пробовал пользоваться - говорят помогает... >:(
http://pascal.sources.ru/games/quad.zip
Uses Crt;
Const
MaxNumbers = 5;
Var
Numbers : Array [1..MaxNumbers] of Integer;
Numbers2 : Array [1..MaxNumbers] of Integer;
ErrorsA : Array [1..MaxNumbers] of Integer;
i : Integer;
TempStr : String;
S : String;
DelTime : Integer;
CurrN : Integer;
Errors : Integer;
Diff : Integer;
Sum : Real;
Begin
CurrN:=1;
DelTime:=MaxNumbers*1000;
Diff:=100;
Randomize;
For i:=1 to MaxNumbers-CurrN do
ErrorsA[i]:=0;
While CurrN<=MaxNumbers do
begin
ClrScr;
TempStr:='';
S:='';
for i:=1 to CurrN do
begin
Numbers[i]:=Random(Diff);
Str(Numbers[i],TempStr);
S:=S+TempStr+' ';
end;
GotoXY(1,1);
Writeln(DelTime div 1000,' секунд на выполнение задания!');
GotoXY(39-Length(s) div 2,12);
Writeln(s);
Delay(DelTime);
ClrScr;
Errors:=0;
for i:=1 to CurrN do
begin
WriteLn('Введите ',i,' число: ');
ReadLn(Numbers2[i]);
end;
for i:=1 to CurrN do
begin
if Numbers2[i]<>Numbers[i] then
Errors:=Errors+1;
end;
WriteLn('Ошибок допущено: ',Errors);
ErrorsA[CurrN]:=Round(Errors/CurrN*100);
WriteLn('Процент допущенных ошибок : ',ErrorsA[CurrN],'%');
{ Увеличиваем количество чисел }
CurrN:=CurrN+1;
{ Уменьшаем время примерно на 1 сек. }
DelTime:=DelTime-1000;
{ Увеличиваем числа }
Diff:=Diff+100;
ReadLn;
end;
Sum:=0;
For i:=1 to MaxNumbers do
Sum:=Sum+ErrorsA[i];
Sum:=Sum/MaxNumbers;
WriteLn('Средний процент ошибок в выполненых заданиях = ',Round(sum),'%');
ReadLn;
End.
Спасибо огромное - очень выручили.
Я вот только не понял, что делает данная программа.
Моя?
Выводит на экран n-ное количество случайных чисел, выжидает некоторое время, просит ввести их. И идет проверка. Затем время их показа на экране уменьшается, количество чисел увеличивается, сами числа тоже.
В конце работы программы выводится ср. процент ошибок.
У меня почему-то она сразу запрашивает первое число, вводишь его она говорит, что ошибок одна, процент сто, при втором обращении она запрашивает уже прервое и второе и опять ошибок две, процент ошибок сто и так до пяти.
Немножко подправил: Там стоял лишний readln
Uses Crt;
Const
MaxNumbers = 5;
Var
Numbers : Array [1..MaxNumbers] of Integer;
Numbers2 : Array [1..MaxNumbers] of Integer;
ErrorsA : Array [1..MaxNumbers] of Integer;
i : Integer;
TempStr : String;
S : String;
DelTime : Integer;
CurrN : Integer;
Errors : Integer;
Diff : Integer;
Sum : Real;
Begin
CurrN:=1;
DelTime:=MaxNumbers*1000;
Diff:=100;
Randomize;
For i:=1 to MaxNumbers-CurrN do
ErrorsA[i]:=0;
While CurrN<=MaxNumbers do
begin
ClrScr;
TempStr:='';
S:='';
for i:=1 to CurrN do
begin
Numbers[i]:=Random(Diff);
Str(Numbers[i],TempStr);
S:=S+TempStr+' ';
end;
GotoXY(1,1);
Writeln(DelTime div 1000,' секунд на выполнение задания!');
GotoXY(39-Length(s) div 2,12);
Writeln(s);
Delay(DelTime);
ClrScr;
Errors:=0;
for i:=1 to CurrN do
begin
WriteLn('Введите ',i,' число: ');
ReadLn(Numbers2[i]);
end;
for i:=1 to CurrN do
begin
if Numbers2[i]<>Numbers[i] then
Errors:=Errors+1;
end;
WriteLn('Ошибок допущено: ',Errors);
ErrorsA[CurrN]:=Round(Errors/CurrN*100);
WriteLn('Процент допущенных ошибок : ',ErrorsA[CurrN],'%');
{ Увеличиваем количество чисел }
CurrN:=CurrN+1;
{ Уменьшаем время примерно на 1 сек. }
DelTime:=DelTime-1000;
{ Увеличиваем числа }
Diff:=Diff+100;
WriteLn('Нажмите любую клавишу: ');
ReadKey;
end;
Sum:=0;
For i:=1 to MaxNumbers do
Sum:=Sum+ErrorsA[i];
Sum:=Sum/MaxNumbers;
WriteLn('Средний процент ошибок в выполненых заданиях = ',Round(sum),'%');
ReadLn;
End.
Мне кажется, что в этой программе нужно увеличить задержку появляющегося числа, потому как слишком быстро появляются и исчезают числа, но всё равно спасибо.
Цитата
Мне кажется, что в этой программе нужно увеличить задержку появляющегося числа, потому как слишком быстро появляются и исчезают числа, но всё равно спасибо.
Процедура Delay(N) тебе поможет ! N - количество миллисекунд..
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.