Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18

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

18.11.2011, 22:36. Показов 2474. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста!!!...
дана матрица вещественных чисел. упорядочить ее строки по неубыванию суммы их элементов.
не могу понять, как упорядочить строки...
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.11.2011, 22:36
Ответы с готовыми решениями:

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

Написать программу , которая вычисляет сумму элементов двумерного массива по строкам
помогите плз.

Написать программу, которая вычисляет сумму элементов двумерного массива по строкам
Написать программу, которая вычисляет сумму элементов двумерного массива по строкам.

13
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
19.11.2011, 00:40
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
uses crt;
var a: array [1..100,1..100] of real;
    b: array [1..100] of real;
    n,i,j: integer;
    buf,sum: real;
begin
randomize;
write ('Razmer matrizy ');
readln (n);
writeln ('Dana matriza');
for i:=1 to n do
    begin
    sum:=0;
    for j:=1 to n do
        begin
        a[i,j]:=random(101)-50;
        write (a[i,j]:6:1);
        sum:=sum+a[i,j];
        end;
    b[i]:=sum;
    writeln;
    end;
writeln ('Summy strok matrizy');
for i:=1 to n do
    write (b[i]:6:1);
j:=1;
while j<=n*2 do
      begin
      for i:=1 to n-1 do
          if b[i]>b[i+1] then
             begin
             buf:=b[i];
             b[i]:=b[i+1];
             b[i+1]:=buf;
             for j:=1 to n do
                 begin
                 buf:=a[i,j];
                 a[i,j]:=a[i+1,j];
                 a[i+1,j]:=buf;
                 end;
             end;
       inc(j);
       end;
writeln;
writeln ('Uporjadochennaja matriza');
for i:=1 to n do
    begin
    for j:=1 to n do
        write (a[i,j]:6:1);
    writeln;
    end;
writeln ('Summy strok matrizy');
for i:=1 to n do
    write (b[i]:6:1);
readln;
end.
1
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18
29.11.2011, 15:32  [ТС]
а как сделать, чтобы матрица выходила упорядоченной, в виде матрицы, а не просто столбиками?...
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
29.11.2011, 17:18
наночка, поясни, что ты имеешь в виду под упорядочением? ведь по условию надо переставить строки так, чтобы сумма их элементов шла по возрастанию...
что еще надо сделать: сортировать элементы строк или суммы по строкам расположить шестым столбцом? поясни
0
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18
30.11.2011, 10:22  [ТС]
то есть должна выходить матрица со строками, сумма элементов первой строки должна быть больше второй, сумма элементов второй должна быть больше третьей и т.д. сумма просто должна быть посчитана, а строки матрицы должны быть расположены в новом порядке, в правильном.
0
25 / 25 / 30
Регистрация: 22.10.2011
Сообщений: 160
30.11.2011, 11:20
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program zashita;
uses crt;
const Nmax=20;
type mass=array[1..Nmax] of integer;
     matr=array[1..nmax] of mass;
     sum=array[1..Nmax] of integer;
 
     procedure vvod (var a:matr; var n,m:byte);
     var i,j:byte;
     begin
    writeln('vvedite chislo strok');
        repeat
           readln(n);
        until n in [1..nmax];
          begin
        writeln('vvedite chislo stolbov');
             repeat
               readln(m);
             until m in [1..nmax];
     writeln('vvod massiva');
     for i:=1 to N do
         for j:=1 to m do
         read(a[i,j]);
     end;
     end;
 
 
      procedure massiv (var sum:sum;a:matr;n,m:byte);
     var i,j,k:byte; r:integer;
         begin
             for i:=1 to n do
        for j:=1 to n do
        sum[i]:=sum[i]+a[i,j];
    end;
 
 
     procedure sort (var a:matr;n,m:byte;sum:sum);
     var i,j:byte;
      c:integer;
      x:mass;
          begin
            for i:=1 to n-1 do
               for j:=i+1 to n do
               if sum[i]>sum[j] then
                   begin
                    c:=sum[i];
                    sum[i]:=sum[j];
                    sum[j]:=c;
                    x:=a[i];
                    a[i]:=a[j];
                    a[j]:=x;
                   end;
          end;
 
          procedure vivod (a:matr;n,m:byte);
          var i,j:byte;
          begin
              writeln ('sort mass');
              for i:=1 to n do
                begin
                for j:=1 to m do
                write (a[i,j]:4);
                writeln;
                end;
          end;
var a:matr;s:mass;c:sum; i,n,m,j:byte;
     begin
     clrscr;
     vvod(a,n,m);
   massiv(c,a,n,m);
 
     sort(a,n,m,c);
     vivod(a,n,m);
readln;
readln;
     end.
[PASCAL]
[/PASCAL]

Добавлено через 10 минут
пардон не заметил... mass и sum должны быть типа real
1
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
30.11.2011, 15:51
наночка, смотри скриншот, разве именно этоу задачу не выполняет моя программа? сначала случайно вывела строки, потом переставила строки в соответствии с возрастанием суммы. Или не так?
Миниатюры
Написать программу, которая вычисляет сумму элементов двумерного массива по столбцам.  
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
30.11.2011, 15:52
а сумму строк я вывожу для доказательства того, что перестановка строк произведена...
0
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18
30.11.2011, 21:54  [ТС]
у меня вместо новой матрицы выходили нолики
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
30.11.2011, 22:10
наночка, проверяю и в Турбо, и в АБЦ, и в АБЦ нет - все нормально, не знаю, в чем дело..
1
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18
02.12.2011, 09:08  [ТС]
спасибо, теперь всё работает))
0
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18
11.12.2011, 21:54  [ТС]
а как можно этот же пример записать через функцию, сформированную по признаку повторяемости?
0
Почетный модератор
 Аватар для КонецСвета
7966 / 3937 / 2464
Регистрация: 30.10.2011
Сообщений: 5,377
11.12.2011, 22: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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
uses crt;
type mat=array [1..100,1..100] of real;
     mas=array [1..100] of real;
var a: mat;
    b: mas;
    n,i,j: integer;
 
function Sums(ns: integer):real;
var sum: real;
begin
sum:=0;
for j:=1 to n do
    sum:=sum+a[ns,j];
Sums:=sum;
end;
 
procedure Sort (b:mas;var a:mat);
var buf: real;
    j: integer;
begin
j:=1;
while j<=n*2 do
      begin
      for i:=1 to n-1 do
          if b[i]>b[i+1] then
             begin
             buf:=b[i];
             b[i]:=b[i+1];
             b[i+1]:=buf;
             for j:=1 to n do
                 begin
                 buf:=a[i,j];
                 a[i,j]:=a[i+1,j];
                 a[i+1,j]:=buf;
                 end;
             end;
       inc(j);
       end;
end;
 
begin
randomize;
write ('Razmer matrizy ');
readln (n);
writeln ('Dana matriza');
for i:=1 to n do
    begin
    for j:=1 to n do
        begin
        a[i,j]:=random(101)-50;
        write (a[i,j]:6:1);
        end;
    writeln;
    end;
writeln ('Summy strok matrizy');
for i:=1 to n do
    begin
    b[i]:=SumS(i);
    write (b[i]:6:1);
    end;
Sort (b,a);
writeln;
writeln ('Uporjadochennaja matriza');
for i:=1 to n do
    begin
    for j:=1 to n do
        write (a[i,j]:6:1);
    writeln;
    end;
writeln ('Summy strok matrizy');
for i:=1 to n do
    begin
    b[i]:=SumS(i);
    write (b[i]:6:1);
    end;
readln;
end.
1
0 / 0 / 0
Регистрация: 07.11.2011
Сообщений: 18
11.12.2011, 23:01  [ТС]
спасибо=)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.12.2011, 23:01
Помогаю со студенческими работами здесь

Составить программу,которая вычисляет сумму элементов столбцов двумерного массива
1.Составить программу,которая вычисляет сумму элементов столбцов двумерного массива и записывает их в одномерный массив. 2.Составить...

Написать программу, которая вычисляет среднее арифметическое элементов двумерного массива.
Написать программу, которая вычисляет среднее арифметическое элементов двумерного массива. Массив вводится во время работы программы.

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

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

Написать программу, которая вычисляет сумму элементов двумерного массива по столбцам. Организовать ввод массива с клавиатуры по строкам
Написать программу, которая вычисляет сумму элементов двумерного массива по столбцам. Организовать ввод массива с клавиатуры по строкам.


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru