Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 06.01.2012
Сообщений: 16
1

Работа со строками

07.02.2013, 07:28. Показов 931. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана строка s, состоящая из слов, разделенных между собой одним или несколькими пробелами. Если количество слов в строке s четно, то поменять местами ее средние слова. В противном случае на место среднего слова строки s поместить пробелы.
программа не до конца решена.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var S:string;
a:array[1..100] of string;
i,l,k,q,m,u,w:integer;
begin
s:=edit1.Text;
s:=Trim(s)+' ';
edit2.text:=s;
k:=0;    //количество слов
m:=0;     //индекс начала слова
for i:=1 to length(s) do
 if (s[i]=' ') and (s[i-1]<>' ') then
 begin
 inc(k);
 a[k]:=copy(s,m+1,i-m-1);
  u:=i;
 end;
if k mod 2=0 then
begin
а здесь я не знаю что делать (нужно вывести результат в edit2.text).
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.02.2013, 07:28
Ответы с готовыми решениями:

Работа со строками, заполнить компоненты строками из файла
Привет! Нужна помощь в заполнении формы В общем, есть форма отправки письма. У нее есть 2 функции,...

Работа со строками(операции над строками)
Пусть дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1 до 8 строчных...

Работа со строками. Функции работы со строками
Дана строка символов. В заданном тексте определить позицию первой точки ‘ . ‘.

Задание по темам: ООП, исключения, работа со строками (возможно применение коллекций List), работа с компоновщиком
ТЯЖЕЛО РАБОТАТЬ С КОМПОНОВЩИКОМ. БУДУ РАД ВАШИМ ОТВЕТАМ. 1. Ознакомиться с принципом работы...

1
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
07.02.2013, 13:20 2
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;
 
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: 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);
var s,s1,s2:string;
    i,k,p,n,i1,i2:integer;
begin
s:=Edit1.Text;
n:=length(s);
//определяeм количество слов
k:=0;
for i:=1 to n do
if(s[i]<>' ')and((i=1)or(s[i-1]=' '))then inc(k);
Edit2.Text:='Количество слов='+IntToStr(k);
//если нечетное
if odd(k) then
 begin
 //ищем начало слова слева от середины
  i:=1;
  p:=0;
  while p<=k div 2 do
   begin
    if(s[i]<>' ')and((i=1)or(s[i-1]=' '))then inc(p);
    inc(i)
   end;
  dec(i); //назал на 1 букву
  while s[i]<>' 'do
   begin
    s[i]:=' ';
    inc(i)
   end;
 end
else //если четное
 begin
  //ищем начало слова слева от середины
  i:=1;
  p:=0;
  while p<k div 2 do
   begin
    if(s[i]<>' ')and((i=1)or(s[i-1]=' '))then inc(p);
    inc(i)
   end;
  dec(i); //назал на 1 букву
  i1:=i; //начало 1 слова
  s1:='';
  while s[i]<>' ' do //составляем 1 слово
   begin
    s1:=s1+s[i];
    inc(i)
   end;
  while s[i]=' ' do inc(i);
  i2:=i; //начало 2 слова
  s2:='';
  while s[i]<>' ' do //составляем 2 слово
   begin
    s2:=s2+s[i];
    inc(i)
   end;
  //обмениваем местами
  delete(s,i2,length(s2));
  insert(s1,s,i2);
  delete(s,i1,length(s1));
  insert(s2,s,i1);
 end;
 
Edit3.Text:=s
end;
 
end.
1
07.02.2013, 13:20
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.02.2013, 13:20
Помогаю со студенческими работами здесь

Работа со строками.
Лишние пробелы. Дана строка, состоящая из слов, разделенных пробелами. Напишите программу,...

работа со строками
1.Собрать строку из двух массивов строк с помощью StringBuilder. 2.Переставить символы в строке в...

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

Работа со строками
Пожалуйста помогите в решении 2-задач на строки. 1) Определить сколько раз в строке встречается...


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

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