Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Eragon
1 / 1 / 2
Регистрация: 19.12.2010
Сообщений: 27
#1

Строки, слова... - Turbo Pascal

28.03.2011, 22:33. Просмотров 221. Ответов 1
Метки нет (Все метки)

Ребата, помогите пожалуйста решить такую задачку...

"В заданной символьной строке, которая заканчивается точкой, определить длину самого короткого и самого длинного слов"
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2011, 22:33
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Строки, слова... (Turbo Pascal):

Вывести слова строки, которые отличны от последнего слова, и определить, есть ли в данной строке одинаковые слова
Дана строка, состоящая из слов, разделённых пробелами. Вывести слова этой...

Строки. Напечатать те слова, которые отличны от первого слова и длина слова минимальна
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1...

Удалить все повторные вхождения данного слова из строки и вывести слова в столбик.
Удалить все повторные вхождения данного слова из строки и вывести слова в...

Строки. Напечатать те слова, которые отличны от последнего слова и удовлетворяют заданному свойству
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1...

По файлу, содержащему строки-слова, получить первоначальный файл, в котором слова разделены пробелом
Пусть дан текстовый файл. В новый файл перенисите кажде слово как отдельную...

Сформировать 2 строки, одна из которой будет содержать русские слова, а другая — английские слова
1. Дана строка, содержащая слова на русском и английском языках. Сформировать 2...

1
nuHrBuH
253 / 253 / 150
Регистрация: 04.03.2011
Сообщений: 597
29.03.2011, 00:12 #2
Лучший ответ Сообщение было отмечено Eragon как решение

Решение

Pascal
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
uses wincrt;
var
       n : array[1..100] of byte;
       s : string[100];
    i, m : byte;
      s1 : array [1..20] of string[20];
 
   s_min,
   s_max : string[20];
                                                   {  перемещает наименьшее и найболшее слова местами }
   k_min,
   k_max,
     min,
  max, j : byte;
 
 
 begin
 
  writeln('Введите строку : ');  readln(s);
 
    s:= s + ' ';
    m:= ord( s[0] );
  min:= 100;
    j:= 1;
                                               {                                     }
   for i:= 1 to m do                           {                                     }
    begin                                      {                                     }
         s1[j] := s1[j] + s[i];                {   pазбиваем строку на массив слов   }
          n[j] := i;                           {                                     }
                                               {                                     }
         if s[i] = ' '                         {                                     }
            then                               {                                     }
                j:= j + 1;
    end;
 
    for i:= 1 to j-1 do
      begin
 
           if length( s1[i] ) > max
              then
                  begin
                      s_max := s1[i];                          {   максимальное длинной слово    }
                        max := length( s1[i] );                 {     длинна макс. дл. слова      }
                      k_max := n[i] - max + 1;                   {       позиция макс. дл. слова   }
                  end;
 
            if length( s1[i] ) < min
              then
                  begin
                      s_min := s1[i];                            {    минимальное длинной слово  }
                        min := length( s1[i] );                   {          длинна               }
                      k_min := n[i] - min + 1;                     {         позиция               }
                  end;
 
       end;
 
 
  delete(s, k_max, max);
     insert(s_min, s, K_max);
 
  if k_min < k_max
 
     then
         begin
             delete(s, k_min, min);
               insert(s_max, s, K_min);
         end
 
     else
         begin
             delete(s, k_min - (max - min), min);
               insert(s_max, s, k_min - (max - min));
          end;
 
  writeln(s);
end.
Сто раз уже это задание было. Вот задача, меняет местами максимальное и минимальное по длинне слова.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2011, 00:12
Привет! Вот еще темы с решениями:

Строки. Напечатать те слова последовательности, которые отличны от первого слова и удовлетворяют заданным свойствам
Дана последовательность, содержащая от 2 до 50 слов, в каждом из которых от 1...

Вывести слова строки, которые отличны от последнего слова
Дана строка, состоящая из слов, разделенных пробелами. Вывести слова этой...

Вывести те слова строки, которые отличны от последнего слова
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1...

Удалить из строки лишние слова таким образом, чтобы оставшиеся слова были упорядочены по алфавиту
Дан текст. Словом текста считается любая последовательность букв алфавита;...


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

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

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