Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 23.02.2018
Сообщений: 30

Вывести на экран все слова, которые встречаются в последовательности только один раз

23.02.2018, 12:43. Показов 3052. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У тексті поміж словами розташована кома, за останнім словом - крапка. Вивести на екран усі слова, що зустрічаються в послідовності лише один раз. Помогите сделать, очень нужно!Можно сразу готовую программу!
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.02.2018, 12:43
Ответы с готовыми решениями:

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

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

Вывести на экран слова, которые встречались в последовательности только 1 раз

8
23.02.2018, 12:50
 Комментарий модератора 
Перепишите задание на русском или английском языке, не нарушайте правила форума.
0
 Аватар для FreudeMan
108 / 95 / 45
Регистрация: 12.09.2017
Сообщений: 1,127
23.02.2018, 15:16
Собственно текст задания для понятности:

В тексте между словами расположена запятая, за последним словом - точка. Вывести на экран все слова, которые встречаются в последовательности только один раз. Помогите сделать, очень нужно! Можно сразу готовую программу!
0
23.02.2018, 16:18

Не по теме:

FreudeMan, пожалуйста, не переводите задания. Согласно правил, публикация вопросов на любых языках, кроме русского и английского, запрещена. ТС нарушил правила форума. Не следует поощрять нарушение правил форума.

0
 Аватар для FreudeMan
108 / 95 / 45
Регистрация: 12.09.2017
Сообщений: 1,127
23.02.2018, 16:20
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
var a : array [1..100] of string;
    s, slovo : string;
    i, j, k : integer;
    b, c : boolean;
begin
  Write('Введите текст: ');
  Readln(s);
  c:=false;
  for i:=1 to Length(s) do
  begin
    if c=true then break;
    if (s[i]<>',') and (s[i]<>' ') and (s[i]<>'.')
    then slovo:=slovo+s[i]
    else begin
      for j:=1 to 100 do
      begin
        if a[j]=slovo
        then begin
          b:=true;
          break;
        end;
      end;
      for k:=1 to 100 do
      begin
        if (b=false) and (a[k]='')
        then begin
          a[k]:=slovo;
          slovo:='';
          break;
        end;
        if b=true then break;
      end;
      if s[i]='.' then c:=false;
    end;
  end;
  for i:=1 to 100 do Write(a[i],' ');
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
25.02.2018, 08:47
FreudeMan,
Так все-таки что нужно, вывести слова не более 1 раза или вывести слова, встречающиеся 1 раз? Это не одно и то же. Решена не та задача. Тем не менее, по той что решена, есть что сказать.

Если хранить количество слов, беготню по a можно подсократить.
if b=True then => if b then
if b=False then => if not b then

В цикле 15-22 можно сразу сказать, куда добавлять слово, цикл 23-30 напраснаятрата времени.

11 выкинуть, в 33
Pascal
33
if s[i]='.' then Break;
Добавлено через 3 минуты
12 - условие можно переписать так:
Pascal
1
  if not (s[i] in [' ',',','.']) then
Перечень разделителей слов можно положить в именованную константу.

Добавлено через 8 минут
Pascal
15
16
17
18
19
20
21
22
      for j:=1 to 100 do
        if a[j]=slovo then
          Break
        else if a[j]='' then begin
          a[j]:=slovo;
          Break;
        end;
      slovo:='';
Очистка slovo должна быть на каждом разделителе, а не только на новых словах.

Добавлено через 24 минуты
Итого в сухом остатке
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
const Delims=[' ',',','.']; n=100;
var
  a: array [1..n] of String;
  i, j: Integer;
  s, w: String;
begin
  Write('Введите текст: ');
  Readln(s);
  for i:=1 to Length(s) do begin
    if not (s[i] in Delims) then
      w:=w+s[i]
    else begin
      for j:=1 to n do
        if a[j]=w then Break
        else if a[j]='' then begin
          a[j]:=w; Break;
        end;
        w:='';
      end;
      if s[i]='.' then Break;
    end;
  for j:=1 to n do if a[j]<>'' then Write(' ',a[j]) else Break;
end.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
25.02.2018, 09: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
const Delims=[' ',',','.']; n=100;
var
  a: array [1..n] of String;
  b: array [1..n] of Integer;
  i, j: Integer;
  s, w: String;
begin
  Write('Введите текст: ');
  Readln(s);
  for i:=1 to Length(s) do begin
    if not (s[i] in Delims) then
      w:=w+s[i]
    else begin
      for j:=1 to n do
        if a[j]=w then begin
          Inc(b[j]); Break;
        end else if a[j]='' then begin
          a[j]:=w; b[j]:=1; Break;
        end;
        w:='';
      end;
      if s[i]='.' then Break;
    end;
  for j:=1 to n do
    case b[j] of
      0: Break;
      1: Write(' ',a[j]);
    end;
end.
Добавлено через 4 минуты
Или
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
const Delims=[' ',',','.']; n=100;
var
  a: array [1..n] of record c: Integer; s: String; end;
  i, j: Integer;
  s, w: String;
begin
  Write('Введите текст: ');
  Readln(s);
  for i:=1 to Length(s) do begin
    if not (s[i] in Delims) then
      w:=w+s[i]
    else begin
      for j:=1 to n do
        if a[j].s=w then begin
          Inc(a[j].c); Break;
        end else if a[j]='' then begin
          a[j].s:=w; a[j].c:=1; Break;
        end;
        w:='';
      end;
      if s[i]='.' then Break;
    end;
  for j:=1 to n do
    case a[j].c of
      0: Break;
      1: Write(' ',a[j].s);
    end;
end.
0
 Аватар для FreudeMan
108 / 95 / 45
Регистрация: 12.09.2017
Сообщений: 1,127
25.02.2018, 19:25
Спасибо за анализ моего кода Буду пытаться в следующий раз писать программу оптимальней.
Цитата Сообщение от bormant Посмотреть сообщение
Так все-таки что нужно, вывести слова не более 1 раза или вывести слова, встречающиеся 1 раз? Это не одно и то же.
А в чём же разница? Что-то я не очень понял.
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
 Аватар для bormant
7816 / 4635 / 2837
Регистрация: 22.11.2013
Сообщений: 13,159
Записей в блоге: 1
25.02.2018, 20:24
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

Цитата Сообщение от FreudeMan Посмотреть сообщение
А в чём же разница? Что-то я не очень понял.
Строка: aa bb cc bb aa
Вывести слова не более 1 раза: aa bb cc (просто отбросили дубликаты).
Вывести слова, встречающиеся 1 раз: cc (aa и bb встречаются более 1 раза и не попадают под условие задачи).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2018, 20:24
Помогаю со студенческими работами здесь

Вывести только те символы, которые встречаются в тексте только один раз
Из заданного текста предложения выберите и выведите на экран только те символы, которые встречаются в нем только один раз (в том порядке, в...

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

Напечатать слова, которые встречаются в предложениях только 1 раз
Ребята! Такая задача - Даны 2 предложения.Напечатать слова, которые встречаются в предложениях только 1 раз Задачу нужно...

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

Выбрать из файла только те символы, которые встречаются в нём один раз
Задание: Дан файл,содержащий текст на русском языке,выбрать из него только те символы, которые встречаются только один раз, в том...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru