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

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

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

> Орел или решка
сообщение
Сообщение #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)
сообщение
Сообщение #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-кодировку. А то если я буду выкладывать файлы так, как удобно мне - поверь, ты мало что поймешь...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Точно про счетчик то я забыл. С goto вроде как то проще(в школе бейсик был). Есть маленький глюк при просмотре, но эта фигня щас поправим. С кодировкой больше так не буду. Thank you very much
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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


Новичок
*

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

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


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


Новичок
*

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

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


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


Гость






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


Теперь строка будет не в таком явном виде, как раньше... Для расшифровки - повторить ту же операцию с тем же XorKey, при повторном прогоне Xor восстанавливаются исходные значения...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14


Новичок
*

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

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


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


Гость






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


Новичок
*

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

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


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


Новичок
*

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

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


Еще одна малюсенькая просьба: при просмотре имя игрока находится под надписью "ИГРОК" а значение денег располагается не под "ДЕНЬГИ" а в зависимости отдлины имени игрока. Хочется чтобы и значение денег находились строго под "ДЕНЬГИ". В Си это делается легко а в Паскале не знаю
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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>');
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 22.05.2024 1:32
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name