Вопрос задан 16.02.2019 в 00:08. Предмет Информатика. Спрашивает Бондарева Арина.

В заданной фразе после каждой буквы «о» вставить сочетание введенное с клавиатуры. Или найдите как

изменить эту программу, в ней сочетание пишется только после первой буквы, хотя если словосочетание будет из одной буквы то программа нормально работает. program pony; vark,a,b:string; i:integer; begin write('введите строку'); readln(a); write('введите сочетание'); readln(b); k:=copy (b,1,length (b)); for i:=1 to length (a) do begin if a[i]='о' then insert(k,a,i+1); end; writeln(a); end.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Кашпир Илья.
Program pony;

var
  a, b: string;
  i: integer;

begin
  Write('введите строку: '); Readln(a);
  Write('введите сочетание: '); Readln(b);
  for i := length(a) downto 1 do
    if a[i] = 'о' then insert(b, a, i + 1);
  Writeln(a)
end.

Тестовое решение:
введите строку: Дает корова молоко
введите сочетание: 12345
Дает ко12345ро12345ва мо12345ло12345ко12345



0 0
Отвечает Выков Анзор.
PascalABC.Net
Скорее всего криво и нерационально, но работает


 var 
s,s2,a : string;
 l,i,b,l2 : integer;
 begin 
readln (s); 
 l := Length(s);
  while b <> -1 do
   begin  b := 0; 
  b := pos ('o',s);
  if b <> 0 then
   begin
  s2 := s2 + copy(s,1,b);
  Delete (s,1,b); 
 writeln ('Введите строку');
  readln (a);
  s2 := s2+a;
   end
    else
     begin
      l2 := Length(s);
       s2 := s2 + copy(s,1,l2);
      b := -1; 
   end; 
   end; 
 writeln (s2);
     end.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Программа, которая вставляет заданное сочетание после каждой буквы "о" в заданной фразе, может быть изменена следующим образом:

```pascal program pony; var a, b, k: string; i: integer; begin write('Введите строку: '); readln(a); write('Введите сочетание: '); readln(b); k := copy(b, 1, length(b)); i := 1; while i <= length(a) do begin if a[i] = 'о' then begin insert(k, a, i + 1); i := i + length(k); // пропускаем вставленное сочетание end; i := i + 1; end; writeln(a); end. ```

В этой измененной программе добавлен цикл `while`, который позволяет обрабатывать каждую букву в строке `a`. Вместо использования цикла `for`, который проходит по каждому индексу строки `a`, мы используем цикл `while`, чтобы иметь возможность изменять длину строки `a` во время выполнения программы.

Внутри цикла `while` проверяется условие `if a[i] = 'о'`, чтобы найти каждую букву "о" в строке `a`. Если условие выполняется, то сочетание `k` вставляется после этой буквы, используя процедуру `insert`. Затем индекс `i` увеличивается на длину сочетания `k`, чтобы пропустить вставленное сочетание и перейти к следующей букве.

В итоге, программа будет вставлять заданное сочетание после каждой буквы "о" в заданной строке и выводить результат.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос