Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [Pascal] Напечатать все слова, без неповторяющихся, символов, с использованием массива 
V
    Опции темы
lomobot
Дата 2.10.2006, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 1.10.2006

Репутация: 1
Всего: 1



Я студент второкурсник, не могу решить задачу с использованием массива.
формулировка: Пусть дан текст состоящий  из слов. под словом понимается последовательность литер, не содержащая пробелов и знаков припенания. Напечатайте (выведите на экран) все слова, состоящие из неповторяющихся символов.  
Я так понял что массив болжен быть не одномерным.

Если можно отправьте прогу на мыло [email protected], или выложите текст на форум. 
Заранее спасибо. С уважением lomobot smile
PM MAIL   Вверх
comtat
Дата 2.10.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 8
Всего: 71



Цитата(lomobot @  2.10.2006,  13:32 Найти цитируемый пост)
Я так понял что массив болжен быть не одномерным

C чего ты это взял  smile 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Alexeis
Дата 2.10.2006, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 23
Всего: 459



Код

program Project1;
var
  fl : boolean;
  i, j, k,
  p, n : integer;
  s    : String;
  a    : array[1..128] of String;
begin
  s := 'vingrad <1dublicat1> forum is <2dublicat_dublicat> the best ';
  p := 1;
  j := 0;
  for i := 1 to length(s)   //заполняем масив словами
  do
    Begin
      if (s[i] = ' ') or (i = length(s))
      then
        Begin
          inc(j);
          a[j] := copy(s, p, i - p);
          p := i + 1;
        end;
    end;

  n := j;
  for i := 1 to n     //проходим по масиву
  do
    Begin
      fl := true;
      for j := 1 to length(a[i]) - 1 //ищем повторяющиеся символы
      do
        if fl
        then
          for k := j + 1 to length(a[i])
          do
            if a[i][j] = a[i][k]
            then
              Begin
                fl := false;
                Break;
              end
            else
        else
          break;

      if fl
      then
        Writeln(a[i]);
    end;

  readln;

end.




--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Kuvaldis
Дата 2.10.2006, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


механик-вредитель
***


Профиль
Группа: Участник Клуба
Сообщений: 1189
Регистрация: 16.6.2006
Где: Минск

Репутация: 32
Всего: 61



lomobot, 
Вот лови решение, еще вчера его для тебя сделал, но твою тему закрыли smile 
В общем, ты понял, какие у нас правила smile 
Код

program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
//*****************************************************************************
var
    text   : string;
    word   : string;
    len, i : integer;
    Separator : set of char = ['.', ',', ' '];
//*****************************************************************************
function GetWord : boolean;
var
    found : boolean;
    start : integer;
    sym   : char;
begin
    found := false;
    while (i <= len) do
    begin
        sym := text[i];
        Inc(i);
        if (sym in Separator) then
        begin
            if (found = true) then
            begin
               word := Copy(text, start, i - start - 1);
               Result := true;
               Exit;
            end;
        end
        else
        begin
            if (found = false) then
             begin
                 found := true;
                 start := i - 1;
             end;
        end;
    end;

    if (found) then
    begin
        word := Copy(text, start, len - start + 1);
        Result := found;
    end
    else
        Result := false;
end;
//*****************************************************************************
function IsDiffSymWord : boolean;
var
   SymSet : set of char;
   i, len : integer;

begin
   SymSet := [];
   len := Length(word);
   for i := 1 to len do
   begin
       if (word[i] in SymSet) then
       begin
           Result := false;
           Exit;
       end
       else
           SymSet := SymSet + [ word[i] ];
   end;
   Result := true;
end;   
//*****************************************************************************
begin
    writeln('Input Your text');
    readln(text);
    len := Length(text);
    i := 1;
    writeln('Result');
    while GetWord do
    begin
       if IsDiffSymWord then
          writeln(word);
    end;

    readln;
end.
//*****************************************************************************



--------------------
Помни - когда ты спишь, враг не дремлет
Спи чаще и дольше, изматывай врага бессоницей
PM MAIL ICQ   Вверх
sergejzr
Дата 3.10.2006, 01:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 11
Всего: 360



Модератор: Название темы должно отражать ее суть!Модератор: Название темы должно отражать ее суть!

Добавлено @ 01:35 
Модератор: Название темы должно отражать ее суть!


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.