А там внутри в издательских данных “Издание 30-е, стереотипное” ? Это обычная кормушка. Раз написал и с каждого переиздания имеешь свое масло на бутерброд. Нужно только прикормить “правильных людей”, которые книгу будут “рекомендовать” для СПО.
Я написал "
begin
var a: array of integer:=ArrRandom(10, -20, 30);
var x,a,b:=ReadlnInteger3('x =','a =','b =');
foreach var y in a do if (y>10) and (y<15) then x.Print;
foreach var y in a do if (y=x) then x.Print;
foreach var y in a do if (y>a) and (x<b) then x.Print;
end.
", нажал “Форматировать код”, и получилось это: "
begin
var a: array of integer := ArrRandom(10, -20, 30);
var x, a, b := ReadlnInteger3('x =', 'a =', 'b =')foreach ,b:=ReadlnInteger3('x =','a =','b =');
foreach var y in a do if (y > 10) and (y < 15) then x.Printforeach 0) and (y<15) then x.Print;
foreach var y in a do if (y = x) then x.Printforeach ) then x.Print;
foreach var y in a do if (y > a) and (x < b) then x.Print;
end.
".
- Код даже синтаксически не правильный. Конечно, дублировать его части не должно, но:
- Не воспроизводится, у меня только пробелы повставляло:
Что делать? Закрыл, открыл ИСР, проверил, что версия последняя.
begin
foreach var y in a do if (y>10) and (y<15) then y.Print;
foreach var y in a do if (y=x) then x.Print;
end.
превращает в
beginforeach foreach var y in a do if (y > 10) and (y < 15) then y.Printforeach 0) and (y<15) then y.Print;
foreach var y in a do if (y = x) then x.Print;
end.
Видимо, последние 2 строки не затрагиваются.
А попробуйте ка скопировать код из браузера, из своего же сообщения. И вставить в полностью новый файл.
Попробовал. Переустановил ИСР. Ничего не помогает.
То есть попробовали, и даже скопированный из браузера код рвёт форматированием?
Ну, в таком случае у меня чётких идей больше нет. Можно проверить что вам выведет такая программа:
## System.Environment.NewLine.PrintLines(ch->ch.Code);
И - попробуйте найти самый минимальный объём кода, с которым будет стабильно воспроизводится.
13
10
begin
foreach a in b do
end.
превращает в
beginforeach foreach a in b do
end.
А
##
foreach a in b do
превращает в
##
foreach each a in b do
Может быть, это из-за того, что форматирование пытается разделить foreach
для получения for
?
Похоже шрифт в окне вывода перестал быть моноширным?
В консоли правильно выводится:
У меня Consolas выбран - проблем не было пока.
А где выбран? Я вижу в настройках только настройку шрифта самого кода (и там не_моноширный не даёт выбрать). Она стоит на дефолте - Courier New. А для окна ввода отдельной настройки не вижу.
Давайте лучше посмотрим на то что проще сравнить:
Как у вас будет выглядеть вывод этой программы:
uses OpenGL;
begin
Mtr2d.Create(1,2,3,4).Println;
end.
В окне ввода и в консоли?
Поставил Consolas, переустановил паскаль официальным экзешником с официального сайта.
Чертовщина какая то:
Вывод - символы псевдографики провоцируют изменение шрифта