Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2009, 22:34   #1
Nynka
 
Регистрация: 07.12.2009
Сообщений: 3
По умолчанию Отсортировать слова в заданном списке по алфавиту.

1. Отсортировать слова в заданном списке по алфавиту.
2. Выполнить задание 1, при этом строка считывается из текстового файла.

помогите пожалуйста!!! а то до экзаменов не допустят(((((
Nynka вне форума Ответить с цитированием
Старый 07.12.2009, 23:22   #2
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Что за список? динамический список или массив? и на каком языке писать?
Alex_FF вне форума Ответить с цитированием
Старый 08.12.2009, 00:00   #3
Nynka
 
Регистрация: 07.12.2009
Сообщений: 3
По умолчанию

писать нужно на массиве
на языке Pascal
Nynka вне форума Ответить с цитированием
Старый 08.12.2009, 00:12   #4
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Текст русский?
и в какой среде писать, Turbo Pascal или Delphi?
Alex_FF вне форума Ответить с цитированием
Старый 08.12.2009, 00:13   #5
Nynka
 
Регистрация: 07.12.2009
Сообщений: 3
По умолчанию

не текст лучше на английском
Turbo Pascal
Nynka вне форума Ответить с цитированием
Старый 08.12.2009, 00:45   #6
Alex_FF
Удален
Форумчанин
 
Регистрация: 02.12.2009
Сообщений: 309
По умолчанию

Это только для английского текста

Код:
const
  Len = 250;
  Alphabet = ['A'..'Z', 'a'..'z'];

type
  TWords = Array[1..Len] of String;

{ Перевод слова в верхний регистр }
procedure UpCaseWord(var S: String);
var
  I: Integer;
  tmp: String;
begin
  tmp := '';
  for I := 1 to Length(S) do
    tmp := tmp + UpCase(S[I]);
  S := tmp;
end;

{ Возвращает TRUE если второе слово должно стоять выше первого по алфавиту }
function Comparison(S1, S2: String): Boolean;
var
  I, P: Integer;
begin
  Comparison := False;
  UpCaseWord(S1);
  UpCaseWord(S2);
  p := Length(S1);
  if Length(S1) > Length(S2) then P := Length(S2);
  I := 0;
  repeat
    Inc(I);
    if S1[I] > S2[I] then
    begin
      Comparison := True;
      Exit;
    end;
  until ((I >= P) or (S1[I] <> S2[I]));
  if (S1[I] = S2[I]) and (Length(S1) > Length(S2)) then Comparison := True;
end;

{ Сортировка }
procedure Sorting(var Words: TWords; N: Integer);
var
  I, J: Integer;
  temp: String;
begin
  for I := 1 to N - 1 do
    for J := I + 1 to N do
    begin
      if Comparison(Words[I], Words[J]) then
      begin
        temp := Words[I];
        Words[I] := Words[J];
        Words[J] := temp;
      end;
    end;
end;

{ Распаковка текста }
procedure Unpack(S: String; var Words: TWords; var N: Integer);
var
  I: Integer;
begin
  N := 0;
  I := 1;
  while I <= Length(S) do
  begin
    if S[I] in Alphabet then
    begin
      Inc(N);
      while (S[I] in Alphabet) and (I <= Length(S)) do
      begin
        Words[N] := Words[N] + S[I];
        Inc(I);
      end;
    end;
    Inc(I);
  end;
end;

var
  Words: TWords;
  N, I: Integer;
  S: String;
begin
  WriteLn('Vvedite stroky');
{  Assign(Input, 'input.txt');
  Reset(Input);    }
  ReadLn(S);
  Unpack(S, Words, N);
  Sorting(Words, N);
  for I := 1 to N do
    WriteLn(Words[I]);
  ReadLn;
end.
для того, чтобы строка из файла считалась, убери фигурные скобки перед Assign и после Reset.

Если нужно, чтобы вывод в файл был, то допиши сразу после Reset(Input); с новой строки:
Assign(Output, 'output.txt');
Rewrite(Output);
Alex_FF вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
Как удалить текст до слова, потом от слова ? littlecoder Общие вопросы Delphi 7 29.12.2008 00:57
Отсортировать числа по алфавиту Scorpil Общие вопросы C/C++ 3 18.10.2008 01:32
Отсортировать по алфавиту Rio309 Помощь студентам 2 09.03.2008 22:52
Отсортировать по алфавиту asale Microsoft Office Excel 5 19.11.2007 22:01