2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2
 
 Re: задача по программированию...
Сообщение06.01.2012, 21:51 
arseniiv в сообщении #523896 писал(а):
(Alexu007, ну и тянет же вас в незаконченные темы! :roll:)

А какой смысл писать в законченные, если они закончены? По-моему все так делают - пишут в незаконченные.

 
 
 
 Re: задача по программированию...
Сообщение06.01.2012, 22:03 
Точнее, я имел в виду темы, надобность писать в которые сомнительна. Автор ушёл, никто ничего не просит, Точная формулировка отсутствует. Зачем перебирать все варианты? Зачем лишний текст?

 
 
 
 Re: задача по программированию...
Сообщение22.01.2012, 12:41 
Circiter в сообщении #523677 писал(а):
Ok, общая идея может быть такой:
код: [ скачать ] [ спрятать ] [ выделить ] [ развернуть ]
код: [ скачать ] [ показать ]
Используется синтаксис Pascal
function GetWord(Input: string): string
var
Words: TWords;
CurrentWord, Character: integer;
Symbols: set of char;
begin
Symbols := [];
Words := Split(Input, ' '); { Explode an input string into the list of words. }

for CurrentWord:=1 to Words.Count do { Enumerate all words. }
for Character:=1 to Length(Words[CurrentWord]) do { Scan current word char-by-char. }
{ If current char is unfamiliar... }
if not (Words[CurrentWord][Character] in Symbols) then
begin
{ Add this char to the set.}
Symbols := Sumbols + [Words[CurrentWord][Character]];
{ Last word with at least one previously unseen char is desired result. }
GetWord := Words[CurrentWord];
end;
end;



Наверное как-то так...



Можно спросить какой компилятор это скомпилирует? И вы еще забыли каждый раз очищать множество.

 
 
 
 Re: задача по программированию...
Сообщение23.01.2012, 19:54 
2Null
Цитата:
И вы еще забыли каждый раз очищать множество.

Да я там вообще какую-то чепуху написал, даже не могу вспомнить, что имел ввиду и чего хотел достичь. :)

Конечно же, нам достаточно написать обычную программульку поиска слова максимальной длины, но параметризовать код некоей функцией MyLength() которая, в зависимости от намерений ТС, либо работает как стандартная функция вычисления длины строки, либо как функция подсчета различных символов в ней. В последнем случае, да, есть место множествам -- учитываем очередной символ только если его нет в множестве, затем безусловно добавляем его в это множество. Очевидная модификация:
код: [ скачать ] [ спрятать ]
Используется синтаксис Pascal
function GetWord(Input: string): string
var
    Words: TWords;
    CurrentWord: integer;
    Result: string;
begin
    Words := Split(Input, ' ');
    Result := '';

    for CurrentWord := 1 to Words.Count do
        if MyLength(Words[CurrentWord])>MyLength(Result) then
            Result := Words[CurrentWord];

    GetWord := Result;
end;

function MyLength(Data: string): integer
var
    Character, Result: integer;
    Symbols: set of char;
begin
    Symbols := [];
    Result := 0;

    for Character := 1 to Length(Data)
        if not (Data[Character] in Symbols) then
        begin
            Inc(Result);
            Symbols := Symbols + [Data[Character]];
        end;

    MyLength := Result;
end;
 

Надеюсь, теперь ничего не напутал. :)

Тесты для двух возможных трактовок:
Код:
1) ru www -> ru,
2) ru www -> www.


Цитата:
Можно спросить какой компилятор это скомпилирует?

Да любой, хоть tp, хоть delphi (на паскаль указывают множества). Разумеется, при должном определении Split(), TWords и т.д.

P.S.: Очень странная тема, над ней какое-то проклятие и все она никак не завершится. :) Ну в самом деле, нейросети, бинарный поиск с сортировкой, что только здесь не упоминалось; не удивительно, что ТС "смылся" сразу после отправки первого же сообщения, с перепугу-то...

 
 
 
 Re: задача по программированию...
Сообщение23.01.2012, 22:51 
Аватара пользователя
Мы очень долго пытались сформулировать его задачу:)
Простите за нейросети и остальное:)

 
 
 [ Сообщений: 20 ]  На страницу Пред.  1, 2


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group