Pascal. Как вставить слово в середине строки - PullRequest
0 голосов
/ 29 апреля 2020

Заполните экран зеленым. Введите строку с клавиатуры. Напечатайте строку в центре экрана, вставив указанное слово в ее середину. Мне нужна помощь! Мне нужно слово, вставленное в середине строки. Как мне это сделать?

 uses crt;
    var s1,s2:string;
    k,p:integer;
    count:boolean;
    begin
      Window(0,0,100,100);
      textbackground (green);
      textcolor(black);
      clrscr;
      write('Enter a string and a word: ');
      readln(s1);
      readln(s2);
      clrscr;
      gotoXY(45,13);
      p:=length(s1);
        for k:= 1 to p do
          begin
          if ((s1[k]= ' ') and (count=false)) then
            begin
              write(' ',s2);
              count:=true;
            end;
            write(s1[k]);
          end;
        if count <> true then
        begin
          write(' ',s2);
        end;
        gotoXY(1,30);
    end.

1 Ответ

0 голосов
/ 29 апреля 2020

Я не знаком с деталями pascalAB C, но он предположительно имеет блок Crt, который дает вам некоторый контроль над экраном и тем, где на него записываются элементы, используя GotoXY, а затем Write.

Таким образом, вам необходимо решить следующие задачи:

  1. Найти ширину экрана в виде количества символов. Или ваш блок Crt может предоставить вам способ указания ширины экрана, например, как часть создания экранного окна.

  2. Вы знаете длину вашей строки (например, из Длина (MyString)). Таким образом, чтобы разместить строку в горизонтальном центре экрана, вам необходимо рассчитать необходимое значение X, чтобы указать при вызове GotoXY. Это просто

    X := (ScreenWidth - Length(MyString)) div 2;

    То же самое для значения Y. Конечно, значение X может быть не совсем правильным, если (ScreenWidth - Length (MyString) - нечетное число, а четное, но с этим ничего не поделаешь.

  3. Как только вы использовали GotoXY для позиционирования курсора, просто сделайте

    Write(MyString);

  4. Если ваш блок Crt позволяет вам указать шрифт, вы, вероятно, получить лучший визуальный результат, если указать шрифт с фиксированной точкой, такой как Courier (или эквивалент Cyrilli c).

  5. Наконец, вам необходимо вызвать ReadLn в самом конце кода так что программа ждет, пока вы нажмете Enter , в противном случае окно консоли, в котором будет отображаться программа, будет просто vani sh, если оно работает как единица измерения Crt Free Pascal.

...