0 / 0 / 0
Регистрация: 12.12.2017
Сообщений: 4
1

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

12.12.2017, 11:05. Показов 600. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: найти во введённой строке самое короткое слово в строке. При выполнении пишет Program1.pas(16) : Ошибка времени выполнения: Индекс находился вне границ массива.
Где ошибка, как решить?

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
program zadanie4;
var
  k,i:integer;
  s,s1,min:string;
begin
  writeln('введите строку');
  readln(s);
  s1:=s;
  min:= s;
  k:=length(s);
  while length(s)>0 do 
  begin
    k:=length(s);
    if s[i]=' ' then delete(s, i, k);
    if length(s)<length(min) then
    begin
      min:=s;
      delete(s1,1,length(s));
    end;
  end;
  writeln('samoe korotkoe slovo',min);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.12.2017, 11:05
Ответы с готовыми решениями:

Вывести самое короткое слово в строке
Введите фамилию ,имя и отчество как одно даное строкового типа.Определить длину строки и количество...

Найти самое короткое слово начинающееся на букву "а", и поменять его с первым словом в строке
Найти самое короткое слово начинающееся на букву &quot;а&quot;, и поменять его с первым словом в строке. Если...

Определить самое короткое слово строки
Дана строка, состоящая из слов, разделенных пробелом. Определить и выписать самое короткое слово.

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

2
5084 / 2655 / 2350
Регистрация: 10.12.2014
Сообщений: 10,041
12.12.2017, 11:32 2
Цитата Сообщение от Vantozik Посмотреть сообщение
Где ошибка,
Вы в разделе PABC.NET.
Здесь ваша программа решается так:
Pascal
1
2
3
4
5
6
begin
  var d := ' ,.!?-:;'.ToCharArray;
  var words := ReadLnString('Введите строку:').ToWords(d);
  var m := words.Select(word->word.Length).Min;
  WriteLnFormat('Сомое короткое слово "{0}" в длину {1}', words.Find(word->word.Length=m), m);
end.
Добавлено через 15 минут
P.S. А чему равно i в вашей выделенной строчке?
Я скажу чему оно равно. Оно имеет значение 0.
Ну а строки, как всем известно, индексируются с 1…
0
Status 418
Эксперт Python
4581 / 2348 / 602
Регистрация: 26.11.2017
Сообщений: 5,264
Записей в блоге: 3
12.12.2017, 14:26 3
MinBy может быть, а не Select?
Pascal
1
2
3
4
5
6
begin
  var d := ' ,.!?-:;'.ToCharArray;
  var words := ReadLnString('Введите строку:').ToWords(d);
  var m := words.MinBy(i -> i.Count);
  WriteLnFormat('Сомое короткое слово "{0}" в длину {1}', m, m.Count);
end.
0
12.12.2017, 14:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.12.2017, 14:26
Помогаю со студенческими работами здесь

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

Определить самое длинное и самое короткое слово в введенной строке.
Помогите пожалуйста написать программку, очень надо:( Задача: Определить самое длинное с самое...

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru