Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/40: Рейтинг темы: голосов - 40, средняя оценка - 5.00
8 / 7 / 3
Регистрация: 03.01.2009
Сообщений: 70

Найти самое короткое слово

03.01.2009, 11:05. Показов 7513. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу, которая находит и выводит на экран самое короткое слово. Строка вводится с клавиатуры. Все слова ограничены пробелами, предложение заканчивается точкой.
P.S. Я уже 2-ой день мучаюсь, ну никак не идет. Спасибо.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.01.2009, 11:05
Ответы с готовыми решениями:

В заданном предложении найти самое короткое и самое длинное слово
1. Создать вектор М, содержащий количество отрицательных элементов каждого столбца матрицы z(3,4). 2. В заданном предложении найти...

Найти самое короткое и самое длинное слово в тексте
С клавиатуры вводится текст. Составте программу, которая определяет самое короткое и самое длинное слово (напишите, пожалуйста программу...

Дан текст. По порядку, самое короткое слово, заменить на самое длинное слово, если их длины не совпадают
Дан текст. Первое по порядку самое короткое слово текста заменить на первое по порядку самое длинное слово, если их длины не совпадают.

5
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
03.01.2009, 12:49
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
uses crt;
var s,p,s1,s2:string;
    min,len,i:integer;
begin
  clrscr;
  writeLn('Vvedite stroku: ');//строка может идти и после точки
  readLn(s);
  writeln;
  p:=copy(s,1,pos('.',s)-1)+' ';//выделяем первое предложение до точки, но без нее и добавляем пробел
  s1:=''; min:=255;//за мин берем самое возможно длинное слово
  while pos(' ',p) > 0 do //пока в предложении есть пробелы
   begin
    len:=pos(' ',p)-1; //определяем длину слова от начала до пробела
      s1:=copy(p,1,len);//запоминаем это слово
    if len < min then //если оно короче предыдущего короткого
      begin
        s2:=s1; //запоминаем его еще раз
        min:=len;//запоминаем его длину
      end;
    delete(p,1,pos(' ',p));//удаляем просмотренное слово
   end;
  write(s2);//выводим самое короткое
  readLn;
end.
2
8 / 7 / 3
Регистрация: 03.01.2009
Сообщений: 70
03.01.2009, 12:55  [ТС]
Puporev, большое спасибо. Как же быстро вы, всё-таки, программы пишите! Еще раз спасибо.
0
 Аватар для AlexQ
35 / 35 / 6
Регистрация: 01.01.2009
Сообщений: 141
03.01.2009, 13:00
А вот и мой вариант. Немного подлинее, правда, но зато выполняется по-любому.

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
program str;
uses crt;
var
 s,smin: string;
 i,j,count,min,l: integer;
begin
 clrscr;
 count:=0;
 min:=256;
 l:=1;
 write('->');
 readln(s);
 for i:=1 to length(s) do
  begin
   if s[i]='.' then
    begin
     if count<min then
      begin
       min:=count;
       smin:='';
       for j:=i-min to i-1 do
        begin
         smin:=smin+s[j];
         l:=l+1;
        end;
      end;
   if min=256 then
    write(s);
    end
   else if s[i]=' ' then
    begin
     if count<min then
      begin
       min:=count;
       smin:='';
       for j:=i-min to i-1 do
        begin
         smin:=smin+s[j];
         l:=l+1;
        end;
      end;
     l:=1;
     count:=0;
    end
   else count:=count+1;
  end;
 write(smin);
end.
Puporev, ваша программа мне не вывела результата:'(.

Добавлено через 4 минуты 29 секунд
А, понял. У вас точка обязательна.
1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
03.01.2009, 13:05
Если текст введен в соответствии с условием, а именно под него писалась программа, т.е. текст это несколько слов через пробел, потом точка, дальше еще может текст, он в игре не участвует. В таком случае программа все нормально выводит, а именно самое короткое слово из тех, что до точки. И почему у меня все всегда работает, а у других (далеко не всех!) нет.
0
 Аватар для AlexQ
35 / 35 / 6
Регистрация: 01.01.2009
Сообщений: 141
03.01.2009, 20:02
Мне свойственно невнимательно читать условия, прошу прошения. Я думал, точка необязательна.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.01.2009, 20:02
Помогаю со студенческими работами здесь

Найти самое короткое слово
дано предложение. найти самое короткое слово (между слов может быть больше,чем один пробел). помогите пожалуйста :)

Найти самое короткое слово в строке
Дана строка,слова в которой разделены хотя бы одним пробелом.Найти самое короткое слово в строке и поменять местами первую и последнию...

Найти самое короткое слово в предложении
вот она &quot;Задано предложение, состоящее из слов-строк. Написать программу, которая находит самое короткое слово в предложении.&quot;

найти самое короткое слово в тексте
Люди!! прошу вас, помогите! срочно нужно написать прогу на Паскале(( суть: найти самое короткое слово в тексте и если таких несколько, то...

Найти самое короткое слово в тексте
Дан текст... Найти самое маленькое слово


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru