![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Друзья...где то ошибка допущена и поэтому не работает программа....Немогу найти...Данную работу скачал в Интернете...
Есть ошибки с символами...Но вот эти я незнаю... Может кто-то сможет исправить??? Заранее благодарен!!!! (69): Statement expected, but expression of type 'Integer' found (103): Undeclared identifier: 'Edit1KeyPress' (103): ';' expected but '(' found (103): ';' expected but ')' found (108): Missing operator or semicolon и.т.д. Код:
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
const
KC = 5; // разрядность числа (кол-во цифр)
LT = 10; // количество чисел (длина теста)
var
numb: integer; // число, которое должен запомнить испытуемый
right: integer; // количество правильных чисел
n: integer; // счетчик чисел
{$R *.dfm}
// генерирует к - разрядное число
function GetNumb(k: integer) : integer;
var
n: integer; // генерируемое число
i: integer;
begin
// процедура генерирует число по разрядам
// начиная со старшего
n:= Random(9)+1; // старший разряд не может быть нулем
// остальные разряды
for i := 1 to (k-1) do
n := n*10 + Random(10);
GetNumb := n;
end;
// создание формы
procedure TForm1.FormCreate (Sender: TObject);
begin
Edit1.Visible := False; // скрыть поле ввода Editl
Edit1.MaxLength := KC; // кол-во символов, которое
// можно ввести
Label1.Wordwrap := True; // разрешить перенос слов на
// следующую строку
Label1.Caption :=
'Сейчас на экране будут появляться числа. ' +
'Вы должны запомнить число, набрать его на клавиатуре '+
'и нажать <Enter>';
Button1.Caption := 'Начать';
Timer1.Enabled := False; // таймер остановлен
Timer1.Interval := 1000; // время показа числа - 1 секунда
right := 0; // кол-во правильных
n := 0; // счетчик чисел
Randomize; 0// инициализация ГСЧ
end;
// щелчок на кнопке "Начать/Завершить"
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption = 'Завершить' then
Form1.Close; // закрыть окно программы
if Button1.Caption = 'Начать' then
begin
Button1.Caption := 'Завершить';
Button1.Visible := False; // скрыть кнопку
// кнопка Buttonl станет доступной после того,
// как испытание закончится
Label1.Caption := '';
Label1. Font .Size := 24; //размер шрифта поля Labell
Edit1.Font.Size := 24; // размер шрифта поля Editl
// сгенерировать и вывести число
numb := GetNumb(KC);
Label1.Caption := IntToStr(numb);
Timer1.Enabled := True; // запуск таймера
// процедура обработки сигнала от таймера
// "сотрет" число
end;
end;
// обработка события таймера
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False; // остановить таймер
Label1.Visible := False; // скрыть число
Edit1.Visible := True; // сделать доступным поле Editl
Edit1.SetFocus; // установить курсор в поле Editl
end;
// нажатие клавиш в поле Editl
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
igrok: integer; // число, которое ввел испытуемый
begin
case Key of
10'..'9',#8: ; // клавиши "0"-"9", клавиша <Backspace>
#13: // клавиша <Enter>
begin
igrok := StrToInt(Editl.Text) ;
if (igrok = numb)
then right := right + 1;
n := n + 1; // счетчик чисел
Edit1.Text := '';
Edit1.Visible := False; // скрыть поле Editl
if n < LT then
begin
numb := GetNumb(KC); // сгенерировать следующее
// число
Label1.Caption : = IntToStr(numb); // отобразить
// число
end
Labell.Visible := True;
Timerl.Enabled := True; // пуск таймера
else begin
// испытание закончено
// вывести результат
Labell.Font.Size := 10;
Labell.Caption := 'Результат:1 + #13 +
'Показано чисел: ' + IntToStr(LT) + #13 +
'Правильных: ' + IntToStr(right);
Labell.Visible := True;
Buttonl.Visible := True; // показать кнопку Завершить
end;
end;
else Key := Chr(0);
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
procedure TForm1.FormCreate (Sender: TObject);
begin
Editl.Visible := False; // скрыть поле ввода Editl
Editl.MaxLength := КС; // кол-во символов, которое
// можно ввести
Labell.Wordwrap : = True; // разрешить перенос слов на
// следующую строку
Labell.Caption :=
'Сейчас на экране будут появляться числа. ' +
'Вы должны запомнить число, набрать его на клавиатуре '+
'и нажать <Enter>'; .
Buttonl.Caption := 'Начать';
Timerl.Enabled := False; // таймер остановлен
Timerl.Interval := 1000; // время показа числа - 1 секунда
right := 0; // кол-во правильных
п := 0; // счетчик чисел
Randomize; o// инициализация ГСЧ
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
var
n: integer; // генерируемое число
i: integer;
begin
// процедура генерирует число по разрядам
// начиная со старшего
n:= Random(9)+1; // старший разряд не может быть нулем
// остальные разряды
for i := 1 to (k-1) do
n := n*10 + Random(10);
GetNumb := n;
end;
// создание формы
procedure TForm1.FormCreate (Sender: TObject);
begin
Edit1.Visible := False; // скрыть поле ввода Editl
Edit1.MaxLength := KC; // кол-во символов, которое
// можно ввести
Label1.Wordwrap := True; // разрешить перенос слов на
// следующую строку
Label1.Caption :=
'Сейчас на экране будут появляться числа. ' +
'Вы должны запомнить число, набрать его на клавиатуре '+
'и нажать <Enter>';
Button1.Caption := 'Начать';
Timer1.Enabled := False; // таймер остановлен
Timer1.Interval := 1000; // время показа числа - 1 секунда
right := 0; // кол-во правильных
n := 0; // счетчик чисел
Randomize; 0// инициализация ГСЧ
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
procedure TForm1.Button1Click(Sender: TObject);
begin
if Buttonl.Caption = 'Завершить' then
Forml.Close; // закрыть окно программы
*
if Buttonl.Caption = 'Начать' then
begin
Buttonl.Caption := 'Завершить';
Buttonl.Visible := False; // скрыть кнопку
// кнопка Buttonl станет доступной после того,
// как испытание закончится
Labell.Caption : = '';
Labell. Font .Size := 24; //размер шрифта поля Labell
Editl.Font.Size : = 24; // размер шрифта поля Editl
// сгенерировать и вывести число
numb := GetNumb(KC);
Labell.Caption := IntToStr(numb);
Timerl.Enabled := True; // запуск таймера
// процедура обработки сигнала от таймера
// "сотрет" число
end;
end;
end.
procedure TForm1.Timer1Timer(Sender: TObject);
begin
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timerl.Enabled := False; // остановить таймер
Labell.Visible := False; // скрыть число
Editl.Visible := True; // сделать доступным поле Editl
Editl.SetFocus; // установить курсор в поле Editl
end;
end;
end.Последний раз редактировалось Admin, 05.12.2010 в 15:27. |
|
#2
|
||||
|
||||
|
Цитата:
Это не работа, это бред пьяного кролика ![]() |
|
#3
|
||||
|
||||
|
Цитата:
Я не возьмусь все ошибки показывать, так как там сплошные ошибки... Я бы посоветовал тебе написать конкретно, что от программы требуется и какие трудности возникают в написании... тогда больше шансов на помощь... |
|
#4
|
|||
|
|||
|
Цитата:
ЗАДАНИЕ: "Напишите программу, используя которую можно оценить способность игрока (испытуемого) запоминать числа. Програм ма должна выводить числа, а испытуемый — вводить эти числа с клавиатуры. Время, в течение которого игрок будет видеть число, ограничьте, например, одной секундой. По окончании теста программа должна вывести результат: количество показан ных чисел и количество чисел, которые испытуемый запомнил и ввел правильно." Очень прошу помогите...доделать!=) |
|
#5
|
||||
|
||||
|
Проще с нуля. Тем более код написан нечитаемо...
1) Генеришь массив чисел случайно (randomize; random(x)); 2) по событию нажатия на кнопку "СТАРТ" выписываешь этот массив в Edit1; ставишь Код:
Timer1.Interval:=1000; Timer1.Enabled:=true; 3) По событию таймера "onTimer" делаешь Код:
Edit1.Text:=''; button2.visible:=true; 4) По нажатию кнопки "Закончить тест" считываешь строку из Edit1.Text, разбиваешь на числа по пробелам (pos(' ',s)), и ищешь в полученном массиве числа из изначального. Считаешь их количество и пишешь результаты. |
|
#6
|
||||
|
||||
|
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
Timer1: TTimer;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
const
KC = 5; // разрядность числа (кол-во цифр)
LT = 10; // количество чисел (длина теста)
var
numb: integer; // число, которое должен запомнить испытуемый
right: integer; // количество правильных чисел
n: integer; // счетчик чисел
{$R *.dfm}
function GetNumb(k: integer) : integer;
var
n: integer; // генерируемое число
i: integer;
begin
// процедура генерирует число по разрядам
// начиная со старшего
n:= Random(9)+1; // старший разряд не может быть нулем
// остальные разряды
for i := 1 to (k-1) do
n := n*10 + Random(10);
GetNumb := n;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Visible := False; // скрыть поле ввода Editl
Edit1.MaxLength := KC; // кол-во символов, которое
// можно ввести
Label1.Wordwrap := True; // разрешить перенос слов на
// следующую строку
Label1.Caption :=
'Сейчас на экране будут появляться числа. ' +
'Вы должны запомнить число, набрать его на клавиатуре '+
'и нажать <Enter>';
Button1.Caption := 'Начать';
Timer1.Enabled := False; // таймер остановлен
Timer1.Interval := 1000; // время показа числа - 1 секунда
right := 0; // кол-во правильных
n := 0; // счетчик чисел
Randomize; // инициализация ГСЧ
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if Button1.Caption = 'Завершить' then
Form1.Close; // закрыть окно программы
if Button1.Caption = 'Начать' then
begin
Button1.Caption := 'Завершить';
Button1.Visible := False; // скрыть кнопку
// кнопка Buttonl станет доступной после того,
// как испытание закончится
Label1.Caption := '';
Label1. Font .Size := 24; //размер шрифта поля Labell
Edit1.Font.Size := 24; // размер шрифта поля Editl
// сгенерировать и вывести число
numb := GetNumb(KC);
Label1.Caption := IntToStr(numb);
Timer1.Enabled := True; // запуск таймера
// процедура обработки сигнала от таймера
// "сотрет" число
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Enabled := False; // остановить таймер
Label1.Visible := False; // скрыть число
Edit1.Visible := True; // сделать доступным поле Editl
Edit1.SetFocus; // установить курсор в поле Editl
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var
igrok: integer; // число, которое ввел испытуемый
begin
case Key of
#13:
begin
igrok := StrToInt(Edit1.Text) ;
if (igrok = numb)
then right := right + 1;
n := n + 1; // счетчик чисел
Edit1.Text := '';
Edit1.Visible := False; // скрыть поле Editl
if n < LT then
begin
numb := GetNumb(KC); // сгенерировать следующее
// число
Label1.Caption := IntToStr(numb); // отобразить
// число
Label1.Visible := True;
Timer1.Enabled := True; // пуск таймера
end
else begin
// испытание закончено
// вывести результат
Label1.Font.Size := 10;
Label1.Caption := 'Результат:1' + #13 + 'Показано чисел: ' + IntToStr(LT) + #13 +
'Правильных: ' + IntToStr(right);
Label1.Visible := True;
Button1.Visible := True; // показать кнопку Завершить
end;
end;
else Key := Key;
end;
end;
end.Вот полностью рабочий код. Могу скинуть исходник... |