Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 25
1

В заданном предложении удалите каждое второе слово

03.06.2010, 21:49. Показов 1799. Ответов 3
Метки нет (Все метки)

Delphi
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
type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
 
var
Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
const
Delims = [' ', '.', ',', ':', ';', '!', '?', '-', Char(9), Char(10), Char(13)];
var
StrSrc, StrRes : String;
i, j, k : Integer;
Cnt : Integer;
Pos1, Pos2 : Integer;
begin
StrSrc := Edit1.Text;
SetLength(StrRes, Length(StrSrc));
Pos1 := 0;
Pos2 := 0;
Cnt := 0;
for i := 1 to Length(StrSrc) do begin
if StrSrc[i] in Delims then begin
StrRes[i] := StrSrc[i];
Continue;
end;
 
if ( Pos1 = 0 ) then Pos1 := i;
if i = Length(StrSrc) then
Pos2 := i
else if StrSrc[i + 1] in Delims then
Pos2 := i ;
 
if Pos2 > 0 then begin
Inc(Cnt);
//Если слово на чётной позиции, удаляем его.
if Cnt mod 2 = 0 then
begin
for j := Pos1 to Pos2 do delete (StrSrc[j] ,pos1, j)
//Если слово на нечётной позиции, переписываем его по буквам в обратном порядке.
end
else
begin
k := Pos1;
for j := Pos2 downto Pos1 do begin
StrRes[k] := StrSrc[j];
Inc(k);
end;
end;
Pos1 := 0;
Pos2 := 0;
end;
end;
Edit2.Text := StrRes;
end;
end.

Помогите исправить. в строках 46 - 51. А условие:
В заданном предложении удалите каждое второе слово, а оставшиеся слова переверните.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.06.2010, 21:49
Ответы с готовыми решениями:

В строке каждое второе слово удалите, а оставшиеся переверните
В строке каждое второе слово удалите, а оставшиеся переверните Помогите пожалуйста, очень срочно

Удалите в предложении каждое третье слово
Ребята подскажите пожалуйста код программы. Ну очень надо... Удалите в предложении каждое третье...

В предложении удалите первое слово
Условие:Составте программу,используя символьные вырожения (строки). Массив не использовать!:)...

удалить каждое второе слово
Еще помогите пожалуйста Как удалить каждое второе слово из строки?

3
377 / 330 / 89
Регистрация: 26.05.2010
Сообщений: 750
04.06.2010, 08:16 2
надо в delete (StrSrc[j] ,pos1, j) передовать строку а не символ и индекс начала удаления и конца удалени, то есть можно удалить как один символ так сразу несколько

delete (StrSrc ,pos1, j)
1
ﻌﺹ ﺦ ﺖﻀ ﺹ ﻙ ﺵﻔ ﺊ ﺘﺝ
607 / 387 / 81
Регистрация: 15.12.2009
Сообщений: 753
04.06.2010, 14:30 3
Delphi
1
2
delete (StrSrc ,pos1, 1)//3 параметр - это длина удяляемой строки.
//тут должна быть 1 потому, что тебе нужно удалять в цыкле по 1 символу, а ты удаляешь несколько.
Ты удаляешь сначала 1 символ, затем 2 символа и затем 3 символа и тд и в итоге ты удалил не 1 слово а 3 слова.

Можно сделать это не в цикле а так:
Delphi
1
2
3
4
if Cnt mod 2 = 0 then
begin
delete (StrSrc ,pos1, pos2-pos1)
end
0
0 / 0 / 0
Регистрация: 30.05.2010
Сообщений: 25
09.06.2010, 23:48  [ТС] 4
Спасибо за предложенные варианты, но все равно работает не так как надо.. Может еще есть варианты? Желательно вставлять не "кусками", а полный код..

Добавлено через 5 часов 40 минут
Сделана)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2010, 23:48

Перевернуть каждое второе слово в строке
Доброго времени суток, господа. Имеется данная программа, она переворачивает слова в строке,...

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

Удалить с предложения каждое второе слово
Помогите, пожалуйста, с задачкой: Удалить с предложения каждое второе слово. Добавлено через 23...

Вывести из массива каждое второе слово
Создайте программу, которая содержит TextBox1 и TextBox2 со свойствами Multiline, а также одну...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru