Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Напечатать слова, удовлетворяющие условиям

13K
03 мая 2007 года
*alt
36 / / 12.04.2007
Задача на множества.
Пусть дан текст, заканчивающийся точкой. Текст состоит из слов, разделённых пробелами. Слово - последовательность латинских букв. Напечатайте слова текста, имеющие нечетный номер, в которых нет ни одной повторяющейся буквы.


Алгоритм Решения (доделайте, если можно представьте исходник)

 
Код:
const n_max=1000; {макс длина текста}
        eot='.';
type litters = set of 'a'..'z'; {тип множества лат букв}
var txt:array [1..n_max] of char; {текст}
      {вспомагательные переменные не пишу, т.к. нет решения}

Пусть я ввёл текст
Код:
{ввод текста}
procedure read_text;
var i:integer;
begin
   i:=0;
   repeat
      repeat
         i:=i+1;
         read(txt);
      until eoln or (i=n_max) or (txt=eot);
      readln;
   until (i=n_max) or (txt=eot);
   if txt=eot then n:=i-1
   else n:=i;
end;


Потом как поступать (если можно пример)?
Я понимаю так:
Идём по тексту, если пробел и i нечёт и нет ни одной повторяющейся буквы (как написать функцию?), то заносим слово в множество.
Печатаем.

Помогите люди добрые. Если есть (или напишите) исходник, то выложите пожалуйста. :rolleyes:
242
04 мая 2007 года
Оlga
2.2K / / 04.02.2006
1 - концом предложения является пробек или точка
2 - считывай во вспомагательный массив очередное слово, а затем проверяй значение i - если нечетное, тогда проверяй есть ли повторяющееся буквы в нем, если нет - печатай.
Кодом помочь не могу, т.к. пасик не знаю.

В функции ввода текста помоему много repeat'ов - одного должно хватить.
622
04 мая 2007 года
nilbog
507 / / 19.12.2006
Код:
var m:litters; s:string; i:integer;
-----------
i:=1;
repeat
s:=''; m:=[]; f:=false
repeat
read(c);
f:=c in m;
m:=m+c; l:=l+c
until (c=' ') or f or (c='.')
if not f and odd(i) then write(l)
i:=i+1
until c='.'

что-то в таком духе наверно
13K
06 мая 2007 года
*alt
36 / / 12.04.2007
Цитата: OlgaKr
концом предложения является пробек или точка
В функции ввода текста помоему много repeat'ов - одного должно хватить.


Нам дан текст, заканчивающийся точкой, а не предложение - По-этому и два repead'а, чтобы вводить текст по строчкам .
А алгоритм я тот же придумал, вот только с внесением в множество погорячился. Алгоритм алгоритмом, но как прогу написать пока не знаю (пока слабоват в языке). Но всё равно спасибо за помощь.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог