ошибка вывода writeln

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

ошибка вывода writeln

Сообщение MusaevRamiz » 16.02.2022 21:40:38

Приветствую, Друзья! Подскажите, пожалуйста.
Код: Выделить всё
var    N, S, R : string;
begin
writeln('Surname'); readln(S);
writeln('Name'); readln(N);
R:='hello, ' + N +' '+ S + '!';
writeln(R);
readln
end.

Не могу понять, почему при запуске не выводится полное сообщение hello + значение переменных N + S!
А также интересует вопрос, после выполнения процедуры вывода фамилии, если напечатать имя, то оно поверх фамилии печатается, в той же строке. Слова как бы друг на друга накладываются. В итоге выводится только сообщение hello и значение переменной S. Результат на скрине.
Вложения
Безымянный.png
Безымянный.png (8.47 КБ) Просмотров: 29603
MusaevRamiz
незнакомец
 
Сообщения: 5
Зарегистрирован: 04.12.2018 21:48:55

Re: ошибка вывода writeln

Сообщение zub » 16.02.2022 22:48:00

fp ide на данный момент чуток устарела и глючит, незнаю, починят ли ее. запускай в отдельном терминале, все будет ок
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: ошибка вывода writeln

Сообщение Seenkao » 16.02.2022 22:50:08

MusaevRamiz писал(а):Приветствую, Друзья! Подскажите, пожалуйста.
Код: Выделить всё
var    N, S, R : string;
begin
writeln('Surname'); readln(S);
writeln('Name'); readln(N);
R:='hello, ' + N +' '+ S + '!';
writeln(R);
readln
end.


попробуй так:
Код: Выделить всё
var    N, S, R : string;
begin
writeln('Surname'); readln(S);
writeln('Name'); readln(N);
writeln('hello, ', N, ' ', S, '!';
readln
end.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

Re: ошибка вывода writeln

Сообщение zub » 16.02.2022 23:47:16

Seenkao
объясни мистическую разницу? или гадаем?
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: ошибка вывода writeln

Сообщение Seenkao » 17.02.2022 00:06:34

Разницы принципиально нет, но возможно неправильно что-то происходит при "сложении", и это может выявиться при разном исполнении программы.

Вообще, зачем ты мне задаёшь подобные вопросы? Или хочешь сказать, что ты ни разу не сталкивался с ситуациями, когда в коде меняешь значения местами и код начинает по другому работать? Хотя не должен!!!

У меня работают оба варианта правильно.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

Re: ошибка вывода writeln

Сообщение alexs » 17.02.2022 10:25:58

Подтверждаю - всё работает
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Re: ошибка вывода writeln

Сообщение zub » 17.02.2022 13:13:39

при запуске приложения в консоли ос работает.
при запуске приложения в консоль fp ide (контрол+ф9) в винде глючит
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: ошибка вывода writeln

Сообщение Снег Север » 17.02.2022 13:21:07

Когда уже люди усвоят. что fp ide - это окаменевшее гуано мамонта, которое ни в коем случае нельзя использовать? :roll:
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ошибка вывода writeln

Сообщение Sharfik » 17.02.2022 19:26:18

Я когда учился, на информатике были задачки с TurboPascal. Так вот, на моем ПК единственно его не было, и чтобы не заморачиваться все тоже самое в среде Delphi делал.
Ну не суть.. в общем две истины с тех пор в голове:
1. Писать всегда два раза readln в конце, а не один как тут.
2. Не использовать связку if then без begin end.
Ибо не работало как надо.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: ошибка вывода writeln

Сообщение zub » 17.02.2022 19:45:17

странные истины. никогда бы неподумал))
zub
долгожитель
 
Сообщения: 2886
Зарегистрирован: 14.11.2005 23:51:26

Re: ошибка вывода writeln

Сообщение Sharfik » 18.02.2022 14:28:52

zub писал(а):странные истины. никогда бы неподумал))

Ну, а что?) Иначе окно исполнения закрывалось и не показывало результат. А ход условий выполнения был абы какой.
Со временем еще одна добавилась - не пользоваться бесплатным средами разработки использующие внешние библиотеки типа .NetFramework. Это я про TurboDelphi.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: ошибка вывода writeln

