Версия для печати темы
Форум «Всё о Паскале» _ Теоретические вопросы _ Алфавитный порядок
Автор: 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.
Добавление: просто вводишь латинские буквы в разброс, а программа их упорядычивает по алфавиту(вот такие мы ,химики неграмотные
)
Автор: 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 по стокам есть куча инфы!
АПАЛ как всегда прав!
Автор: GoodWind 29.09.2004 10:10
apal, проверил программу? все работало номано..
Автор: APAL 29.09.2004 13:26
GoodWind
писал сразу на форуме.
счас проверил - вроде работает и твоя и моя.
Автор: GoodWind 30.09.2004 0:05
Цитата
счас проверил - вроде работает и твоя и моя
успокоил...