Показать сообщение отдельно
Старый 15.10.2007, 14:12     # 7
Priest
Newbie
 
Аватар для Priest
 
Регистрация: 27.01.2004
Адрес: РФ, ХМАО
Пол: Male
Сообщения: 26

Priest Луч света в тёмном царствеPriest Луч света в тёмном царствеPriest Луч света в тёмном царствеPriest Луч света в тёмном царствеPriest Луч света в тёмном царстве
Цитата:
Сообщение от Gamer2100 Посмотреть сообщение
буду его юзать!!!
Нинада!!! Разбирайся с процедурами и функциями, такой код просто нечитаем.

Зачем столько if-ов с одинаковым условием идущих подряд? Если не специально — замени их на конструкцию вида:
Код:
if f = … then begin
  WriteLn(…);
  WriteLn(…);
  …
  WriteLn(…);
end;
Т. о. этот блок должен выглядеть так:
Код:
if f = 'Мордкович' then begin
  WriteLn('Молодец, все слои защиты пройдены, вот мои ники и пароли:');
  WriteLn('"WebMoney"');
  WriteLn('код: 099087336262');             
  WriteLn('пароль: ***');                   
  WriteLn('код доступа к фаилу ключей:***');
  WriteLn('"E-mail"');                      
  WriteLn('login:sergey1993@bk.ru');        
  WriteLn('pass:***');                      
  WriteLn('"Мой сайт"');                    
  WriteLn('login:young-gamedev');           
  WriteLn('pass:***');                      
  WriteLn('"GTAMaps"');                     
  WriteLn('login:X3M-NRG');                 
  WriteLn('pass:***');                      
  WriteLn('Есть ещё, но я их забыл.:-(');   
  WriteLn('Вы закончили?');                 
end
else begin
  WriteLn('Ошибка. Прощайте.');
  goto 1;
end;
f, кстати, — плохое имя для переменной, лучше использовать «говорящие» имена.

По более раннему вопросу. В коде:
Код:
var x, y: Integer;
…
x := round(y / 4);
происходит ошибка, т. к. компилятор промежуточное значение операции деления сохраняет в переменную y, а она целочисленная. Через это вот такое выходит. Ergo, вводить временную переменную натурального типа для операции.
Цитата:
Сообщение от Gamer2100 Посмотреть сообщение
программа вторая
Это, в общем-то, заметно. Повторюсь, вне понятий процедур и функций паскаля не существует. Еще маленько помарализаторствую — структурируй текст, делай отступы.
Цитата:
Сообщение от Gamer2100 Посмотреть сообщение
просто прога выходит, после ответа прога завершается
Вот видишь. Текст так запутан, что ты сам не можешь понять, где в нем логическая ошибка. И вряд-ли кто-то захочет разбираться в таком коде, если автор сам для себя не сделал его удобным.

Впрочем, с опытом это придет.

Ща я тебе даже накидаю скелет этой твоей проги. Если че — не обессудь, паскаля я уже давно в глаза не видел:
Код:
program Pass;

function AccessGranted: boolean;
begin
  {Здесь асякие вопросы-распросы}
  {Если все ответы верны — присваиваешь функции значение «True»}
end;

function ExitConfirmed: boolean;
var 
  Ch: Char;
begin
  while KeyPressed do ReadKey; {чистим буфер клавы}
  WriteLn('Do ya rly wanna to exit (Y/N)?');
  repeat                                
    repeat until KeyPressed;
    Ch := ReadKey;
  until (Ch = #89) or (Ch = #78); {с кодами мог напутать}
  ExitConfirmed := (Ch = #89);
end;

procedure OutPasswords;
begin
  {Здесь вывод паролей}
end;

begin
  repeat
    if AccessGranted then OutPasswords else WriteLn('Ошибка. Покедава.');
  until ExitConfirmed;
end.
Итого, тебе остается только заполнить одну процедуру и одну функцию. Дерзай.
Priest вне форума