Jump to content
СофтФорум - всё о компьютерах и не только

Почему не считывается переменная?


gvozd
 Share

Recommended Posts

Почему не считывается переменная s2?

program slova;uses crt;vars1: string;s2: string;i:integer;beginclrscr;begin   WriteLN('Введите первое слово: ');   Read(s1);   WriteLN('Введите второе слово: ');   Read(s2);end;For i:=1 to length(s1) do   beginIf pos(s1[i],s2)=0 thenbegin     WriteLN('Составить нельзя');     Readkey;     Halt(0);endelse     delete(s2,pos(s1,s2),1);   end;WriteLN('Можно составить');end.
Edited by gvozd
Link to comment
Share on other sites

gvozd

Используй ReadLn вместо Read. Они по-разному работают с буфером.

P.S. Описаниям в учебниках о том, что, дескать, разница только в том, что ReadLN переводит строку, а Read - нет, не верь. На самом деле все совсем иначе. Кто-то когда-то написал чушь, и почти все авторы учебников ее переписывают.

Edited by Тролль
Link to comment
Share on other sites

Разница между работой процедур Read и Readln состоит в следующем:

после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln - с новой строки.

Поетому у тебя и читает пустую строчку, так как первая Read считала до конца строки.

P.S. Так что в книгах все правильно, нужно только правильно ето понимать что переводится строка не вывода информации а ввода.

Link to comment
Share on other sites

yuriks

Ну, не скажу, чтобы формулировка "переводится строка не вывода информации а ввода" была понятна. Но по сути согласен. Если это подробно расшифровать, будет понятно и тем, кто учит язык. Но в учебниках обычно пишется о курсоре и переводе строки. Хотя на самом деле речь должна идти о буфере ввода, а для буфера или файла это называется текущая позиция и метка конца строки (#10#13). Курсор и перевод строки - понятия для экрана. Отсюда и путаница.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...