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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2009, 19:50   #1
BzDoN
 
Аватар для BzDoN
 
Регистрация: 29.12.2008
Сообщений: 9
По умолчанию Упорядочить буквы и цифры (Pascal)

Нады в Пасале ввести буквы и цифры. И так чтобы в конце он вывел по очереди их. Допустим вводишь " a931tz2" и чтобы в конце вывело "1239atz". Спасибо за ранее...
BzDoN вне форума Ответить с цитированием
Старый 26.02.2009, 21:22   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Так, например:
Код:
uses crt;
var
s,digs,bkv : string;
i,dc,bc : integer;

procedure srt(n : integer; var mas : string);
 var i,j,k : integer;
 ch : char;
 begin
 for i:=1 to n-1 do
  begin
  k := i;
  for j:=i+1 to n do
   if mas[j]<mas[k] then
    k := j;
  ch := mas[k];
  mas[k] := mas[i];
  mas[i] := ch;
  end;
 end;

begin
clrscr;
writeln('Enter string: ');
readln(s);
dc := 0;
bc := 0;
digs := '';
bkv := '';
for i:=1 to length(s) do
 if s[i] in ['0'..'9'] then
  begin
  inc(dc);
  digs := digs + s[i];
  end
 else
  begin
  inc(bc);
  bkv := bkv + s[i];
  end;
srt(dc,digs);
writeln('New string: ');
writeln(digs,bkv);
readln;
end.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.02.2009, 21:23   #3
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
По умолчанию

Берешь любой алгоритм сортировки и применяешь на строке.
Например,
Код:
var i,j:byte; s:string;
procedure SWAP(var a,b:char);
var c:char;
begin c:=a; a:=b; b:=c end;
begin readln(s); for i:=1 to length(s) do for j:=1 to length(s)-1 do if s[j]>s[j+1] then SWAP(s[j],s[j+1]); write(s); readln end.
Silence is of great value...
Jean-Esther вне форума Ответить с цитированием
Старый 26.02.2009, 21:32   #4
BzDoN
 
Аватар для BzDoN
 
Регистрация: 29.12.2008
Сообщений: 9
По умолчанию

СПАСИБО ВАМ ОГРОМНОЕ!!!
BzDoN вне форума Ответить с цитированием
Старый 26.02.2009, 21:33   #5
Chudo4258
Форумчанин
 
Аватар для Chudo4258
 
Регистрация: 19.02.2009
Сообщений: 622
По умолчанию

Код:
program Project2;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var M:set of char;
    S:string;
    i:integer;
    j:char;
begin
  { TODO -oUser -cConsole Main : Insert code here }
  readln(S);
  M:=[];
  for i:=1 to length(s) do
   M:=M+[s[i]];
  for j:='0' to '9' do
   if j in M then write(j,'  ');
  for j:='a' to 'я' do
   if j in M then write(j,'  ');
  readln;
end.
Жми на весы!!!
Chudo4258 вне форума Ответить с цитированием
Старый 26.02.2009, 21:34   #6
BzDoN
 
Аватар для BzDoN
 
Регистрация: 29.12.2008
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Jean-Esther Посмотреть сообщение
Берешь любой алгоритм сортировки и применяешь на строке.
Например,
Код:
var i,j:byte; s:string;
procedure SWAP(var a,b:char);
var c:char;
begin c:=a; a:=b; b:=c end;
begin readln(s); for i:=1 to length(s) do for j:=1 to length(s)-1 do if s[j]>s[j+1] then SWAP(s[j],s[j+1]); write(s); readln end.
По поводу этого кода.... В смысле приминять на строке??? Просто всё это в Паскале ввести и заработает?? А то прост мои знания минимальны в Паскале... и я не понял вот это: "Берешь любой алгоритм сортировки и применяешь на строке".
BzDoN вне форума Ответить с цитированием
Старый 27.02.2009, 06:51   #7
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

реализация сортировки подсчетом:
Код:
var s:string;
    a:array[0..255] of integer;
    i,j:integer;
begin
  readln(s);
  for i:=1 to length(s) do inc(a[ord(s[i])]);
  for i:=0 to 255 do
  for j:=1 to a[i] do write(chr(i));
end.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 27.02.2009, 17:54   #8
Jean-Esther
Пользователь
 
Аватар для Jean-Esther
 
Регистрация: 15.01.2009
Сообщений: 69
Счастье

Цитата:
Сообщение от BzDoN Посмотреть сообщение
По поводу этого кода.... В смысле приминять на строке??? Просто всё это в Паскале ввести и заработает?? А то прост мои знания минимальны в Паскале... и я не понял вот это: "Берешь любой алгоритм сортировки и применяешь на строке".
Нет, не работает. Пишет, строка длинная. Значит, строку №5 нужно разбить на две, как минимум. Вот, теперь работает.
Алгоритмы сортировки позволяют сортировать массивы (читай, наборы) сравниваемых элементов (обычно чисел, но символ также можно сравнивать — RTFM), а значит, если мы запустим любой алгоритм (в моем примере это пузырёк без какой-либо оптимизации) по отношению к строке, как к массиву символов (заметь, открытому — такое своеобразное условие, что кроме строки никакие другие массивы не могут быть открытыми в TP). Почему будет работать? Ну, во-первых, цифры имеют аски-коды 48-57, буквы — 70+ (точно не помню). Во-вторых, ну-с, в общем, программа работает, и это не может не радовать.

P.S. у Plague интересное решение.
Silence is of great value...
Jean-Esther вне форума Ответить с цитированием
Старый 28.02.2009, 19:13   #9
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Сортировка подсчетом вообще интересная вещь.
Сложность сортировки массива А(n), за N-шагов.
Но применима не для всех массивов.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Упорядочить слова в алфавитном порядке sasha45 Общие вопросы C/C++ 36 20.06.2011 11:03
Упорядочить содержимое ComboBox Ermiss Общие вопросы Delphi 2 25.01.2008 16:24
Помогите упорядочить строки матрицы по убыванию kitty Помощь студентам 1 06.12.2007 23:23
Упорядочить данные по фамилии автора-PASCAL Newnata Помощь студентам 2 20.11.2007 16:59