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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.11.2010, 10:16   #1
locdoc
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 28
По умолчанию Строковые переменные

Дан текст. найти самую длинную группу цифр и поменять ее с последней группой цифр.
locdoc вне форума Ответить с цитированием
Старый 14.11.2010, 10:39   #2
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Или выкладываете наработки или тему закрываю. Если не увижу в следующем вашем посту наработки, закрою.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 14.11.2010, 11:27   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

http://www.programmersforum.ru/showthread.php?t=121741
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.11.2010, 12:11   #4
locdoc
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Или выкладываете наработки или тему закрываю. Если не увижу в следующем вашем посту наработки, закрою.
ВОТ ТО что я сделал..

проверьте если не сложна..там что то не правильно

Код:
program Project2;
 
var
  s : string[60] = 'sdsgs#d_123_ewat&wea_16489_w,etwe_27_twetw_5_ewr.we_653_fgh';
  i : Integer;
  pmax, lmax : Integer;
  pt, lt : Integer;
  ResultStr : string;
 
begin
  i := 1;
  lmax := 0;
  repeat
    if s[i] in ['0'..'9']
    then
      Begin
        lt := 1;
        while (i <= Length(s))
        do
          if s[i+lt] in ['0'..'9']
          then
            Inc(lt)
          else
            Break;
        pt := i;
        if lt > lmax
        then
          begin
            lmax := lt;
            pmax := i;
          end;
        i  := i + lt;
      end;
    Inc(i);
  until i > Length(s);
 
  ResultStr := Copy(s, 1, pmax - 1) + Copy(s, pt, lt) +
               Copy(s, pmax + lmax, pt - pmax - lmax) + Copy(s, pmax, lmax) +
               Copy(s, pt + lt, Length(s) - pt - lt + 1);
  Writeln(s);
  Writeln(ResultStr);
  Readln;
end.
locdoc вне форума Ответить с цитированием
Старый 14.11.2010, 14:11   #5
locdoc
Пользователь
 
Регистрация: 07.11.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
Или выкладываете наработки или тему закрываю. Если не увижу в следующем вашем посту наработки, закрою.
ну и??? я выложил и что
locdoc вне форума Ответить с цитированием
Старый 14.11.2010, 14:14   #6
DRAgon™
Форумчанин
 
Аватар для DRAgon™
 
Регистрация: 14.03.2010
Сообщений: 362
По умолчанию

Можно так.Сначала отсортируй массив строк по убыванию,птом находишь с конца свою строку самую максимальную и меняешь с последней.Все.

Код:
uses crt;
const N = 5;
var i,j:integer;
r,q,b:String;
x:array [0..n] of String ;
begin
writeln('Ведите массив, cостоящий из' ,n, 'чисел:');
for i:=0 to 5 do
readln(x[i]);
for i:=0 to 5 do
for j:=i+1 to 5 do
if x[i]<=x[j] then
begin
r:=x[i];
x[i]:=x[j];
x[j]:=r
end;
for i:=0 to n do begin
end;
writeln(' MAX Element -    ',x[0]);
 writeln(' Change ');
  for i:=0 to n do begin
 b:=x[0];
 x[0]:=x[n];
 x[n]:=b;
end;
Writeln;
 for i:=0 to n do
      writeln(x[i]);
end.
на можно и так исправил
Код:
  const s  = 'sdsgs#d_123_ewat&wea_16489_w,etwe_27_twetw_5_ewr.we_653_fgh';
  var i : Integer;
  pmax, lmax : Integer;
  pt, lt : Integer;
  ResultStr : string;

begin
  i := 1;
  lmax := 0;
  repeat
    if s[i] in ['0'..'9']
    then
      Begin
        lt := 1;
        while (i <= Length(s))
        do
          if s[i+lt] in ['0'..'9']
          then
            Inc(lt)
          else
            Break;
        pt := i;
        if lt > lmax
        then
          begin
            lmax := lt;
            pmax := i;
          end;
        i  := i + lt;
      end;
    Inc(i);
  until i > Length(s);

  ResultStr := Copy(s, 1, pmax - 1) + Copy(s, pt, lt) +
               Copy(s, pmax + lmax, pt - pmax - lmax) + Copy(s, pmax, lmax) +
               Copy(s, pt + lt, Length(s) - pt - lt + 1);
  Writeln(s);
  Writeln(ResultStr);
  Readln;
end.
Чем больше моя слава, тем я больше тупею; и таково, несомненно, общее правило.(А.Эйнштейн)

Последний раз редактировалось Stilet; 14.11.2010 в 16:30.
DRAgon™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Строковые переменные nisha Помощь студентам 3 12.11.2010 20:51
строковые переменные Serious Помощь студентам 3 01.02.2010 20:15
строковые переменные for_tuna Помощь студентам 0 06.12.2009 21:21
Строковые переменные NightFire Помощь студентам 1 23.03.2009 06:20