Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531

Расставить элементы строк с четными номерами матрицы в порядке убывания.

24.09.2008, 22:53. Показов 2597. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте ув. программисты, вот у меня есть задачка...
Условие:Дана матрица A порядка n. Расставить элементы строк с четными номерами матрицы в порядке убывания.(Ну и записать его в текстовый файл, но это не важно...)
Решил использовать такой код для сортировки:

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.09.2008, 22:53
Ответы с готовыми решениями:

Расставить эл. строк с четными № в порядке убываниядке
Дана матрица A порядка n. Расставьте элементы строк с четными номерами матрицы в порядке убывания.

Вывести элементы массива с четными номерами в порядке возрастания номеров
Данный массив А размера N (N - четное число). Вывести его элементы с четными номерами в порядке возрастания номеров: А2, А4, а 6, ..., А...

Вывести элементы матрицы, расположенные в строках с четными номерами
Помогите плиз зделать задачку Дана матрица размера M x N Вывести её элементы расположенные в строках с четными номерами...

5
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
24.09.2008, 22:59  [ТС]
Ну да, забыл я про регистрацию, кстати stroka заранее описана, так что не думайте об этом, матрица вводится заранее пользователем и используется этой процедурой для сортировки.
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.09.2008, 00:26
Что-то совсем неправильно написана программа, поэтому трудно править. Я лучше Вам напишу другую, а Вы исправите свою.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
25.09.2008, 01:11  [ТС]
ув. Puporev
Не хотел бы усомнится в ваших знаниях, т.к. читал форум и видел что человек вы знающий паскаль, но помоему вы не правильно поняли условие задачи... разжовываю ... я писал ранее что мне надо сделать сортировку чётных элементов и по убыванию, в вашем коде во-первых я не понял почему
if i mod 2=0 then //если строка нечетная
(как мне казалось 1 mod 2=5??? а например 2 mod 2=0).Мне надо рассортировать чётные элементы во всех строках, а не в чётных или не чётных (ну типа элементы A[1,2] A[1,4] и т.д.).Я использовал строчный массив не для матрицы, а т.к. думал занести в этот массив все чётные элементы i-ой строки
Code
1
2
3
4
5
6
for j:=1 to n do
   If j mod 2=0 then
   begin
    b[e]:=a[i,j];
    e:=e+1;
   end;
потом рассортировать этот строчный массив
Code
1
2
3
4
5
6
7
8
9
10
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;
а потом всем чётным элементам i-ой строки присвоить значения отсортированного одномерного массива...
Code
1
2
3
4
5
6
7
  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 секунд
Всё работает !!!! Ухааа, как всегда ошибка была в теле программы, а не в описании процедур... рассказываю мот кому пригодится... значит процедуру сортировки малёк подкорректировал
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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;
а ошибка у меня была вот в чём, я использовал в своей сортировке 'd' имея ввиду что d=n div 2; и использовал его как бы числом которое показывает количество чётных чисел...Вот так раньше тело программы у меня было такое...
Code
1
2
3
4
5
begin
 d:=(n div 2);
 vvodmatr(a,'matrica1.txt',n);
 provepka(a,'matrica2.txt');
end.
и конечно я не задумывался что d у меня здесь равно '0'... а теперь я сделал так...
Code
1
2
3
4
5
begin
 vvodmatr(a,'matrica1.txt',n);
  d:=(n div 2);
 provepka(a,'matrica2.txt');
end.
И всё норм Puporev всё-таки не так понял моё условие задачи и кстати этот метод пузырька я просто вычитал и использовал на своём частном примере, он не совсем стандартный
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
25.09.2008, 07:10
Извини конечно, не понял я потому что задание надо излагать четче и желательно с примером, что имеем и что хотим, да и времени у меня был третий час ночи.
0
 Аватар для lexus_ilia
3067 / 727 / 69
Регистрация: 24.09.2008
Сообщений: 1,531
25.09.2008, 14:12  [ТС]
Задание изложена в такой же форме и у меня в методичке так-что не легко приходится, а тему можно close.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.09.2008, 14:12
Помогаю со студенческими работами здесь

Расставить цифры в порядке убывания.
Нужно расставить любые пять цифр в порядке убывания. Помогите, пожалуйста.

Расставить цифры в числе в порядке убывания
Нужно написать прогу, в которую вводится число, а она выдаёт максимальное число из цифр заданного числа. Можно использовать циклы фор,...

Напечатать элементы второй строки матрицы в порядке убывания
Дано квадратную матрицу размерности n x n.Напечатать элементы второй строки в порядке убывания.

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

Среднее арифметическое значение строк массива с четными номерами
С помощью текстового редактора «Блокнот» сформируйте текстовый файл, «Data1.txt», содержащий 10 строк по 5 произвольных целых чисел в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru