Дан одномерный массив, который содержит не более 60 символов, которые образуют слова,...

0 голосов
52 просмотров

Дан одномерный массив, который содержит не более 60 символов, которые образуют слова, разделенные пробелом. Заменить слово «mama» на слово «ded». Написать программу в паскале ABC. Заранее спасибо!!!


Информатика (19 баллов) | 52 просмотров
0

В слове «mama» 4 символа, а в слове «ded» - 3. Чем заменять "лишний" символ? Или оставшиеся элементы массива сдвигать?

0

сдвигать

Дано ответов: 2
0 голосов
Правильный ответ

Программа с массивом (хотя он тут и не нужен):
var a:array[1..60] of char;
st:string; i,p:integer;
begin
writeln('Введите массив символов:');
readln(st);
writeln('Вот массив:');
for i:=1 to length(st) do 
 begin
 a[i]:=st[i];
 write(a[i]);
 end;
writeln;
st:=' '+st+' ';
p:=pos(' mama ',st);
while p>0 do
 begin
 delete(st,p,6);
 insert(' ded ',st,p);
 p:=pos(' mama ',st);
 end;
writeln('Измененный массив:');
for i:=1 to length(st)-2 do 
 begin
 a[i]:=st[i+1];
 write(a[i]);
 end;
writeln;
end.

Пример:
Введите массив символов:
mama papa okno mama primer baba
Вот массив:
mama papa okno mama primer baba
Измененный массив:
ded papa okno ded primer baba

(194k баллов)
0 голосов

//PascalABC.NET 3.2 сборка 1318

Var
  s:array[1..60] of char;
  i,j,len:integer;
begin
len:=60;
for i:=1 to 60 do
read(s[i]);
i:=1;
while(i<=len-3) do<br>begin
  if (s[i]='m') and (s[i+1]='a') and (s[i+2]='m') and (s[i+3]='a') then
    begin
      s[i]:='d';
      s[i+1]:='e';
      s[i+2]:='d';
      for j:=i+3 to len-1 do
        s[j]:=s[j+1];
      dec(len);
    end;
  inc(i);
end;
for i:=1 to len do
write(s[i]);
end.

(38.6k баллов)
0

все ок, только нужно ввести random, а то больно много нужно вводить, все 60 символов

0

С random mama вряд ли получится.

0

а да точно, тогда это в задании нужно не 60 символов поставить, а меньше, в общем спасибо=)

0

Хмм, тогда составителям всё же нужна строка, а не массив символов(если речь идёт не о Си). Ну, или они извращенцы.

0

Такие задачи иногда приходится решать довольно нелепым способом (см. ниже). Чтобы был массив :)

0

Тем не менее, этот способ лучше моего захода в лоб.

0

главное, что вывод правильный, а способы пусть будут разными, сама не очень понимаю. преподавательница походу скачала задания из инета, я нашла где - все точь-в-точь. Сама объяснила только как ввести массивы и все, а все операции нам приходится придумывать самим или прибегать к помощи инета

0

кроме этого задания надо еще решить 2 задачи по одномерному массиву и 3 - по двумерному, но "денег" нет :)

0

Это хорошо, что нет. Сами решайте.

0

решаю, куда деваться