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

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

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

> Матрицы, Помогите доделать программу. Нужно срочно к среде!
Mr. Anderson
сообщение 18.12.2006 0:46
Сообщение #1


Новичок
*

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

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


unsure.gif
Цитата

Сформировать матрицу 7х7 с помощью функции Random. Из неё получить две матрицы. Первая получится перестановкой строк в порядке возрастания средних арифметических элементов в каждой строке. Вторая получится перестановой столбцов в порядке возрастания средних арифметических элементов в каждом столбце. Результат получить в текстовом файле. Проблема в том, что вторая матрица получается перестановкой столбцов первой матрицы (с переставленными строками), а не исходной. Что нужно добавить или исправить в программе? Заранее благодарю.


Код

program matrix;
uses crt;
const n=7;
      name='C:\neo.out';
      lin='*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*';
var fiogr:string[50];
    neo:text;
    sumstr,sumst:integer;
    srsumstr,srsumst:real;
    i,j:byte;
    t,f:boolean;
    v,u:real;
    c,d:shortint;
    a,b:array[1..n] of real;
    matr:array[1..n,1..n] of shortint;
    begin
    clrscr;
    assign(neo,name);
    rewrite(neo);
    writeln('Laboratornaya rabota 7');
    writeln('Vvedite FIO, gruppu');
    readln(fiogr);
    writeln('Zadacha na dvujmerniy massiv');
    writeln(neo,' Rezultat vichisleniy sojraneni v failie ', name);
    writeln(neo,'     Laboratornaya rabota 7');
    writeln(neo,'  Zadacha na dvujmerniy massiv');
    writeln(neo,lin);
    writeln(neo,fiogr);
    writeln(neo,lin);
    randomize;
    writeln(neo,'       Isjodnaya matritsa');
    for i:=1 to n do
    for j:=1 to n do
    matr[i,j]:=random(99)-49;
    for i:=1 to n do begin
    for j:=1 to n do begin
    write(neo,'  ',matr[i,j]:3);
    end;
    writeln(neo);
    end;
    writeln(neo,lin);
    writeln(neo,'  Sriedniye arifmieticheskiye strok');
    for i:=1 to n do begin
    sumstr:=0;
    for j:=1 to n do
    sumstr:=sumstr+matr[i,j];
    srsumstr:=sumstr/n;
    a[i]:=srsumstr;
    write(neo,'  a[',i,']=',a[i]:6:2);
    if i mod 4 =0 then writeln(neo);
    end;
    writeln(neo);
    writeln(neo,lin);
    writeln(neo,' Orsortirovanniy massiv iz srednij arifmeticheskij');
    writeln(neo,'             eliemientov strok');
    repeat
    t:=true;
    for i:=1 to n-1 do
    if a[i]>a[i+1] then
    begin
    for j:=1 to n do begin
    c:=matr[i,j];
    matr[i,j]:=matr[i+1,j];
    matr[i+1,j]:=c;
    end;
    u:=a[i];
    a[i]:=a[i+1];
    a[i+1]:=u;
    t:=false;
    end;
    until t;
    for i:=1 to n do
    begin
    write(neo,'  a[',i,']=',a[i]:6:2);
    if i mod 4 =0 then  writeln(neo);
    end;
    writeln(neo);
    writeln(neo,lin);
    writeln(neo,'  Otsortirovannaya matritsa po strokam');
    for i:=1 to n do begin
    for j:=1 to n do begin
    write(neo,'  ',matr[i,j]:3);
    end;
    writeln(neo);
    end;
    writeln(neo,lin);
    writeln(neo,'  Sriedniye arifmieticheskiye stolbtsov');
    for j:=1 to n do begin
    sumst:=0;
    for i:=1 to n do
    sumst:=sumst+matr[i,j];
    srsumst:=sumst/n;
    b[j]:=srsumst;
    write(neo,'  ','b[',j,']=',b[j]:6:2);
    if j mod 4 =0 then writeln(neo);
    end;
    writeln(neo);
    writeln(neo,lin);
    writeln(neo,'  Orsortirovanniy massiv iz srednij arifmeticheskij');
    writeln(neo,'             eliemientov stolbtsov');
    repeat
    f:=true;
    for j:=1 to n-1 do
    if b[j]>b[j+1] then
    begin
    for i:=1 to n do begin
    d:=matr[i,j];
    matr[i,j]:=matr[i,j+1];
    matr[i,j+1]:=d;
    end;
    v:=b[j];
    b[j]:=b[j+1];
    b[j+1]:=v;
    f:=false;
    end;
    until f;
    for j:=1 to n do
    begin
    write(neo,'  ','b[',j,']=',b[j]:6:2);
    if j mod 4 =0 then writeln(neo);
    end;
    writeln(neo);
    writeln(neo,lin);
    writeln(neo,'  Otsortirovannaya matritsa po stolbtsam');
    for i:=1 to n do begin
    for j:=1 to n do begin
    write(neo,'  ',matr[i,j]:3);
    end;
    writeln(neo);
    end;
    close(neo);
    readln;
    end.


Сообщение отредактировано: Mr. Anderson - 18.12.2006 12:56


Прикрепленные файлы
Прикрепленный файл  MATRIXX.PAS ( 3.27 килобайт ) Кол-во скачиваний: 168


--------------------
Каждое начало имеет свой конец
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



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