Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
2 / 2 / 2
Регистрация: 06.06.2013
Сообщений: 83

Удвоить все буквы в чётных словах

14.02.2016, 12:11. Показов 1684. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно удвоить все буквы в чётных словах, помогите пожалуйста исправить.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
program a;
uses crt;
type str=string;mass=array[1..20] of str;
var s,s1,s2,s3:str;i,j,k,l,n:integer;x,y:mass;
 
function quantity(s1,s2:str):integer;
var i,k:integer;
begin
k:=0;
for i:=1 to length(s2)-length(s1)+1 do 
if copy(s2,i,length(s1))=s1 then k:=k+1;
quantity:=k; end;
 
procedure inverse(var s1:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
k:=copy(s1,i,1)+k;
s1:=k; end;
 
procedure double(var s1:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do
k:=k+copy(s1,i,1)+copy(s1,i,1);
s1:=k;
end;
 
procedure zamena(var s1:str;s2,s3:str);
var i:integer;k:str;
begin
k:='';
for i:=1 to length(s1) do 
if copy(s1,i,length(s2))=s2 then k:=k+s3 else k:=k+copy(s1,i,1);
s1:=k; end;
 
procedure del(var s1:str;s2:str);
begin
zamena(s1,s2,'');
end;
 
procedure  slova(s1:str;var k:integer;var x:mass);
var i,l:integer;
begin
l:=pos('  ',s1);
while l>0 do begin
zamena(s1,'  ',' ');
l:=pos('  ',s1);end;
k:=1;l:=pos(' ',s1);
while l>0 do begin
x[k]:=copy(s1,1,l-1);
k:=k+1;
delete(s1,1,l);
l:=pos(' ',s1);
end;
x[k]:=copy(s1,1,length(s1));
end;
 
procedure printmass(k:integer;x:mass);
var i:integer;
begin
for i:=1 to k do begin
writeln(x[i]);
end;
end;
 
var
m: integer;
begin
writeln('введите словo');
readln(s);
slova(s,n,x);
 
printmass(n,x);
 
for i:=0 to n do begin
if pos('a',s)>0 then
delete (s,i,1);
end;
write(s);
 
end.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.02.2016, 12:11
Ответы с готовыми решениями:

Удвоить все четные буквы слова
Удвоить все четные буквы слова Найдите пожалуйста ошибку uses crt; var s,a:string; i,n:integer; begin writeln('введите...

В строке все гласные буквы удалить, согласные удвоить
В строке все гласные буквы удалить, согласные удвоить

Вывести все буквы которые есть во всех словах
Решите пожалуйста задачу на строки. Если можно можете еще объяснить что сделали. Вывести все буквы которые есть во всех словах. К...

3
72 / 72 / 64
Регистрация: 30.04.2014
Сообщений: 214
14.02.2016, 13:44
Тут нечего исправлять. Это совсем не в тему программа. Насколько я понимаю, необходимо ввести строку и в четных по счету словах удвоить все буквы.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
14.02.2016, 13:55
Лучший ответ Сообщение было отмечено Nyshk@ как решение

Решение

Цитата Сообщение от Nyshk@ Посмотреть сообщение
удвоить все буквы в чётных словах
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
const rz=[',',';',':','!','?','.',' '];//разделители можно добавить, зависит от текста
var  s,s1:string;
     i,j,k,p:integer;
begin
writeln('Введите текст');
readln(s);
i:=1;
k:=0;
while i<length(s) do//идем до конца
 begin
  if not(s[i] in rz)and((i=1)or (s[i-1] in rz))then//если не разделитель и он первый или перед ним раделитель
   begin
    inc(k);//новое слово
    if k mod 2=0 then //если оно четное
     begin
      j:=1;
      while (i+j<=length(s))and not(s[i+j-1] in rz) do inc(j); //найдем конец слова
      for p:=i+j-1 downto i do //с конца слова  до начала
      insert(s[p],s,p); //продублируем буквы
      i:=i+j; //перешагнем через это слово
     end
    else inc(i);//если нечетное слово, вперед
   end
  else inc(i);//если не начало слова, вперед
 end;
write(s);
end.
1
72 / 72 / 64
Регистрация: 30.04.2014
Сообщений: 214
14.02.2016, 13:58
Вот для случая, если слова вводятся через пробел:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Var s:string;
i,k:integer;
w:array[1..100] of string;
Function Doub(a:string):string;
Var b:string; z:integer;
 begin
  b:='';
  for z:=1 to Length(a) do
   b:=b+a[z]+a[z];
  Result:=b;
 end;
begin
writeln('Введите слова через пробел:');
readln(s);
s:=s+' ';
k:=1;
w[k]:='';
for i:=1 to length(s) do
begin
  if pos(s[i],' ')=0 then w[k]:=w[k]+s[i]
   else
    begin
     if length(w[k])>0 then k:=k+1;
     w[k]:='';
    end;
 end;
writeln('Результат:');
for i:=1 to k-1 do
 if odd(i) then write(w[i],' ')
  else write(Doub(w[i]),' ');
End.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.02.2016, 13:58
Помогаю со студенческими работами здесь

Удвоить все вхождения буквы в строке, которую пользователь вводит с клавиатуры
Дана стартовая строка. Удвоить в ней все вхождения буквы, которую пользователь вводит с клавиатуры. Спасибо за внимание!

Найти все гласные буквы, которые встретились в двух самых длинных словах
Текст задания Дан массив из n слов произвольной длины (длина слова не превышает 80 символов). Символами могут быть только...

Проверить, все ли буквы слова Х, стоящие на чётных местах, одинаковы
Строковый тип данных 9. Напишите программу, проверяющую, все ли буквы слова Х, стоящие на чётных местах, одинаковы.

Удвоить все буквы во введённом слове
Слово вводиться с клавиатуры 1. Заменить первый и последний символ на *. 2. Произвести обмен первого и последнего символов. 3. К...

Во всех словах массива все буквы отсортировать в алфавитном порядке
Задача дан массив слов, нужно во всех словах массива все буквы отсортировать в алфавитномпорядке. Помогите решить


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru