- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 - 66
 - 67
 - 68
 - 69
 - 70
 - 71
 - 72
 - 73
 - 74
 - 75
 - 76
 - 77
 - 78
 - 79
 - 80
 - 81
 - 82
 - 83
 - 84
 - 85
 - 86
 - 87
 - 88
 - 89
 - 90
 - 91
 - 92
 - 93
 - 94
 - 95
 - 96
 - 97
 - 98
 - 99
 
                        uses crt;
var
n, c, d:text;//текстовые переменный сохранений
name:string;//имя игрока
namet, cot, dit:string;//имена файлов 
co,di:real;//переменные в игре
cdi:integer;//переменные с курсом
dif:string;//комманды
pm:byte;//+-курс
col:integer;//выбор количества для продажи
procedure cur; //вывод курса
begin
writeln ('Курс алмаза - ',cdi,' монет(ы)');
end;
procedure newr; //изменение курса
begin
pm:=random(2);//курс алмазов +- в промежутке 5,10
if pm=1 then cdi:=cdi+random(5)+5 else cdi:=cdi-(random(5)+5); 
cur();
end;
procedure buyco;
begin
write ('Сколько алмазов вы обменяете на монеты: ');
readln (col);
if col>di then 
 begin
 writeln ('У вас нет такого количества алмазов, введите меньше');
 write ('Сколько алмазов вы обменяете на монеты: ');
 col:=0;  readln (col);
 end 
 else 
  begin
  co:=co+(di*cdi);  di:=di-col;
  writeln ('Монет: ',co);  writeln ('Алмазов: ',di);
  end;
end;
procedure buydi;
begin
write ('Сколько монет вы обменяете на алмазы: ');
readln (col);
if col>co then 
 begin
 writeln ('У вас нет такого количества монет, введите меньше');
 write ('Сколько монет вы обменяете на алмазы: ');
 col:=0;
 readln (col);
 end 
 else 
  begin
  di:=di+((col*co)/cdi); co:=co-col;  
  writeln ('Монет: ',co); writeln ('Алмазов: ',di);  
  end;
end;
procedure buy;
begin
Writeln ('Введиде "co", если хотите купить монеты'); Writeln ('Введиде "di", если хотите купить алмазы');
Write ('Ввод: '); Readln (dif);
if dif = 'co' then buyco(); if dif = 'di' then buydi();
end;
procedure save;
begin
   assign(n, namet);
   rewrite (n);//cоздаём имена файлов   
   cot:=concat(name,'co.txt');
   dit:=concat(name,'di.txt');   
   {создаём сохранения}assign (c, cot); rewrite(c); co:=5; write(c,co);
   assign (d, dit); rewrite(d); di:=1; write(d,di);
   writeln ('Монет: ',co); writeln ('Алмазов: ',di); writeln ('Игра ',name,' сохранена');      
end;
begin
cdi:=random(20)+10; //Задаём начальный курс
write ('Введите ваше имя: '); readln (name); 
namet:=concat(name,'.txt');
if FileExists(namet) then
  begin
     writeln ('Сохранение ',name,' обнаружено');
     writeln ('Загружается сохранение...');
     assign (n, namet);
     reset(n);     
     cot:=concat(name,'co.txt');
     dit:=concat(name,'di.txt');//"вспомиаем" имена файлов     
     assign (c, cot); reset(c); read(c,co);
     assign (d, dit); reset(d); read(d,di);//загрузка сохранений     
     writeln ('Монет: ',co);
     writeln ('Алмазов: ',di);  //вывод данных из сохранений
  end  
  else 
   begin
   //создаём файл с именем игрока
   writeln ('Сохранение ',name,' не обнаружено'); writeln ('Создаётся сохранение...');   
   save();
   end;
   repeat //бесконечный репит
   write('Введите комманду: ');
   readln(dif);
     case dif of
    'new' : newr(); 'cur' : cur(); 'buy' : buy();'save' : save();   
    else Writeln ('Такой команды нет'); end;  
   until dif='end'; close(n);close(c);close(d);
                                     
        
            Ну вот. Одна из моих первых программ на паскале. Про переводы из одной валюты в другую с учётом курса. Есть даже сохранения. 
Чёрт ногу сломит, я сам уже не понимаю, что тут написал.