IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Задача на строки
Liba
сообщение 4.12.2004 1:50
Сообщение #1


Гость






Помогите пожалуйста решить задачку нам ее на контрольной дали,но ничего не получилось написать...............хотьь я и списала у одногрупника( и не я одна) он сказал вот вы у него списали я вам не засчитаю.....помогите плиз :molitva:
Задача такая:Задана строка,состоящая из слов латинского алфавита,разделенное одним или несколькими пробелами и знаками препинаниями(запетая,двоеточние,тире,точк, и т.д.)
Требуется:
1)выделить слоа из строки и сформулировать массив слов(максимальное количество строк n,а максимальное длина слов m;n=5.m=15).
2)Объединить в новую строку и в ней требуется найти подстроку неповторяющихся символов максимальной длины.
3)Найти набор символов, которые входят в каждые из нечетных слов,но е входят в состав найденый в предыдущем пункте подстроки.

Заранее вам огромное спасибо!!!!!!!!!
Решите пожалуйста очень надо в понедельник сдать ;)
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 4.12.2004 3:03
Сообщение #2


Гость






Liba
Сама просила... (одно замечание - эта программа работает только со строчными буквами. Если нужна работа и с заглавными - говори, я исправлю)

Код

Type TWords = Array[1 .. 5] Of String[15];

Function GetWords(s: String; Var mas: TWords): Byte;
 Var
   i, j, p: Byte;
 Const
   Other = [',', '.', '-', ':', ';'];
 Begin
   For i := 1 To Length(s) Do
     If s[i] In Other Then s[i] := ' ';

   Repeat
     p := Pos('  ', s);
     If p > 0 Then Delete(s, p, 1)
   Until p = 0;

   If s[1] = ' ' Then Delete(s, 1, 1);
   If s[Length(s)] = ' ' Then
     Delete(s, Length(s), 1);

   i := 0;
   Repeat
     p := Pos(' ', s); Inc(i);
     If p > 0 Then
       Begin
         mas[i] := Copy(s, 1, Pred(p)); Delete(s, 1, p)
       End
     Else mas[i] := s
   Until p = 0;
   GetWords := i
 End;

Const
 s: String = 'this is just a test';

Var
 s2: String;
 i, Count: Byte;
 arr: TWords;

Var
 Ch: Char;
 InWord, InAll, Exists: Set Of Char;
 j, start, cnt, max_cnt: Byte;
Begin
 { Part 1 }
 Count := GetWords(s, arr);

 { Part 2 }
 s2 := '';
 For i := 1 to Count Do
   s2 := s2 + arr[i];

 max_cnt := 0;
 For i := 1 To Length(s2) - 1 Do
   Begin
     Exists := [];
     j := i; cnt := 0;
     While (j <= Length(s2)) and (not (s2[j] In Exists)) Do
       Begin
         Exists := Exists + [s2[j]];
         Inc(j); Inc(cnt)
       End;

     If max_cnt < cnt Then
       Begin
         max_cnt := cnt; start := i;
       End;
   End;

 { Part 3 }
 Exists := [];
 For i := 0 to Pred(max_cnt) Do
   Exists := Exists + [s2[start + i]];

 {**** Добавлено для работы с заглавными буквами *****}
 InAll := ['a' .. 'z', 'A' .. 'Z'];

 i := 1;
 While i <= Count Do
   Begin
     InWord := [];
     For j := 1 To Length(arr[i]) Do
       InWord := InWord + [arr[i][j]];
     InAll := InAll * InWord;
     Inc(i, 2)
   End;

 Exists := Exists - InAll;
 For Ch := 'a' To 'z' Do
   If Ch In Exists Then Write(Ch, ' ');
 WriteLn;

End.

Liba, теперь программа должна работать и с заглавными тоже...

Сообщение отредактировано: volvo - 4.12.2004 12:05
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Liba   Задача на строки   4.12.2004 1:50
volvo   Liba Здесь - последний пост   4.12.2004 1:55
Liba   Я уже помоему весь форум прочитала аж глазки болят...   4.12.2004 2:00
volvo   Ну и для кого делается ФАК? По ссылке лежит функци...   4.12.2004 2:06
Liba   Не учто вся функция решает всю программу????   4.12.2004 2:13
volvo   :no: Только первый пункт... Но если не будет перво...   4.12.2004 2:15
Liba   Я тебя прошу ты же знаешь как писать эту прогу.......   4.12.2004 2:21
volvo   то есть записать все слова слитно, без пробелов ?   4.12.2004 2:28
Liba   знаешь он нам этого не сказал...я переписала досло...   4.12.2004 2:31
volvo   Liba Сама просила... (одно замечание - эта програм...   4.12.2004 3:03
Liba   Спасибочки!!!!!!!...   4.12.2004 3:17
Liba   А еще не мог бы ты условно поставить где 1,где 2,г...   4.12.2004 3:18
volvo   Liba Там же стоит - Part 1, Part 2, Part 3 ... :ro...   4.12.2004 4:12
Liba   ААА я просто не заметила!!!!!...   4.12.2004 17:03
volvo   Liba Зарегистрируйся на форуме, и получишь доступ ...   4.12.2004 17:05
Liba   Ок...псибки   4.12.2004 17:12
Liba   Скажи пожалуйста как избавится здесь от ошибки про...   6.12.2004 23:57
volvo   Liba Я только что прогнал программу в Дельфи: pr...   7.12.2004 0:05
Liba   теперь нету спасибо)))) :flowers:   7.12.2004 0:07


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 27.07.2025 11:22
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"