Сообщение Снег Север » 19.02.2022 21:21:41

Sharfik писал(а):не пользоваться бесплатным средами разработки использующие внешние библиотеки типа .NetFramework. Это я про TurboDelphi

А у вас за NetFramework кто-то денег запросил?
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ошибка вывода writeln

Сообщение Sharfik » 20.02.2022 03:48:07

Снег Север писал(а):А у вас за NetFramework кто-то денег запросил?

Это редкосная подстава просто. Я где то на форуме писал, как я пришел к lazarus. В один прекрасный день пытаешься установить TurboDelphi, а оно тебе говорит дай NF 3.5, а на ОС стоит более новый, и более старый уже отказывается установится. Спасибо, больше не нужно. Все что для себя теперь пишу делаю чтобы работало без говно библиотек. Плагины, программы продаваемые для ПО Autodesk такую же мерзкую особенность имеют - работают только с конкретной версией.
Аватара пользователя
Sharfik
энтузиаст
 
Сообщения: 791
Зарегистрирован: 20.07.2013 01:04:30

Re: ошибка вывода writeln

Сообщение Снег Север » 20.02.2022 07:52:53

У меня не было случая, чтобы более старый NetFramework не устанавливался в дополнение к новому. У меня всегда стоят три-четыре версии NetFramework.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: ошибка вывода writeln

Сообщение Сквозняк » 27.02.2022 01:28:09

Снег Север писал(а):Когда уже люди усвоят. что fp ide - это окаменевшее гуано мамонта, которое ни в коем случае нельзя использовать? :roll:

Это винда - окаменелое говно мамонта, которая выносит мозг траблами с кодировками, а в линуксе патченная версия фп-иде работает нормально, а в лазарусе редактор глючит, хз как в последней версии - не пересобирал её. В третьей версии фпц изговняли кодировки специально чтобы они в винде меньше глючили.

Добавлено спустя 16 минут 1 секунду:
MusaevRamiz писал(а):Приветствую, Друзья! Подскажите, пожалуйста.

Код: Выделить всё
var N, S, R : string;
begin
writeln('Surname'); readln(S);
writeln('Name'); readln(N);
R:='hello, ' + N +' '+ S + '!';
writeln(R);
readln
end.


В винде плохо с кодировками - винда любит перекодировать что не надо, отчего портится вывод в консоль и системные команды. Вводишь команду прыгнуть в каталог, а винда эту команду без спроса перекодирует в мусор и прыжок промахивается мимо каталога. Буквально, считываешь из системы набор байтов, вводишь его же, и он не срабатывает, потому что винда успела его изговнять. Это какой-то маразм Гейтса и Баллмера. В фпц 3 версии с этим стало возможно бороться, и программы писать следует примерно как-то так:
Код: Выделить всё
{$CODEPAGE CP866}
uses
JwaWinCon, Windows, jwawinbase, jwawinnt;//точно не вспомню, что тут лишнее :)

var    N, S, R : rawbytestring; //а этот тип строк - чтобы компилятор не делал никаких лишних перекодирований
ZZ5: ANSISTRING;//РАВБИТЕСТРИНГ НЕ ПРИНИМАЕТ

begin
RUNCOMMAND('cmd.exe /c chcp 866',ZZ5); //контрольный "выстрел, чтобы накормить маздайку кодировкой"
setconsolecp(866);
//а теперь только можно общаться с маздайкой
//при подозрениях, процедуры - повторить
writeln('Surname'); readln(S);
writeln('Name'); readln(N);
R:='hello, ' + N +' '+ S + '!';
writeln(R);
readln;
end.

Долго запускать винду, потому код не протестировал, но он надёрган из рабочего и протестированного кода. Если из иде эта версия теста заработает нормально, то это значит, что в виндовой иде и твоей программе не хватает такого кода.
Сквозняк
энтузиаст
 
Сообщения: 1123
Зарегистрирован: 29.06.2006 22:08:32

След.

Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru