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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.04.2012, 04:04   #1
Homee
 
Регистрация: 09.04.2012
Сообщений: 4
По умолчанию Проблема в строках

Срочно Требуется Помощь!!!!!!!!
Желательно код для Delphi.Через 3 Дня Сдавать.


1.Найти Самую Короткую Группу Нулей В Строке
2.Подсчитать Количество Символов В Самой Длинной Группе,В Строке,Состоящей Из групп Нулей И Едениц
3.Подсчитать Количество Едениц,В Группах С Нечетным Количеством Символов
4.Вывести На Экран Числа Строки,Состоящей Из Произвольных Десятичных Цифр
5.Вывести На Экран,Четные Числа Строки
6.Вывести На Экран Порядковый Номер Слова Максимальной Длинны
7.Подсчитать Количество Символов В Самой Короткой Группе,В Строке,Состоящей Из групп Нулей И Едениц
8.Вывести На Экран Порядковый Номер Слова,Минимальной Длинны
9.Заменить В Каждом Слове Первую Букву На Прописную
10.Поменять Местами Первую И Последнюю Букву В Каждом Слове
11.Вывести На Экран Только Строчные Латинские Буквы
12.Удалить Первую Букву Каждого Слова
13.Вывести На Экран Нечетные Числа Строки
14.Вывести На Экран Только Прописные Латинские Буквы
15.Вывести На Экран Самую Короткую Группу Едениц В Строке
16.Удалить Последнюю Букву Кажого Слова
Homee вне форума Ответить с цитированием
Старый 11.04.2012, 07:00   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Пиши, обговорим условия и цену

icq: 613914086
skype: skull_negodue
Все тривиальное просто

Последний раз редактировалось whatever; 11.04.2012 в 07:31.
whatever вне форума Ответить с цитированием
Старый 11.04.2012, 14:32   #3
denisbrain
Форумчанин
 
Регистрация: 29.05.2011
Сообщений: 449
По умолчанию

Список знаков препинания из Wiki
может пригодится при решении задачи

Код:

type
 endWord  = set of  #0..#255;

var
  bkend:endWord;
// получить слово номер
Код:


Function GetPosIndex(s:string;index:integer;len:integer=0):Tpoint;
var y,x:integer;
    s2:string;
begin
  y:=0;
  s2:='';
  result.X:=1;
  result.y:=0;
  for X:=1 to length(s) do begin
if (ord(s[x])<33) or (s[x] in bkend) or (x=length(s)) then
                       begin
                       if (s2<>'') and ((len=0) or (length(s2)>=len))  then begin
                             y:=y+1;
                             if y=index then begin
                               result.y:=x-result.X;
                               exit;
                             end
                             end;
                             s2:='';
                          end
                          else begin
                          if s2='' then result.X:=x; // запоминаем позицию начала слова
                          s2:=s2+s[x]; // копируем слово

                          end;


  end;

end;

// получить слово номер
Function GetSlovoIndex(s:string;index:integer;len:integer=0):string;
var pr:Tpoint;
begin
    pr:=GetPosIndex(s,index,len);
    if pr.X>0 then
    if pr.y>0 then result:=copy(s,pr.x,pr.y);

end;
// получаем кол-во слов
Код:
Function GetWordCount(s:string;len:integer=0):integer;
 var y,x:integer;
    s2:string;
begin
  y:=0;
  s2:='';
  result:=0;
  for X:=1 to length(s) do begin
    if (ord(s[x])<33) or (s[x] in bkend) then
                       begin
                       if (s2<>'') and ((len=0) or (length(s2)>=len)) then begin
                             y:=y+1;
                             end;
                             s2:='';
                          end else s2:=s2+s[x];

  end;
  result:=y;
end;
// максимальное минимальное слово по длине
Код:
Function GetMaxLengthWord(s:string):string;
var l,x:integer;
    MaxL:integer;
    s2:string;
begin
  l:=GetWordCount(s); // кол-во слов
  if l>0 then begin
   result:=GetSlovoIndex(s,1);
   MaxL:=length(result);
   for x:=1 to l do begin
   s2:=GetSlovoIndex(s,x);
    if MaxL<length(s2) then begin
     result:=s2;
     MaxL:=length(s2);
    end;
   end;
   end;
end;

Function GetMinLengthWord(s:string):string;
var l,x:integer;
    MinL:integer;
    s2:string;
begin
  l:=GetWordCount(s,3); // кол-во слов
  if l>0 then begin
   result:=GetSlovoIndex(s,1,3);
   MinL:=length(result);
   for x:=1 to l do begin
   s2:=GetSlovoIndex(s,x,3);
    if MinL>length(s2) then begin
     result:=s2;
     MinL:=length(s2);
    end;
   end;
   end;
end;
пример использования
Код:
Showmessage('Всего слов '+Inttostr(GetWordCount(form1.Memo1.Lines.Text)));
Showmessage('Слово номер 1"'+GetSlovoIndex(form1.Memo1.Lines.Text,1)+'"');
Showmessage('Слово мак. длины "'+GetMaxLengthWord(form1.Memo1.Lines.Text)+'"');
Showmessage('Слово мин. длины "'+GetMinLengthWord(form1.Memo1.Lines.Text)+'"');
инициализация

Код:

bkend:=[#146,#91,#93,#40,#41,#123,#125,#58,#44,#150,#151,#133,#33,
                      #46,#45,#145,#146,#147,#148,#171,#187,#39,#59,#47,#47,#32,
                      #183,#38,#64,#42,#92,#149,#94,#169,#164,#134,#135,#176,
                      #35,#185,#37,#137,#182,#174,#167,#126,#153,#95,#124,#166,'0','1','2','3','4','5','6','7','8','9'];
задания на pascal/delphi ICQ 368254335
Tel +79177425326 mail denis-naymov1985(at)mail.ru login skype denis.new.skype

Последний раз редактировалось denisbrain; 11.04.2012 в 15:42.
denisbrain вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с прогой в строках faLek Помощь студентам 9 06.03.2012 23:28
Пробелы в строках СергейАС Помощь студентам 3 28.02.2012 16:01
поиск в строках katena88 Общие вопросы C/C++ 3 28.10.2010 13:26
Проблема с пробелами в строках Sam Gold Общие вопросы C/C++ 5 23.04.2010 21:58