Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Теоретические вопросы _ Алфавитный порядок

Автор: annna 27.09.2004 23:31

Есть задачка(напечатать в алфавитном порядке все строчные буквы, входящие в интервал из 100 литер), но не могу понять ,как они упорядываются...

Код

program lab10_1;
var st:string;
i,j:integer;
begin
writeln('Enter small letters');
readln(st);
for i:=1 to 322 do    {???}
for j:=1 to 100 do
if ord(st[j])=i then
write (st[j]);
readln;
end.

Добавление: просто вводишь латинские буквы в разброс, а программа их упорядычивает по алфавиту(вот такие мы ,химики неграмотные smile.gif )

Автор: GoodWind 27.09.2004 23:51

вааще условия задачи не понял, Вам так и продиктовали его ?

Автор: FreeMan 28.09.2004 0:31

Вводят строку. Загоняем в массив, сортируем, выводим на экран - задача для начинающих.

Автор: GoodWind 28.09.2004 0:38

аааа...берусь писАть..

Автор: APAL 28.09.2004 0:45

Не надо массива - все можно сделать в строке.
А условие надо бы уточнить...

Автор: annna 28.09.2004 0:47

FreeMan
Этот то понятно, хотелось бы узнать как происходит сортировка?
А программа вроде правильная.

Автор: APAL 28.09.2004 0:53

Может так:

Код
program lab10_1;
var st:string;
ch : char;
i,j:integer;
begin
writeln('Enter small letters');
readln(st);
for i:=1 to Length(St)-1 do    
for j:=i+1 to Length(st) do
if st[j]<st[i] then
Begin
  ch:=st[j];
  st[j]:=st[i];
  st[i]:=ch;
End;
For i:=1 to 100 do Write(st[i]);
readln;
end.

Автор: GoodWind 28.09.2004 0:54

Код
uses crt;

var str:string;

function sort(in_st:string):string;
var i,j:byte;
   ch:char;
begin
for i:=1 to length(in_st) do
begin
 for j:=1 to length(in_st) do
  begin
   if ord(in_st[j])>ord(in_st[i]) then
    begin
    ch:=in_st[i];
    in_st[i]:=in_st[j];
    in_st[j]:=ch;
    end;
  end;
end;
sort:=in_st;
end;

begin
clrscr;
write('Введите строку строчных латинских букв: ');readln(str);
writeln(sort(str));
readkey;
end.

-----
здесь все в строке сделано.

а упорядочиваются они в соответствии с ASCII кодом буквы,
тоесть у буквы b ASCII код больше ASCII кода буквы a
-----
всё, я спать пошел - у нас час ночи

Автор: APAL 28.09.2004 0:58

GoodWind
У тебя сортировка идет в обратном алфавитном порядке... и сам метод сортировки не очень...

Автор: GoodWind 28.09.2004 1:01

Цитата
У тебя сортировка идет в обратном алфавитном порядке... и сам метод сортировки не очень...

спать хочу....
ща переделаю.

брррр....чур меня работает номано !

а о методе - чё за 5 минут придумал, то и написал :D

---
и ваще спать пошел я 0:58 млин....а завтра на практику с утра.....

Автор: Romtek 28.09.2004 2:39

Цитата(APAL @ 27.09.04 20:45)
Не надо массива - все можно сделать в строке.

Строка, по ходу - это и есть массив (символов).

Автор: GoodWind 28.09.2004 10:18

всё, я проснулся, у кого там еще притензии к моей программе ?? :D
-----

Цитата
Строка, по ходу - это и есть массив (символов).

ну правильно...

Автор: Altair 28.09.2004 10:49

Цитата
это и есть массив (символов).

Ага, причем особый!
Нулевой элемент хранит истинную длинну строки!

Вопрос на засыпку:
Как укоротить на 5 длинну строки, используя нулевой эл-т. ? :D

Автор: APAL 28.09.2004 13:50

Опять про строки... Ну проходили мы уже это!
Где-то здесь есть целый трактат (статья) на эту тему, да и в задачах часто рассматривается.
Кто старое помянит - тому глаз вон! :D

Автор: Altair 29.09.2004 10:08

Ага. еще и в FAQ'e по стокам есть куча инфы!
АПАЛ как всегда прав! smile.gif

Автор: GoodWind 29.09.2004 10:10

apal, проверил программу? все работало номано..

Автор: APAL 29.09.2004 13:26

GoodWind
писал сразу на форуме.
счас проверил - вроде работает и твоя и моя. smile.gif

Автор: GoodWind 30.09.2004 0:05

Цитата
счас проверил - вроде работает и твоя и моя

успокоил...