Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
dimafarafontov
2 / 1 / 0
Регистрация: 06.02.2010
Сообщений: 20
1

подскажите где ошибка в коде!

08.04.2010, 18:42. Просмотров 460. Ответов 6
Метки нет (Все метки)

Дана строка из слов. Нужно равномерно распределить пробелы между словами и чтоб длина строки была =50.
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
program Project1;
 
{$APPTYPE CONSOLE}
 
uses
  SysUtils;
 
var
   s,s1:string[50];
   i,n,m,kp,j:integer;
begin
write('=');
read(s); m:=1; n:=0;
for I := 1 to length(s) do
  begin
    if s[i]<>' ' then inc(n);  // n-количество букв
    if (s[i]=' ') and (s[i+1]<>' ') then  inc(m);// m-количество слов
  end;
kp:=50-n; // кр-число нехватающих пробелов
kp:=trunc(kp/m); // кр-число пробелов между словами
n:=1;
for I := 1 to length(s) do
 begin
   if s[i]<>' ' then  begin s1[n]:=s[i]; inc(n); end;
   if (s[i]=' ') and (s[i+1]<>' ') then
    begin
       for j := n to n+kp do
         begin
           s1[j]:=' ';
         end;
     n:=n+kp;
     inc(n);
    end;
 end;
 writeln(length(s1));
 writeln(s1);
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
  readln;
 
 
 
end.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2010, 18:42
Ответы с готовыми решениями:

Подскажите, пожалуйста, где ошибка. Заранеее благодарна)
unit Unit111; interface uses Windows, Messages, SysUtils, Variants,...

Ошибка в коде
По заданному нелинейному уравнению F(x)=0, где F(x) – некоторое нелинейное...

Ошибка в коде
var A: Real; N,K: Integer; X,Summa: Real; begin Write('Vvedite...

Ошибка в коде
Добрый день! Подскажите, почему Delphi не хочет считать с помощью формулы,...

Подскажите плиз, где можно взять движок для адресной книги
Надо движок для адресной книги на Делфе. Может кто в курсе.

6
kukuruku310
197 / 184 / 26
Регистрация: 14.02.2010
Сообщений: 539
08.04.2010, 20:19 2
может проблема в том, что ShortString начинается не с 1, а с 0 ?
0
turboq
157 / 157 / 13
Регистрация: 14.01.2010
Сообщений: 1,457
08.04.2010, 20:26 3
Можешь показать что вводишь и что должно получиться? а то я не особо понял.
0
dimafarafontov
2 / 1 / 0
Регистрация: 06.02.2010
Сообщений: 20
09.04.2010, 06:42  [ТС] 4
ну что-то типо:
вводим 'a a'
должно получиться 'a (24 пробелa) а (24 пробела)'
0
turboq
157 / 157 / 13
Регистрация: 14.01.2010
Сообщений: 1,457
09.04.2010, 12:23 5
Пробовал на твоем коде, что с памятью, нужен был setlength.
Предлагаю такой вариант
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
procedure TForm1.Button1Click(Sender: TObject);
var
   s,s1:string;
   i,j,n,m,w,k,flag,slov:integer;
begin
s:=Edit1.Text;
flag:=1;
n:=0;
w:=0;
  for i:=1 to length(s) do
  begin
    if s[i]=' ' then
    begin
    flag:=1;
    end
    else
    begin
      if flag=1 then Inc(n);
      flag:=0;
      Inc(w);
    end;
  end;
s1:=StringOfChar('*',50);
k:=trunc((50-w)/n);
flag:=1;
m:=0;
  for i:=1 to length(s) do
  begin
    if s[i]=' ' then
    begin
      if flag=0 then
      m:=m+k;
      flag:=1;
    end
    else
    begin
      Inc(m);
      s1[m]:=s[i];
      flag:=0;
    end;
  end;
edit2.Text:=s1;
end;
Если я все правильно понял
1
kukuruku310
197 / 184 / 26
Регистрация: 14.02.2010
Сообщений: 539
09.04.2010, 16:13 6
Да, вот первую строчку Help для ShortString прочитал, а дальше не вник.
Я бы сделал вот так.
1
Вложения
Тип файла: rar Project2.rar (1.2 Кб, 18 просмотров)
dimafarafontov
2 / 1 / 0
Регистрация: 06.02.2010
Сообщений: 20
09.04.2010, 17:07  [ТС] 7
Спасибо ваши реализации гораздо лучше
0
09.04.2010, 17:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2010, 17:07

Ошибка в коде Operator not applicable to this operand type
программа выдает ошибку в 11 строке Operator not applicable to this operand...

Двумерные массивы.Морской бой.Ошибка в коде
Морской бой,ошибка в коде.Дельфи не нравится строчка с &quot;mk&quot; В чем проблема? ...

Исправить ошибку в приведенном коде (ошибка выдается на первое else)
if y1=0 then y3:=1 and ...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru