Forum > Russian

Неправильно исполняется код

(1/6) > >>

devisa_san:
Добрый день!
Ситуация следующая - имеется вот такой простейший код, где мы вводим значение переменных и вводим операцию, необходимую для выполнения над переменными. Lazarus при компиляции выдаёт какую то дичь - уже на стадии ввода операции он выводит сообщение, которое должно выводиться при невыполнении всех условий. Код рабочий, проверен в мобильном Pascal N-IDE  и там всё работает как надо. Вопрос - что происходит и как сделать так, чтобы код работал? Пробовал версии лазаруса 2.0.4 и 1.8.4. Лазарусы из коробки, никаких настроек не было произведено. Скрин с окном выполнения прикладываю.
P.S. Такое поведение лазаруса вызывает шок - это очень мягко говоря.   :o 

program Project1;
var a,b:double;
    c:string;
begin
write ('a=');
read (a);
write ('b=');
read (b);
write ('Enter operation (+ - * /) : ');
read (c);

if c='+' then write (a+b) else
 if c='-' then write (a-b) else
  if c='*' then write (a*b) else
   if c='/' then write (a/b) else write ('Wrong');
readln;
readln;
readln;
end.

julkas:
Try following -

--- Code: Pascal  [+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i < x.length; i++) { x[i].style.maxHeight='none'; x[i].style.height = Math.min(x[i].clientHeight+15,306)+'px'; x[i].style.resize = "vertical";}};} ---write ('a=');readln (a);write ('b=');readln (b);write ('Enter operation (+ - * /) : ');readln (c); Замени read() на readln()

devisa_san:
Спасибо за быстрый ответ. Работает как задумано, благодарю. Но тогда почему код работал в Pascal N-IDE?

julkas:

--- Quote from: devisa_san on August 12, 2019, 01:36:39 pm ---Спасибо за быстрый ответ. Работает как задумано, благодарю. Но тогда почему код работал в Pascal N-IDE?

--- End quote ---
Это для меня тоже загадка. Надо опробовать N-IDE. Давно хотел ...

devisa_san:
Ну, и соответственно вопрос почему с Read не работает в Lazarus? Комп в любом случае должен дождаться ввода переменной c, а он этого не делает... Хотелось бы разобраться, а то такое поведение для меня показалось странным. Да, и вообще не первый раз в lazarus наблюдаю такое явление, когда порядок выполнения программы нарушен, но там это было зачастую в программах с графическим интерфейсом и сложной структурой, но тут то простейшая программа с несколькими IF - школьнику паскаль объяснял и тут такое западло вылезло.

Navigation

[0] Message Index

[#] Next page

Go to full version