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

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

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

> Не сортируются элементы массива структур, Не сортируются элементы массива структур
сообщение
Сообщение #1





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

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


Здравствуйте! Есть программа на FreePaskal.
Возникла следующая проблема: при сортировке двумерного массива структур по ключу sum элементы массива не сортируются. Но если сортировать не элементами массива, а только полями структуры, например sum, то тогда сортировка проходит нормально. Но сортируются только значения поля sum структуры , а не структуры целиком.
Что самое интересное, в случае сортировки элементами массива, поcле сортировки переменные str и stolb становятся равными 0, хотя они должны иметь значение 5.
Заранее большое спасибо всем ответившим за помощь и оказанное внимание!

type Value = record
a,b,i,j,sum:integer;
end;

const A = 5;
const B = 5;

var
temp: Value;
v : array[1..A,1..B] of Value;
temp: Value;
i,j,k,m,n,c,z,x,temp_1:Integer;
str, stolb : Integer;

{Сортируем двумерный массив. Сортируем элементы массива структур.}
writeln();
writeln();
writeln(str);
for c:=1 to str*stolb do
begin
{Упорядочиваем в строках}
for i:=1 to str do
begin
for j:=1 to stolb do
begin
if v[i][j].sum > v[i][j+1].sum then
begin
temp:=v[i][j];
v[i][j] := v[i][j+1];
v[i][j+1] := temp;
end;
end;
end;
{Упорядочиваем в столбцах}
for x:=1 to stolb do
begin
for z:=0 to str do
begin
if v[z][x].sum > v[z][x+1].sum then
begin
temp := v[z][x];
v[z][x] := v[z][x+1];
v[z][x+1] := temp;
end;
end;
end;
writeln(str);
end;

{Сортируем двумерный массив. Сортируем поля структуры массива структур.}
const A = 5;
const B = 5;

var
temp: Value;
i,j,k,m,n,c,z,x,temp_1:Integer;
str, stolb : Integer;
x0:Char;
{Создаем массив записей типа Value}
v : array[1..A,1..B] of Value;
{Сортируем двумерный массив}
writeln();
writeln();
writeln(str);
for c:=1 to str*stolb do
begin
{Упорядочиваем в строках}
for i:=1 to str do
begin
for j:=1 to stolb do
begin
if v[i][j].sum > v[i][j+1].sum then
begin
temp_1:=v[i][j].sum;
v[i][j].sum := v[i][j+1].sum;
v[i][j+1].sum := temp_1;
end;
end;
end;
{Упорядочиваем в столбцах}
for x:=1 to stolb do
begin
for z:=0 to str do
begin
if v[z][x].sum > v[z][x+1].sum then
begin
temp_1 := v[z][x].sum;
v[z][x].sum := v[z][x+1].sum;
v[z][x+1].sum :=temp_1;
end;
end;
end;
end;


Сообщение отредактировано: volvo -


Прикрепленные файлы
Прикрепленный файл  Lab7_element.pas ( 2.64 килобайт ) Кол-во скачиваний: 281
Прикрепленный файл  Lab7.pas ( 2.72 килобайт ) Кол-во скачиваний: 272
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





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