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

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

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

> Процедура сортировки
Orevin
сообщение 23.05.2007 12:59
Сообщение #1





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

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


Нужно написать процедуру, которая упорядочивает по возрастанию (обменом) 1 строку в массиве 10х10. В самой программе с помощью этой процедуры упорядочить все строки.
По всякому пытался делать, но правильно работать никак не хочет. Помогите, пожалуйста, исправить ошибки.


Прикрепленные файлы
Прикрепленный файл  pas.rar ( 614 байт ) Кол-во скачиваний: 100
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Айра
сообщение 23.05.2007 14:22
Сообщение #2


Профи
****

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

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


PROGRAM prog2;
TYPE
arr1=array[1..10,1..10] of integer;
VAR
i,j,k :integer;
A,a1 :arr1;
Fin, Fout :text;
PROCEDURE poryadok(k: integer; var a1: arr1);
var T,j,i:integer;
begin
for i:=2 to 10 do {значение k у тебя передается из программы}
{так что здесь изменять его не следует, воспользуйся лучше переменной i}
for j:=10 downto i do
if a1[k,j-1] > a1[k,j] then {сортировка у меня выглядит чуть-чуть по-другому}
begin
T:=a1[k,j-1];
a1[k,j-1]:=a1[k,j];
a1[k,j]:=T;
end;
end;

BEGIN
assign(Fout,'res2.txt');
rewrite(Fout);
assign(Fin,'dat2.txt');
reset(Fin);
for i:=1 to 10 do
for j:=1 to 10 do
begin
read(Fin,A[i,j]);
end;
close(Fin);
for k:=1 to 10 do
begin
poryadok(k, A);
end;
for i:=1 to 10 do
begin
for j:=1 to 10 do
begin
write(Fout,A[i,j]);
end;
writeln(Fout);
end;
close(Fout);
END.



Вроде все работает правильно..

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

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


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

 



- Текстовая версия 18.07.2025 0:46
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"