Школоло / Говнокод #6505 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
var
    s1:string;
    i:integer;
const
    m=50;
begin
    write ('Введите строку: ');
    for i:=1 to m do
        begin
             write ('s1[',i,']');
             readln (s1[i]);
        end;
    writeln ('Длина строки: ', length(s1));
end.

Это Pascal. Вот так студенты физмата вводят строку, а потом считают ее длину.

Запостил: nanovsky nanovsky, (Updated )

Комментарии (25) RSS

  • Ну, вообще-то длина строки считается правильно, а вот на шаманстве с циклом я завис.
    Ответить
    • Длина строки считается правильно, но вас не смущает что она всегда будет одинаковой?
      Ответить
      • Ну да, им придется вводить всегда ровно 50 символов.
        Паскаль, ведь, насколько помню, всегда ждет символ при read и просто при нажатии Enter ничего не будет.
        Ответить
        • Readln же
          какой паскаль, кстати? у борланда например строка как была так и останется нулевой длины
          Ответить
        • На самом деле этот студент был прислан из будущего для уничтожения преподавателя.
          Ответить
      • Это чтобы всякие кулхацкеры не эксплоитировали на проге со StackOverflow.
        Ответить
      • Выяснилось, что программа всегда будет возвращать 0, т.к. счетчик символов хранится в s1[0] и во время работы программы не меняется.
        Ответить
    • Ага, иф отдельно, бегин отдельно.
      Только надо было не по 4 символа тогда уж, а по 8.
      Ответить
  • В Дельфи это вылетит при Huge Strings, так как строке надо сначала выделить место.
    Ответить
  • Моя мысль такая - вернется ноль, т.к. счетчик хранится по String[0], а так как они его не изменяют и не присваивают строку s1:=s1+s1[i], то у них будет 0. Это-же азы. Какого хера?
    Ответить
    • Проверил. Вы абсолютно правы, всегда вернется 0. Спасибо за замечание.
      Ответить
  • var
    stroka:string;
    begin
    write('vvedite stroku: ');
    readln(stroka);
    writeln('dlina stroki=',length(stroka));
    readln;
    end.

    Так веть?))
    Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8