profile
Опубликовано 5 лет назад по предмету Информатика от ClarisVerbis

Подскажите, пожалуйста, где ошибки и как корректно составить программу? (в pascal)
Само задание: удвоить все символы в строке.

  1. Ответ
    Ответ дан raf1O5

    Ошибка

    В строке  's2:= s2 + s1[i] + s1[i];'

    По умолчанию все переменные равны нулю

    т.к. вы не задали значение i и вводите эту строку вне цикла for, то получается что вы запрашиваете нулевой элемент массива s1, при том что нумерация начинается с единицы, поэтому и выдаёт ошибку.

    "Индекс находится вне границ массива"

    Верный код программы

    program raf105;

    var s1,s2:string;

    i:integer;

    begin

    writeln('Введите строку');

    readln(s1);

    s2:='';

    for i:=1 to length(s1) do

     s2:= s2 + s1[i] + s1[i];

    writeln(s2);

    end.

    1. Ответ
      Ответ дан ClarisVerbis
      Введите строку
      71
      7711
      при проверке программы так, это верно?)
    2. Ответ
      Ответ дан raf1O5
      Каждый символ в строке удвоился. Разве в задании требовалось не это?
    3. Ответ
      Ответ дан ClarisVerbis
      Спасибо Вам большое! :)