Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 1
Регистрация: 15.09.2011
Сообщений: 104
1

Удалить слова

31.10.2011, 15:47. Показов 362. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. Дано тривиальное задание из первой строки удалить слова содержащиеся во второй строке. Проблема в том что для одних значений к примеру "Hello how are you" и второй строки "Hello world" все нормально работает вывод"how are you" для более сложных предложений, где встречаются 2 или 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
program four;
var s1,s2,ch,nch,strhelp:string;
i,j,k,z,zk,a:integer;
 
mas1:array[1..100] of string;
mas2:array[1..100] of string;
n:array[1..100]of integer;
m,ud,udj,ni: integer;
 
begin
strhelp:='';
writeln('ââåäèòå ñòðîêó');readln(s1);
writeln('ââåäèòå ñòðîêó');readln(s2);
j:=1;
 
for i:=1 to length(s1) do
begin
    if s1[i]<>' '
    then strhelp:=strhelp+s1[i];
    if (s1[i]=' ')and(strhelp<>'')
    then begin
    mas1[j]:=strhelp;
    strhelp:='';
    inc(j);
    end;
    if(i=length(s1))and(s1[i]<>' ')
    then begin mas1[j]:=strhelp;
    inc(j);
    end;
    end;
 
     strhelp:='';
    k:=1;
    for i:=1 to length(s2) do
begin
    if s2[i]<>' '
    then strhelp:=strhelp+s2[i];
    if (s2[i]=' ')and(strhelp<>'')
    then begin
    mas2[k]:=strhelp;
    strhelp:='';
    inc(k);
    end;
    if(i=length(s2))and(s2[i]<>' ')
    then begin mas2[k]:=strhelp;
    inc(k);
    end;
    end;
 
    
 
    z:=0;
    ni:=0;
    
    for i:=1 to j-udj do
    for m:=1 to k-1 do
    begin
    if mas1[i]=mas2[m] then
    begin
    for a:=i downto 1 do
     z:=z+length(mas1[a]);
 
    zK:=z-length(mas1[i])+i-1-ni;
    delete(s1,zk,length(mas1[i])+1);
      z:=0;
     zk:=0;
     ni:=ni+length(mas1[i]);
    
     end;
 
     end;
 
    inc(m);
     
 
    writeln('stroka',s1);
    end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.10.2011, 15:47
Ответы с готовыми решениями:

Удалить все повторные вхождения данного слова из строки и вывести слова в столбик.
Удалить все повторные вхождения данного слова из строки и вывести слова в столбик, т.е. нужно...

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

Дана последовательность слов. Удалить повторяющиеся слова и вывести слова которые встречались по одному разу
Дана последовательность содержащая от 1 до 30 слов в каждом из которых от 1 до 5 строчных латинских...

Удалить из строки лишние слова таким образом, чтобы оставшиеся слова были упорядочены по алфавиту
Дан текст. Словом текста считается любая последовательность букв алфавита; между соседними словами...

0
31.10.2011, 15:47
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.10.2011, 15:47
Помогаю со студенческими работами здесь

Удалить из текста все слова с нечетным количеством символов и перевернуть слова с четным количеством символов
удалить из текста все слова с нечетным количеством символов и перевернуть все слова с четным...

Удалить из слова X согласные буквы
Разработать программу с применением строк удаляющую из слова X согласные буквы.

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

Дан текст. Удалить повторяющиеся слова
Дан текст. Удалить повторяющиеся слова.

Удалить слова с теста через одно
Нужно удалить слова в тексте через одно, было:&quot; Удалить слова через одно.&quot;, а стало:&quot;Удалисть...

Удалить из каждого слова последнюю букву
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых до 8 строчных букв. Между...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru