IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Орел или решка
CORS@R
сообщение 4.02.2006 1:48
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Задача такая: написать игру типа орел или решка, но с деньгами. Данные должны считываться из файла(а именно имя и деньги) и сохранятся в файл.
uses crt;
const N=1000;
label save, view, start, money, exit;
type
Dengi=record
name:string[12];
babki:integer;
end;
var
imya:char;
x,y:byte;
mas: array[1..N] of dengi;
i,sum,rez,otv,stavka,count:integer;
f:text;

begin
textbackground(1);
textcolor(10);
clrscr;
count:=0;
assign(f,'c:\123.txt');
reset(f);
begin
while (not eof(f)) do
begin
readln(f,mas[count].name);
readln(f,mas[count].babki);
inc(count);
end;
end;
close(f);
randomize;
sum:=100;
writeln;
writeln( ' Ћђ…‹ €‹€ ђ…˜ЉЂ ');
while sum>0 do
begin
if sum>=1000 then
begin
writeln;
writeln(' Њ®Ґ Є §Ё­® ®Ў ­Єа®вЁ«®бм, в Є зв® Ё¤Ё Є вл ®вбо¤ Ї®Є п вҐЎп ­Ґ гЎЁ«');
writeln;
readln;
goto exit;
end;
start:
writeln;
writeln(' 0-Ћђ…‹ 4-‘®еа ­Ёвм 1-ђ…˜ЉЂ 2-‚›•Ћ„ €‡ €ѓђ› 3-Џа®б¬®ва');
writeln;
readln(otv);
if otv>4 then
begin
writeln;
writeln(' ’л зҐ б«ҐЇ®©? Ќ ЇЁб ­® ¦Ґ 0-Ћђ…‹ 4-‘®еа ­Ёвм 1-ђ…˜ЉЂ 2-‚›•Ћ„ €‡ €ѓђ› 3-Џа®б¬®ва ');
writeln;
writeln( ' Ђ ' ,otv,' п зв®-в® ­Ґ ўЁ¦г');
writeln;
goto start;
end;
if otv=3 then goto view;
if otv=4 then goto save;
if otv=2 then goto exit;
if otv=0 then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' Ћђ…‹');
end;
if otv=1 then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' ђ…˜ЉЂ');
end;
money: begin
writeln;
Writeln(' ” ⥡п ',sum,' агЎ«Ґ©. ‘Є®«мЄ® бв ўЁим?');
writeln;
readln(stavka);
if stavka>sum then
begin
writeln;
writeln(' ’л зҐ бзЁв вм зв® «Ё ­Ґ 㬥Ґим, г вҐЎп ­Ґв в ЄЁе ¤Ґ­ҐЈ!!!');
readln;
goto money;
end;
rez:=random(2);
if rez=1 then
begin
writeln;
writeln(' ‚лЇ « ђ…˜ЉЂ');
end;
if rez=0 then
begin
writeln;
writeln(' ‚лЇ « Ћђ…‹');
end;
if rez=otv then
begin
writeln;
writeln(' ”г и а ');
sum:=sum+stavka;
writeln;
writeln(' ‘зҐв: ',sum);
writeln('-----------------------------------------------------------------');
end
else begin
writeln;
writeln( ' ”г б в ЄЁ¬ ЁЈа вм ¤ ¦Ґ ­Ґ Ё­вҐаҐб­®');
sum:=sum-stavka;
writeln;
writeln(' ‘зҐв: ',sum);
writeln('------------------------------------------------------------------');
end;
end;
end;
if sum<=0 then
begin
writeln;
writeln(' ” вҐЎп § Є®­зЁ«Ёбм Ў ЎЄЁ. Љ Є в®«мЄ® Ї®пўпвбп, § 室Ё');
readln;
end;

view:if count>0 then
writeln(' €Ја®Є „Ґ­мЈЁ ');
if count>0 then
begin
i:=0;
while i<count do
writeln(mas[i].name,mas[i].babki) ;
end
else writeln(' ‘ЇЁб®Є Їгбв');
goto start;


save: if count<N then
begin
writeln('‚ўҐ¤ЁвҐ бў®Ґ Ё¬п ');
readln(imya);
mas[count].name:=imya;
inc(count);
end
else
writeln('ЌҐв бў®Ў®¤­®Ј® ¬Ґбв ');
assign (f,'c:\123.txt');
append(f);
i:=0;
while i<count do
begin
mas[i].babki:=sum;
writeln(f,mas[i].name);
writeln(f,mas[i].babki);
end;
close(f);
goto start;

exit: end.


Дело в том что инфа никак не может сохраниться(помогает только CTRL+BREAK), а сам файл все толстеет и толстеет. При просмотре все время пишет что список пуст

Кто видел наверно еще не забыл
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
2 страниц V  1 2 >  
 Ответить  Открыть новую тему 
Ответов(1 - 19)
volvo
сообщение 4.02.2006 2:22
Сообщение #2


Гость






под меткой View:
  view:
if count>0 then writeln(' Игрок Деньги ');
if count>0 then begin
i:=0;
while i<count do begin
writeln(mas[i].name, mas[i].babki) ;
inc(i) { <--- Увеличивать счетчик кто будет ? }
end;
end;

Аналогично при Save:
  { assign (f,'123.txt'); } { <--- Это совсем не обязятельно, переменная уже связяна с файлом }
append(f);
i:=0;

while i<count do begin
mas[i].babki:=sum;
writeln(f,mas[i].name);
writeln(f,mas[i].babki);
inc(i) { <--- А вот это - обязательно !!! }
end;

И мой тебе совет: во-первых, забудь вообще, что есть метки (и про Goto тоже забудь, ты пишешь не на Бейсике, а на Паскале !!!), а во-вторых, подумай о других - кириллицу переводи в Windows-кодировку. А то если я буду выкладывать файлы так, как удобно мне - поверь, ты мало что поймешь...
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 2:49
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Точно про счетчик то я забыл. С goto вроде как то проще(в школе бейсик был). Есть маленький глюк при просмотре, но эта фигня щас поправим. С кодировкой больше так не буду. Thank you very much
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 4:47
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Цитата(CORS@R @ 4.02.2006 2:49) *

Есть маленький глюк при просмотре, но эта фигня щас поправим


Блин глюк оказался не маленьким и не при просмотре а при сохранение: играю я значит и решил сохранить результат(Допустим имя qw, а деньги - 130). Сохранил. Нажимаю просмотр - все хорошо
(qw 130).
Дальше играю, опять сохраняю(имя as деньги 45), смотрю а там вместо
qw 130
as 45
вот такое чудо
qw 130
qw 45
as 45

Посмотри еще разок, а то я запарился уже wacko.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.02.2006 13:44
Сообщение #5


Гость






Переделай часть с Save и View вот так:

  view:
if count>0 then writeln(' player money ');
if count>0 then begin
i:=1; { <--- Индексация начинается с 1, а не с 0 !!! }
while i<=count do begin { Соответственно не забывай про "=" }
writeln(mas[i].name, ' ', mas[i].babki);
inc(i)
end;
end
else writeln(' <empty>');

goto start;

save:
if count<N then begin
writeln('enter your name ');
readln(imya);
inc(count); { <--- Сначала увеличь счетчик, потом - работай с записью }
mas[count].name:=imya;
mas[count].babki:=sum; { <--- Сразу заполняй число денег для записываемого игрока... }

append(f); { ... и записывай в файл ... }
writeln(f,mas[count].name); { <--- Не надо ДОзаписывать ВСЕ, достаточно только mas[count] }
writeln(f,mas[count].babki);
close(f);
end
else writeln('not enough mem ');
goto start;

А в начале программы при чтении из файла -
  while (not eof(f)) do begin
inc(count); { <--- Сначала увеличиваем индекс, потом читаем }
readln(f,mas[count].name);
readln(f,mas[count].babki);
end;
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 14:54
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Спасибо, все работает. good.gif А я вчера чуть ли не всю ночь сидел, нифига не получалось, только что проснулся и сразу сюда.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 16:52
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


А как сделать так чтобы экзешник и файл 123.txt находились в любой папке ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.02.2006 17:01
Сообщение #8


Гость






Не указывай путь к TXT файлу явно. Напиши просто '123.txt' - тогда, если EXE и TXT будут в ОДНОЙ и той же папке, программа будет работать...
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 18:11
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Я так и делал, вылетало с какой-то ошибкой. Щас попробовал - работает. Наверное я сам виноват не тот экзешник наверное в папку к txt - файлу кидал
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 18:37
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Блин, хочется зашифровать данные в файле. Вроде как я понял можно сделать файл типизированным а не текстовым, но тогда вроде как нельзя пользоваться функцией append или я что-то не так понял
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.02.2006 18:48
Сообщение #11


Гость






Все правильно понял... Append работает только с текстовыми файлами... Можешь зашифровать простым XOR-ом: перед тем, как записать в файл строку - пройти по ней и сделать так:
XorKey := ... { тут - любое значение типа Byte }
For i := 1 To Length(s) Do
s[i] := Char( Byte(s[i]) Xor XorKey );


Теперь строка будет не в таком явном виде, как раньше... Для расшифровки - повторить ту же операцию с тем же XorKey, при повторном прогоне Xor восстанавливаются исходные значения...
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 22:07
Сообщение #12


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


С шифровкой понял, реализую потом. Есть маленькая проблема: при сохранение имя игрока сохраняется но потом при большом количестве раз сохранений этот список разрастается. Хочется сделать чтобы если при совпадение введенного имени и имени который уже в файле поле babki не заменялось новым значением sum а прибавлялось к старому. Вот я что-то наклепал но это что-то не пашет
save:
if count<N then begin

writeln('Введи имя');

readln(imya);
if imya=mas[count].name then
begin
inc(count);
mas[count].name:=imya;
mas[count].babki:=mas[count].babki+sum;
goto w;
end;

inc(count);

mas[count].name:=imya;

mas[count].babki:=sum;


w: append(f);

writeln(f,mas[count].name);

writeln(f,mas[count].babki);

close(f);

end

else writeln('Нет места ');


Сообщение отредактировано: volvo - 2.11.2006 17:27
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.02.2006 22:19
Сообщение #13


Гость






YYY.gif Опять метки...
save:

writeln('‚Введи имя'); readln(imya);
b := False; { <--- Эту переменную придется определить в начале }
for i := 1 to count do begin
if imya = mas[i].name then begin

inc(mas[i].babki, sum);
rewrite(f);
for j := 1 to count do begin
writeln(f, mas[j].name); { <--- Здесь была ошибка ! }
writeln(f, mas[j].babki);
end;
close(f);
b := true; break;
end;
end;

if not b then
if count<N then begin
inc(count);
mas[count].name:=imya;
mas[count].babki:=sum;
append(f);
writeln(f,mas[count].name);
writeln(f,mas[count].babki);
close(f);
end;
else writeln('Нет места ');
Идея понятна?

Сообщение отредактировано: volvo - 2.11.2006 17:27
 К началу страницы 
+ Ответить 
CORS@R
сообщение 4.02.2006 23:08
Сообщение #14


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


че то не так...
Играю - сохраняю qw 77
играю - сохраняю as 88
играю - сохраняю zx 145
смотрю - все нормально
потом играю, сумма 55, сохраняю как qw
Должно быть
qw 132
as 88
zx 145
но там
zx 145
zx 145
zx 145
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 4.02.2006 23:17
Сообщение #15


Гость






Я подправил, проверь...
 К началу страницы 
+ Ответить 
CORS@R
сообщение 5.02.2006 0:01
Сообщение #16


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Работает good.gif . А я уж было собирался через удаление делать. Ищем имя потом все данные которые принадлежат этому имени удаляем и заново на его место записываем новые данные. Но раз ты выбрал свой метод значит он лучше(тем более рабочий)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CORS@R
сообщение 5.02.2006 1:13
Сообщение #17


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Еще одна малюсенькая просьба: при просмотре имя игрока находится под надписью "ИГРОК" а значение денег располагается не под "ДЕНЬГИ" а в зависимости отдлины имени игрока. Хочется чтобы и значение денег находились строго под "ДЕНЬГИ". В Си это делается легко а в Паскале не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 5.02.2006 1:21
Сообщение #18


Гость






Цитата(CORS@R @ 5.02.2006 0:13)
В Си это делается легко а в Паскале не знаю

А в Паскале - еще легче:
view:
if count > 0 then writeln('player':15, 'money':7);
if count>0 then begin
i:=1;
while i<=count do begin
writeln(mas[i].name:15,mas[i].babki:7) ;
inc(i)
end;
end
else writeln(' <empty>');
 К началу страницы 
+ Ответить 
CORS@R
сообщение 5.02.2006 1:39
Сообщение #19


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


Блин, че то я уже совсем туплю. Я делал так
view:

if count > 0 then writeln('ИГРОК ДЕНЬГИ'); {<---А про это я че то не подумал}

if count>0 then begin

i:=1;

while i<=count do begin

writeln(mas[i].name:15,mas[i].babki:7) ;

inc(i)

end;

end

else writeln(' <empty>');


И у меня все съезжало вправо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
CORS@R
сообщение 6.02.2006 1:19
Сообщение #20


Новичок
*

Группа: Пользователи
Сообщений: 37
Пол: Мужской
Реальное имя: Рамиль

Репутация: -  0  +


volvo, смотри: Чтоб сразу нельзя было сохранять деньги я сначала сделал вот так
Код

uses crt;
const N=1000;
label  start1,save, view,view1, start, money, exit;
type
Dengi=record
name:string[9];
babki:word;
end;
var
b,flag:boolean;  {<--- Обрати внимание}
imya:string[15];
x,y,rez:byte;
tmp:word;
mas: array[1..N] of dengi;
otv,otvet:char;
i,j,sum,stavka,count:integer;
f:text;

begin    {start1:}
textbackground(1);
textcolor(10);
clrscr;
start1:count:=0;

assign(f,'123.txt');
reset(f);
begin
while (not eof(f)) do
begin
inc(count);
readln(f,mas[count].name);
readln(f,mas[count].babki);

end;
end;
close(f);
flag:=false;  {<--}
writeln;
writeln('            -------------   --------   --------------- ');
writeln('           |1-ЌЋ‚›‰ €ѓђЋЉ| |2-€ѓђЋЉ€| |3-‚›•Ћ„ €‡ €ѓђ›|');
writeln('            -------------   --------   --------------- ');
writeln;
otvet:=readkey;
if otvet='1' then begin
writeln;
writeln(' Љ Є вҐЎп §®ўгв ?я');
writeln;
readln(imya);
end;
if otvet='2' then goto view1;
if otvet='3' then goto exit;
randomize;
sum:=100;
writeln;
writeln( '                               Ћђ…‹ €‹€ ђ…˜ЉЂ            ');
while sum>0 do
begin
if sum>=1000 then
begin
writeln;
writeln(' Њ®Ґ Є §Ё­® ®Ў ­Єа®вЁ«®бм, в Є зв® Ё¤Ё Є  вл ®вбо¤  Ї®Є  п вҐЎп ­Ґ гЎЁ«');
writeln;
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
goto save;
end;
start:
writeln;
writeln(' --------   ---------   ----------   ------------------   ----------------- ');
writeln('| 0-Ћђ…‹ | | 1-ђ…˜ЉЂ | | 2-€ѓђЋЉ€ | | 3-‡ЂЃђЂ’њ „…Ќњѓ€ | | 4-‚›•Ћ„ €‡ €ѓђ› | ');
writeln(' --------   ---------   ----------   ------------------   ----------------- ');
writeln;
otv:=readkey;
if otv>'4' then
begin
writeln;
writeln(' ” ⥡п ᮢᥬ Ї«®е® б® §аҐ­ЁҐ¬ ? Ќ ЇЁб ­® ¦Ґ: ');
writeln;
writeln('  --------   ---------   ----------   ------------------   ----------------- ');
writeln(' | 0-Ћђ…‹ | | 1-ђ…˜ЉЂ | | 2-€ѓђЋЉ€ | | 3-‡ЂЃђЂ’њ „…Ќњѓ€ | | 4-‚›•Ћ„ €‡ €ѓђ› | ');
writeln('  --------   ---------   ----------   ------------------   -----------------  ');
writeln;
writeln( ' Ђ ' ,otv,' п зв®-в® ­Ґ ўЁ¦г');
writeln('--------------------------------------------------------------------------------');
goto start;
end;
if otv='2' then goto view;
if otv='3' then
begin
if  not flag then {<--}
goto save
else
begin
writeln;
writeln(' •®зҐим ¤Ґ­мЈЁ § Ўа вм? ЌҐ в Є Ўлбва®. —в®Ўл ¤Ґ­мЈЁ § Ўа вм Ёе ­г¦­® § а Ў®в вм!');
writeln;
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
goto start;
end;
end;
if otv='4' then goto exit;
if otv='0' then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' Ћђ…‹');
end;
if otv='1' then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' ђ…˜ЉЂ');
end;
money: begin
writeln;
Writeln(' ” ⥡п ',sum,' агЎ«Ґ©. ‘Є®«мЄ® бв ўЁим?');
writeln;
readln(stavka);
if stavka>sum then
begin
writeln;
writeln(' ’л зҐ бзЁв вм зв® «Ё ­Ґ 㬥Ґим, г вҐЎп ­Ґв в ЄЁе ¤Ґ­ҐЈ!!!');
writeln('-----------------------------------------------------------------');
readln;
goto money;
end;
rez:=random(2);
if rez=1 then
begin
writeln;
writeln(' ‚лЇ «  ђ…˜ЉЂ');
end;
if rez=0 then
begin
writeln;
writeln(' ‚лЇ « Ћђ…‹');
end;
tmp:=ord(otv)-48;
if {tmp=otv}  rez=tmp then
begin
writeln;
writeln(' ”г и а ');
sum:=sum+stavka;
writeln;
writeln(' ‘зҐв: ',sum);
flag:=true; {<--}
writeln('-----------------------------------------------------------------');
end
else begin
writeln;
writeln( ' ”г б в ЄЁ¬ ЁЈа вм ¤ ¦Ґ ­Ґ Ё­вҐаҐб­®');
sum:=sum-stavka;
writeln;
writeln(' ‘зҐв: ',sum);
flag:=true; {<--}
writeln('------------------------------------------------------------------');
end;
end;
end;
if sum<=0 then
begin
writeln;
writeln(' ” вҐЎп § Є®­зЁ«Ёбм Ў ЎЄЁ. Љ Є в®«мЄ® Ї®пўпвбп, § 室Ё');
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
goto exit;
end;

view:
if count>0 then begin
writeln;
writeln('                 -------------------------------------------');
writeln('                |        €ѓђЋЉ':10, '        |        „Ґ­мЈЁ':10,'       |');
writeln('                |-------------------------------------------|');
end;
if count>0 then begin
i:=1;
while i<=count do begin
writeln('                |                     |                     |');
writeln('                |    ',mas[i].name:10,'       |  ', mas[i].babki:10,'         |');
writeln('                |                     |                     |');
inc(i);
end;
writeln('                 -------------------------------------------');
end
else writeln(' ‘ЇЁб®Є Їгбв');
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
goto start;

view1:
if count>0 then begin
writeln;
writeln('                 -------------------------------------------');
writeln('                |        €ѓђЋЉ':10, '        |        „Ґ­мЈЁ':10,'       |');
writeln('                |-------------------------------------------|');
end;
if count>0 then begin
i:=1;
while i<=count do begin
writeln('                |                     |                     |');
writeln('                |    ',mas[i].name:10,'       |  ', mas[i].babki:10,'         |');
writeln('                |                     |                     |');
inc(i);
end;
writeln('                 -------------------------------------------');
end
else writeln(' ‘ЇЁб®Є Їгбв');
goto start1;

save:

{writeln('Љ Є вҐЎп §®ўгв ?я'); readln(imya);}

b := False;

for i := 1 to count do begin

  if imya = mas[i].name then begin


    inc(mas[i].babki, sum);

    rewrite(f);

    for j := 1 to count do begin

      writeln(f, mas[j].name);

      writeln(f, mas[j].babki);

    end;

    close(f);
    WRITELN;
    writeln('Џа®©¤Ё ў Є ббг, в ¬ ⥡Ґ ўл¤ ¤гв вў®Ё зҐбв­®§ а Ў®в ­­лҐ ¤Ґ­мЈЁ');
    WRITELN;
    delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
    b := true; break;

  end;

end;


if not b then

  if count<N then begin

      inc(count);

      mas[count].name:=imya;

      mas[count].babki:=sum;

      append(f);

      writeln(f,mas[count].name);

      writeln(f,mas[count].babki);

      close(f);
      writeln;
      writeln('Џа®©¤Ё ў Є ббг, в ¬ ⥡Ґ ўл¤ ¤гв вў®Ё зҐбв­®§ а Ў®в ­­лҐ ¤Ґ­мЈЁ ');
      writeln;
      delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
  end

  else writeln('Нет места ');

  goto start1;

exit: end.


Но так не работает. Кодировку не менял - она здесь не нужна.
Потом сделал так
Код

uses crt;
const N=1000;
label  start1,save, view,view1, start, money, exit;
type
Dengi=record
name:string[9];
babki:word;
end;
var
b:boolean;
imya:string[15];
x,y,rez,flag:byte; {<--- Теперь flag byte}
tmp:word;
mas: array[1..N] of dengi;
otv,otvet:char;
i,j,sum,stavka,count:integer;
f:text;

begin    {start1:}
textbackground(1);
textcolor(10);
clrscr;
start1:count:=0;

assign(f,'123.txt');
reset(f);
begin
while (not eof(f)) do
begin
inc(count);
readln(f,mas[count].name);
readln(f,mas[count].babki);

end;
end;
close(f);
flag:=0; {<--}
writeln;
writeln('            -------------   --------   --------------- ');
writeln('           |1-ЌЋ‚›‰ €ѓђЋЉ| |2-€ѓђЋЉ€| |3-‚›•Ћ„ €‡ €ѓђ›|');
writeln('            -------------   --------   --------------- ');
writeln;
otvet:=readkey;
if otvet='1' then begin
writeln;
writeln(' Љ Є вҐЎп §®ўгв ?я');
writeln;
readln(imya);
end;
if otvet='2' then goto view1;
if otvet='3' then goto exit;
randomize;
sum:=100;
writeln;
writeln( '                               Ћђ…‹ €‹€ ђ…˜ЉЂ            ');
while sum>0 do
begin
if sum>=1000 then
begin
writeln;
writeln(' Њ®Ґ Є §Ё­® ®Ў ­Єа®вЁ«®бм, в Є зв® Ё¤Ё Є  вл ®вбо¤  Ї®Є  п вҐЎп ­Ґ гЎЁ«');
writeln;
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
goto save;
end;
start:
writeln;
writeln(' --------   ---------   ----------   ------------------   ----------------- ');
writeln('| 0-Ћђ…‹ | | 1-ђ…˜ЉЂ | | 2-€ѓђЋЉ€ | | 3-‡ЂЃђЂ’њ „…Ќњѓ€ | | 4-‚›•Ћ„ €‡ €ѓђ› | ');
writeln(' --------   ---------   ----------   ------------------   ----------------- ');
writeln;
otv:=readkey;
if otv>'4' then
begin
writeln;
writeln(' ” ⥡п ᮢᥬ Ї«®е® б® §аҐ­ЁҐ¬ ? Ќ ЇЁб ­® ¦Ґ: ');
writeln;
writeln('  --------   ---------   ----------   ------------------   ----------------- ');
writeln(' | 0-Ћђ…‹ | | 1-ђ…˜ЉЂ | | 2-€ѓђЋЉ€ | | 3-‡ЂЃђЂ’њ „…Ќњѓ€ | | 4-‚›•Ћ„ €‡ €ѓђ› | ');
writeln('  --------   ---------   ----------   ------------------   -----------------  ');
writeln;
writeln( ' Ђ ' ,otv,' п зв®-в® ­Ґ ўЁ¦г');
writeln('--------------------------------------------------------------------------------');
goto start;
end;
if otv='2' then goto view;
if otv='3' then
begin
if  flag=1 then {<--}
goto save
else
begin
writeln;
writeln(' •®зҐим ¤Ґ­мЈЁ § Ўа вм? ЌҐ в Є Ўлбва®. —в®Ўл ¤Ґ­мЈЁ § Ўа вм Ёе ­г¦­® § а Ў®в вм!');
writeln;
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
goto start;
end;
end;
if otv='4' then goto exit;
if otv='0' then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' Ћђ…‹');
end;
if otv='1' then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' ђ…˜ЉЂ');
end;
money: begin
writeln;
Writeln(' ” ⥡п ',sum,' агЎ«Ґ©. ‘Є®«мЄ® бв ўЁим?');
writeln;
readln(stavka);
if stavka>sum then
begin
writeln;
writeln(' ’л зҐ бзЁв вм зв® «Ё ­Ґ 㬥Ґим, г вҐЎп ­Ґв в ЄЁе ¤Ґ­ҐЈ!!!');
writeln('-----------------------------------------------------------------');
readln;
goto money;
end;
rez:=random(2);
if rez=1 then
begin
writeln;
writeln(' ‚лЇ «  ђ…˜ЉЂ');
end;
if rez=0 then
begin
writeln;
writeln(' ‚лЇ « Ћђ…‹');
end;
tmp:=ord(otv)-48;
if {tmp=otv}  rez=tmp then
begin
writeln;
writeln(' ”г и а ');
sum:=sum+stavka;
writeln;
writeln(' ‘зҐв: ',sum);
flag:=1; {<--}
writeln('-----------------------------------------------------------------');
end
else begin
writeln;
writeln( ' ”г б в ЄЁ¬ ЁЈа вм ¤ ¦Ґ ­Ґ Ё­вҐаҐб­®');
sum:=sum-stavka;
writeln;
writeln(' ‘зҐв: ',sum);
flag:=1; {<--}
writeln('------------------------------------------------------------------');
end;
end;
end;
if sum<=0 then
begin
writeln;
writeln(' ” вҐЎп § Є®­зЁ«Ёбм Ў ЎЄЁ. Љ Є в®«мЄ® Ї®пўпвбп, § 室Ё');
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
goto exit;
end;

view:
if count>0 then begin
writeln;
writeln('                 -------------------------------------------');
writeln('                |        €ѓђЋЉ':10, '        |        „Ґ­мЈЁ':10,'       |');
writeln('                |-------------------------------------------|');
end;
if count>0 then begin
i:=1;
while i<=count do begin
writeln('                |                     |                     |');
writeln('                |    ',mas[i].name:10,'       |  ', mas[i].babki:10,'         |');
writeln('                |                     |                     |');
inc(i);
end;
writeln('                 -------------------------------------------');
end
else writeln(' ‘ЇЁб®Є Їгбв');
delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
goto start;

view1:
if count>0 then begin
writeln;
writeln('                 -------------------------------------------');
writeln('                |        €ѓђЋЉ':10, '        |        „Ґ­мЈЁ':10,'       |');
writeln('                |-------------------------------------------|');
end;
if count>0 then begin
i:=1;
while i<=count do begin
writeln('                |                     |                     |');
writeln('                |    ',mas[i].name:10,'       |  ', mas[i].babki:10,'         |');
writeln('                |                     |                     |');
inc(i);
end;
writeln('                 -------------------------------------------');
end
else writeln(' ‘ЇЁб®Є Їгбв');
goto start1;

save:

{writeln('Љ Є вҐЎп §®ўгв ?я'); readln(imya);}

b := False;

for i := 1 to count do begin

  if imya = mas[i].name then begin


    inc(mas[i].babki, sum);

    rewrite(f);

    for j := 1 to count do begin

      writeln(f, mas[j].name);

      writeln(f, mas[j].babki);

    end;

    close(f);
    WRITELN;
    writeln('Џа®©¤Ё ў Є ббг, в ¬ ⥡Ґ ўл¤ ¤гв вў®Ё зҐбв­®§ а Ў®в ­­лҐ ¤Ґ­мЈЁ');
    WRITELN;
    delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
    b := true; break;

  end;

end;


if not b then

  if count<N then begin

      inc(count);

      mas[count].name:=imya;

      mas[count].babki:=sum;

      append(f);

      writeln(f,mas[count].name);

      writeln(f,mas[count].babki);

      close(f);
      writeln;
      writeln('Џа®©¤Ё ў Є ббг, в ¬ ⥡Ґ ўл¤ ¤гв вў®Ё зҐбв­®§ а Ў®в ­­лҐ ¤Ґ­мЈЁ ');
      writeln;
      delay(65000); delay(65000); delay(65000); delay(65000); delay(65000);
delay(65000); delay(65000);
  end

  else writeln('Нет места ');

  goto start1;

exit: end.


и заработало. Почему так blink.gif ?


Сообщение отредактировано: CORS@R - 6.02.2006 1:45
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V  1 2 >
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 21:00
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"