Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2009, 15:27   #1
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
Лампочка Delphi. задача со строками

Написать программу разархивации исходной последовательности символов, которая заменяет текст вида х(к), где х - символ, к - число вхождений, на последовательность, состоящую из заданного количества одинаковых символов х. Определить для указанной последовательности коэффициэнт сжатия (отношение полученной длины последовательности к исходной).

Например пишешь a(4)b(2)c(5) и должно выдать aaaabbccccc. Помигите пожалуйста
SnowFall вне форума Ответить с цитированием
Старый 13.03.2009, 15:40   #2
NeshSoft
Максим Николаев
Форумчанин
 
Аватар для NeshSoft
 
Регистрация: 15.02.2009
Сообщений: 170
По умолчанию

В чем затруднения? Читаем одну строку по символьно, вставляем то, что нужно в другую строку, затем определяем коэффициент
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
NeshSoft вне форума Ответить с цитированием
Старый 13.03.2009, 15:56   #3
ViNcHeStEr
Delphi
Форумчанин
 
Регистрация: 12.06.2008
Сообщений: 137
По умолчанию

Вот так:
Код:
var
  s:string;
  c:char;
  i,n,j:byte;

procedure TForm1.Button1Click(Sender: TObject);
begin
 s:=edit1.Text;
 edit1.Clear;
for i:=1 to (length(s)-2) do
begin
 if s[i+1]='(' then
begin
 c:=s[i];
 n:=strtoint(s[i+2]);
for j:=1 to n do
begin
 edit1.Text:=edit1.Text+c;
end;
end;
end;
end;
ViNcHeStEr вне форума Ответить с цитированием
Старый 13.03.2009, 15:56   #4
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
По умолчанию

в том и затруднения что я не могу написать это в коде

спасибо вам большое)

тока мне по как то по другому надо, но ладно...

Последний раз редактировалось Stilet; 13.03.2009 в 16:27.
SnowFall вне форума Ответить с цитированием
Старый 13.03.2009, 16:28   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
тока мне по как то по другому надо
Чем так некошерно?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.03.2009, 16:40   #6
SnowFall
Пользователь
 
Регистрация: 13.03.2009
Сообщений: 13
По умолчанию

ну у меня Turbo Delphi в этой задаче выдаёт 10 ошибок.
Надо по типу такого

Цитата:
uses crt;
const n=10;
var a:array[1..n] of string[20];
ind:array[1..n] of byte;
i,j,temp:byte;

begin
for i:=1 to n do
begin
readln(a[i]);
ind[i]:=i;
end;
for i:=2 to n do
for j:=n downto i do
if a[ind[j-1]]>a[ind[j]] then
begin
Temp:=ind[j-1];
ind[j-1]:=ind[j];
ind[j]:=temp;
end;

writeln('========================== ==');
for i:=1 to n do
writeln(a[ind[i]]);
end.
задача с этого же форума

Последний раз редактировалось SnowFall; 13.03.2009 в 16:42. Причина: добавил
SnowFall вне форума Ответить с цитированием
Старый 13.03.2009, 16:50   #7
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
uses crt
var
  s,s1:string;
  c:char;
 cod:integer;
  i,n,j:byte;
begin
s1:='';
 readln(s);
for i:=1 to (length(s)-2) do
begin
 if s[i+1]='(' then
begin
 c:=s[i];
 val(s[i+2], n, cod);
for j:=1 to n do
begin
 s1:=s1+c;
end;
end;
end;
end.
пробуй!!!
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача в Паскале со строками maziLa Помощь студентам 2 28.12.2008 16:08
Задача со строками (Pascal) XaMeJleoH Паскаль, Turbo Pascal, PascalABC.NET 4 15.12.2008 01:00
Задача со строками Panda Помощь студентам 8 02.07.2008 09:10
Задача со строками Klyan Общие вопросы C/C++ 6 21.09.2007 22:22