3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
1 | |
Расставить элементы строк с четными номерами матрицы в порядке убывания.24.09.2008, 22:53. Показов 2411. Ответов 5
Метки нет (Все метки)
Здравствуйте ув. программисты, вот у меня есть задачка...
Условие:Дана матрица A порядка n. Расставить элементы строк с четными номерами матрицы в порядке убывания.(Ну и записать его в текстовый файл, но это не важно...) Решил использовать такой код для сортировки: Код
procedure provepka(var a:matr;namefil:stroka); var dop:real; b:array [1..100] of real; w:text; begin assign(w,namefil); rewrite(w); for i:=1 to n do e:=1; begin for j:=1 to n do If (j mod 2)=0 then begin b[e]:=a[i,j]; e:=e+1; end; for l:=2 to d do begin for e:=d downto l do if b[e-1]<b[e] then begin dop:=b[e-1]; b[e-1]:=b[e]; b[e]:=dop; end; end; e:=1; for j:=1 to n do if (j mod 2)=0 then begin a[i,j]:=b[e]; e:=e+1; end; end; for i:=1 to n do begin writeln(w); for j:=1 to n do write(w,a[i,j]:10:3); end; close(w); end; Для сортировки использовал пузырьковый метод.
0
|
24.09.2008, 22:53 | |
Ответы с готовыми решениями:
5
Расставить эл. строк с четными № в порядке убываниядке Вывести элементы массива с четными номерами в порядке возрастания номеров Вывести элементы матрицы, расположенные в строках с четными номерами Расставить цифры в порядке убывания. |
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
24.09.2008, 22:59 [ТС] | 2 |
Ну да, забыл я про регистрацию, кстати stroka заранее описана, так что не думайте об этом, матрица вводится заранее пользователем и используется этой процедурой для сортировки.
0
|
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
25.09.2008, 00:26 | 3 |
Что-то совсем неправильно написана программа, поэтому трудно править. Я лучше Вам напишу другую, а Вы исправите свою.
Код
uses crt; var R:array[1..15,1..15]of integer;//матрица, а не линейный массив, как у Вас n,i,j,k,x:integer; begin clrscr; write('n=');readln(n); writeln('Ishodnaia matrica:'); for i:=1 to n do //создаем и выводим на экран матрицу (у Вас чтение из файла) begin for j:=1 to n do begin R[i,j]:=random(20); write(R[i,j]:3); end; writeln; end; readln; for i:=1 to n do if i mod 2=0 then //если строка нечетная begin for j:=1 to m-1 do //сортируем методом пузырька (Ваш метод не понял) for k:=1 to m-1 do if R[i,k]>R[i,k+1] then begin x:=R[i,k]; R[i,k]:=R[i,k+1]; R[i,k+1]:=x; end; end; for i:=1 to n do //выводим на экран begin for j:=1 to m do write(R[i,j]:3); writeln; end; readln; end.
0
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
25.09.2008, 01:11 [ТС] | 4 |
ув. Puporev
Не хотел бы усомнится в ваших знаниях, т.к. читал форум и видел что человек вы знающий паскаль, но помоему вы не правильно поняли условие задачи... разжовываю ... я писал ранее что мне надо сделать сортировку чётных элементов и по убыванию, в вашем коде во-первых я не понял почему Код
for j:=1 to n do If j mod 2=0 then begin b[e]:=a[i,j]; e:=e+1; end; Код
for l:=2 to d do begin for e:=d downto l do if b[e-1]<b[e] then begin dop:=b[e-1]; b[e-1]:=b[e]; b[e]:=dop; end; end; Код
e:=1; for j:=1 to n do if j mod 2=0 then begin a[i,j]:=b[e]; e:=e+1; end; Добавлено через 32 минуты 15 секунд Всё работает !!!! Ухааа, как всегда ошибка была в теле программы, а не в описании процедур... рассказываю мот кому пригодится... значит процедуру сортировки малёк подкорректировал Код
procedure provepka(var a:matr;namefil:stroka); var dop:real; b:array [1..100] of real; w:text; begin assign(w,namefil); rewrite(w); for i:=1 to n do begin for l:=1 to d do j:=2; begin for e:=d downto l do if a[i,j]<a[i,j+2] then begin dop:=a[i,j]; a[i,j]:=a[i,j+2]; a[i,j+2]:=dop; end; j:=j+2; end; end; for i:=1 to n do begin writeln(w); for j:=1 to n do write(w,a[i,j]:10:3); end; close(w); end; Код
begin d:=(n div 2); vvodmatr(a,'matrica1.txt',n); provepka(a,'matrica2.txt'); end. Код
begin vvodmatr(a,'matrica1.txt',n); d:=(n div 2); provepka(a,'matrica2.txt'); end.
0
|
Почетный модератор
64304 / 47599 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
|
|
25.09.2008, 07:10 | 5 |
Извини конечно, не понял я потому что задание надо излагать четче и желательно с примером, что имеем и что хотим, да и времени у меня был третий час ночи.
0
|
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
|
|
25.09.2008, 14:12 [ТС] | 6 |
Задание изложена в такой же форме и у меня в методичке так-что не легко приходится, а тему можно close.
0
|
25.09.2008, 14:12 | |
25.09.2008, 14:12 | |
Помогаю со студенческими работами здесь
6
Расставить цифры в числе в порядке убывания Напечатать элементы второй строки матрицы в порядке убывания Вычислить суммы элементы строк матрицы, номера которых определяются номерами положительных элементов вектора Среднее арифметическое значение строк массива с четными номерами Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |