IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> массив строк, упорядочить по признаку
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


привет, помоги пожалуйста с задачей на Pascal

смысл вот в чем:
вводится с клавиатуры массив строк заданного размера, размер каждой строки тоже задан
необходимо отсортировать строки так чтобы буквы располагались по алфавиту по диагонали от а до я к примеру
вот так выглядит:
вводим
bcfd
adeh
cbfh
edcc

а получить должны вот что
adeh
cbfh
edcc
bcfd

если кол-во слов больше чем длина слова, то лесенка должна пойти в другую сторону, например вот так

aaaa
bbbb
cccc
dddd
eeee
gggg
hhhh
kkkk
слова не попадающие сюда выписать отдельно

вот что у меня получилось пока, вывел только сортировку по буквам, а как теперь вывести новый массив не могу понять


Program sort;
Uses crt;
Const
bukvi=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
Var
n,m,i,s,j,k,l,b,c: integer;
A: array[0..100] of string;
simv,sg,str:string;
bg:char;
{________zadanie nachalnih dannih__________________}
{}Begin
{} clrscr;
{} write('vvedite razmer massiva: ');
{} readln(n);
{} write('vvedite dlinu slova: ');
{} readln(s);
{} for i:=1 to n do begin
{} write('vvedite ',i,' element: ');
{} readln(a[i]);
{} if length(a[i])<>s then
{} begin
{} writeln('nevernoe kol-vo simvolov');
{} i:=i-1;
{} end;
{} end;
{----------------------------------------------------------------------------------------------}
writeln;
{-------------vivod ishodnogo massiva---------------------}
{}writeln('poluchennii massiv strok: ');
{}for i:=1 to n do
{}writeln(a[i]);
writeln;
{----------------------------------------------------------------------------}
{---------sortirovka-----------}
for j:=1 to s do {proveryaem bukvi}
begin
sg:='';
for i:=j to n do {cikl na stroki}
begin
sg:=sg+a[i,j];
end;
writeln(sg);
for k:=2 to Length(SG) do
begin
for l:= Length(sG) downto k do
begin
if SG[l-1]>SG[l] then
begin
bG:=SG[l-1];
SG[l-1]:=SG[l];
SG[l]:=bG;
end;
end;
{ readln;}
end;
writeln(SG);
writeln;
readln;
end;
readln;
end.


М
Теги!! Правила Форума, п.5, и правила раздела Задачи, п.2




Сообщение отредактировано: Lapp -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Разработчик
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
вот так выглядит:
вводим
bcfd
adeh
cbfh
edcc
Угу... А если вводим
bcfd
adсh
cbfh
adcc
, то тогда как быть? Что делать, если на какое-то место есть больше одного кандидата? Как тогда выбирать? С первой и третьей строкой понятно. Что делать со второй/четвертой?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 11.12.2019 9:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name