Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.98/64: Рейтинг темы: голосов - 64, средняя оценка - 4.98
3 / 3 / 1
Регистрация: 11.10.2014
Сообщений: 148

Определить количество слов в предложении

21.10.2014, 19:11. Показов 11871. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано предложение, которое вводят с клавиатуры. Надо определить количество слов в предложении. И переставить слова в предложении случайным образом.
Помогите, пожалуйста. С количеством слов еще все более менее понятно, но со случайной перестановкой - вообще идей нет. Вот код:

Pascal
1
2
3
4
5
6
7
8
9
10
11
var s1:string;
i,k,p:integer; x:string;
begin
writeln('Vvedite pr:');
readln(s1);
p:=length(s1);
k:=1;
for i:=1 to p  do begin
if s1[i] = ' ' then k:=k+1; end;
writeln(k);  readln();
end.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.10.2014, 19:11
Ответы с готовыми решениями:

Определить количество слов в предложении. Найти позиции всех пробелов
Дана строка-предложение. Определить количество слов в предложении. Найти позиции всех пробелов.

Определить количество слов в предложении. Найти позиции всех пробелов
Дана строка-предложение. Определить количество слов в предложении. Найти позиции всех пробелов.

Определить количество слов в предложении, которые содержат более трех символов
Мне нужна помощь. Мне задали написать программу, которая вычисляет кол-во слов в предложении, которые содержат более 3-х символов.Я знаю...

6
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
21.10.2014, 21:58
Лучший ответ Сообщение было отмечено Jalise1 как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
a:string;
b:array[1..20]of string;
c:array[1..20]of integer;
i,j,k,f:integer;
begin
randomize;
readln(a);
a:=' '+a;
for i:=1 to length(a)do
if a[i]=' ' then inc(k) else b[k]:=b[k]+a[i];
for i:=1 to k do
repeat
f:=0;
c[i]:=random(k)+1;
for j:=1 to i-1 do
if c[j]=c[i] then f:=1; 
until f=0;
writeln('slov=',k);
for i:=1 to k do
write(b[c[i]],' ');
end.
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
21.10.2014, 22:33
кот Бегемот,
Вместо генерации случайного числа и проверки на повторы (12-18) лучше перемешать массив:
Pascal
1
2
3
4
  for i:=1 to k do c[i]:=1;
  for i:=k downto 2 do begin
    j:=Random(i)+1; t:=c[i]; c[i]:=c[j]; c[j]:=t;
  end;
Иначе придётся впустую ждать, пока выпадет неповторяющееся число.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
22.10.2014, 09:40
Цитата Сообщение от bormant Посмотреть сообщение
Вместо генерации случайного числа и проверки на повторы (12-18) лучше перемешать массив:
Вводим:
кошка ночью пошла гулять
Выводит
кошка кошка кошка кошка

ЗЫ Ждать неповторяющегося набора совсем недолго
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
22.10.2014, 09:49
кот Бегемот,
извиняюсь, опечатался, 1->i:
Pascal
1
2
3
4
  for i:=1 to k do c[i]:=i;
  for i:=k downto 2 do begin
    j:=Random(i)+1; t:=c[i]; c[i]:=c[j]; c[j]:=t;
  end;
Добавлено через 4 минуты
В сухом остатке:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var
  a: String;
  b: array [1..20] of String;
  c: array [1..20] of Integer;
  i, j, k, f, t: Integer;
begin
  Randomize;
  Readln(a);
  a:=' '+a;
  for i:=1 to Length(a) do
    if a[i]=' ' then inc(k) else b[k]:=b[k]+a[i];
  for i:=1 to k do c[i]:=i;
  for i:=k downto 2 do begin
    j:=Random(i)+1; t:=c[i]; c[i]:=c[j]; c[j]:=t;
  end;
  WriteLn('slov=',k);
  for i:=1 to k do Write(b[c[i]],' ');
end.
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
22.10.2014, 09:51
и так можно
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,158
Записей в блоге: 1
22.10.2014, 10:01
Можно добавить проверку на повторяющиеся пробелы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var
  a: String;
  b: array [1..20] of String;
  c: array [1..20] of Integer;
  i, j, k, f, t: Integer;
begin
  Randomize;
  Readln(a); k:=1;
  for i:=1 to Length(a) do
    if a[i]=' ' then Inc(k,Ord(b[k]<>'')) else b[k]:=b[k]+a[i];
  for i:=1 to k do c[i]:=i;
  for i:=k downto 2 do begin
    j:=Random(i)+1; t:=c[i]; c[i]:=c[j]; c[j]:=t;
  end;
  WriteLn('slov=',k);
  for i:=1 to k do Write(b[c[i]],' ');
end.
Добавлено через 6 минут
А также на пунктуацию и управляющие символы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
const
  punct=[#0..#127]-['0'..'9','A'..'Z','a'..'z'];
var
  a: String;
  b: array [1..20] of String;
  c: array [1..20] of Integer;
  i, j, k, f, t: Integer;
begin
  Randomize;
  Readln(a); k:=1;
  for i:=1 to Length(a) do
    if a[i] in punct then Inc(k,Integer(b[k]<>'')) else b[k]:=b[k]+a[i];
  for i:=1 to k do c[i]:=i;
  for i:=k downto 2 do begin
    j:=Random(i)+1; t:=c[i]; c[i]:=c[j]; c[j]:=t;
  end;
  WriteLn('slov=',k);
  for i:=1 to k do Write(b[c[i]],' ');
end.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
22.10.2014, 10:01
Помогаю со студенческими работами здесь

В заданном предложении определить количество слов, оканчивающихся буквой "w"
15. в заданном предложении, где слова состоят из латинских букв, слова отделяются пробелами, за последним словом точка, определить...

Подсчитать количество предложений и количество слов в предложении
Слова в предложении разделены пробелом. В конце предложения точка. Подсчитать количество предложений и количество слов в предложении. (ввод...

Подсчитать количество букв и количество слов в предложении
Надо написать программу, которая считает количество букв и количество слов в предложении. Вот программа, которая считает количество букв....

количество слов в этом предложении
вот код const Alpha : set of char=; var s:string; i:integer; wc:integer; begin writeln('введите предложение до...

Строки. Подсчитать количество слов в предложении
Написать программу, которая считает число слов в предложении.


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru