|
|
|
Oskom Forums Добро пожаловать на Oskom Forums.
|
-
а слабо на макроассемблере?
-
Сообщение от Dodge
а слабо на макроассемблере?
это только для ярых фанатов... хотя не так уж и страшно на первый взгляд
-
Ну что на паскале никто не умеет програмить?!
-
По почкам резиновыми членами преподам, что суют своим студентам паскали, бэйсики и прочую херню.
Задача элементарная, пусть твой друг думает сам, а если он не может такую простую задачу решить, которая в 10 строчек максимум, пусть идёт учиться в другую специальность, пока не поздно.
-
Сообщение от Const
Задача элементарная, пусть твой друг думает сам, а если он не может такую простую задачу решить, которая в 10 строчек максимум, пусть идёт учится в другую специальность, пока не поздно.
Во-первых, это не друг- а двоюродная сестра.
Во-вторых, эту задачку задали в школе, согластно школьной программе, для допуска к зачёту.
-
Ну раз сестра и школа, тогда не будем столь резки.
-
ex-Developer
Вот и скажите мне после этого, что школа - это хорошо %)
Бесполезная трата 10-и лет жизни и нервов на никому ненужные "знания" %)
ЗЫ: я не помню стандартные паскалевские функции работы со строками уже... (так со школы ни разу и не пригодилось %) Разве что алгоритм могу рассказать %)
-
Не все школы одинакого полезны
Информатика всегда являлась проблемной сотроной многих школ.
Если некоторые директора школ и заставляют изменить программу образования, то другим глубоко пофиг на этот предмет и очень просто свалить всё на государство.
Но это уже другой вопрос, который можно обсудить в отдельном топике.
-
-
Сообщение от Eidolon
ЗЫ: я не помню стандартные паскалевские функции работы со строками уже... (так со школы ни разу и не пригодилось %) Разве что алгоритм могу рассказать %)
Ну на дельфи напиши, консольную )))
У меня под рукой вообще ниче кроме VS 2005 нету
-
Во, консольное приложение, внимание, эт на дельфи! На паскале по идее не совсем так но похоже.
Даже странно что вспомнил )
Код:
program Example;
{$APPTYPE CONSOLE}
uses
Windows,
SysUtils;
const
ARR_MAX_SIZE = 255;
type
TStringArray = array [0..ARR_MAX_SIZE] of string;
var
text: string;
arr: TStringArray;
i: integer;
// Разделяем исходный текст на массив строк
// символом-разделителем считается пробел
function splitString(text: string): TStringArray;
var
i, wordCount: integer;
newWord: string;
begin
wordCount := 0;
for i := 1 to Length(text) do begin
if (text[i] = #$20) then
begin
Result[wordCount] := newWord;
inc(wordCount);
if wordCount > ARR_MAX_SIZE then break;
newWord := '';
end
else
newWord := newWord + text[i];
end;
Result[wordCount] := newWord;
end;
// Проверяем наличие указанной строки в массиве строк
// лень писать что то другое, поэтому ищем тупо, перебором
function stringExists(s: string; arr: TStringArray): boolean;
var
i: integer;
begin
Result := true;
for i:=0 to ARR_MAX_SIZE do if (arr[i] = s) then Exit;
Result := false;
end;
// Принимаем заданную строку текста и возвращаем массив строк
// в котором каждая строка-слово встречается только один раз
function verifyString(text: string): TStringArray;
var
i, j: integer;
oldList, newList: TStringArray;
begin
oldList := splitString(text);
j := 0;
for i:=0 to Length(oldList) do begin
if not(stringExists(oldList[i], newList)) then
begin
newList[j] := oldList[i];
inc(j);
end;
end;
Result := newList;
end;
// Точка входа приложения
begin
System.Writeln('Console application started...');
System.Writeln('Type input text: ');
// коротко, алгоритм:
// считываем строку текста
System.Readln(text);
// выводим ее же на экран для наглядности
System.Writeln('Input text: ' + text);
// делим строку на слова, и исключаем повторения
arr := verifyString(text);
// полученный массив опять записываем в строку
text := '';
for i:=0 to Length(arr) do
if arr[i] <> '' then
text := text + arr[i] + ' ';
// и выводим ее на экран, теперь две строки можно визуально сравнить
System.Writeln('Verified text: ' + text);
// ждем нажатия любой клавишы
System.Writeln('Press any key to exit...');
System.ReadLn;
end.
-
Urbi et Orbi
Что, Варлан, издеваются над тобой изверги?
Обратись на специализированные форумы, там быстрее помогут =)
-
Паскаль не помню, но могу точно сказать -
Во~первых нада отрезать "System" - это как я понял объект приложения. Во~вторых нада чтото делать с T<name> классами, это vcl'ная побалдень.
-
Сообщение от Dodge
Во~вторых нада чтото делать с T<name> классами, это vcl'ная побалдень.
type
TStringArray = array [0..ARR_MAX_SIZE] of string;
Причем тут VCL? )))
-
type
TStringArray = array [0..ARR_MAX_SIZE] of string;
блин это в паскале определение типа так выглядит? ... =))
typedef char TStringArray[ARR_MAX_SIZE];
это типа одно и то же?
если так тода норм.
З.Ы. Просто в vcl все классы начинаются с Т...=)
-
Сообщение от Dodge
это типа одно и то же?
именно
Сообщение от Dodge
З.Ы. Просто в vcl все классы начинаются с Т...=)
... привычка
-
ex-Developer
Сообщение от MoR
Ну на дельфи напиши, консольную )))
У меня под рукой вообще ниче кроме VS 2005 нету :)
А у меня кроме VS 2003 %)
Дельфями никогда и не маялся, максимум C++ билдером, и то 100 лет назад %)
-
Можно уточнить?
"Дана произвольная строка символов. Отредактировать заданную строку, удалив из неё все слова встречающиеся более одного раза. Распечатать внове полученное слово."
Удалить слова? Как определяется понятие слово? Набор символов, разделённых пробелом, табом, любым whitespace-ом или каким-то ещё символом?
В результирующей строке, символы-разделители повторяющиеся больше одного раза в заданной строке, должны сохраняться?
-
Было:
"В этом топе все строят из себя умников, надо тоже отписаться в этоп топе."
должно стать:
"В этом все строят из себя умников, надо тоже отписаться в этом ."
еще желательно и без лишних пробелов
-
А если есть (считай _ пробелами):
"Этот_топ___вошёл___в_топ_100" , то должно стать:
"Этот____вошёл___в__100" или "Этот_вошёл_в_100"?
И где сказано, что слова должны быть разделены именно пробелом?
Фтрэш таких учителей, которые дают подобные условия задачи.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
Правила форума
|