Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с задачей на матрицы, поменять строки 
:(
    Опции темы
madbiker
Дата 14.12.2005, 18:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



в данной вещественной матрице размером 6*9 поменяёте местами строку,содержашую элемент
с наибольшим значением,со строкой, содержащей элемент с наименьшим значением. Предпологается, что эти элементы единственный.

smile
PM MAIL   Вверх
АлексейМ
Дата 14.12.2005, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



А у тебя-то вообще вариантов нет? Хочешь, чтобы всё от начала до конца сделали тебе? smile Говори, чё конкретно не получается. А там посмотрим. На каком языке-то вообще прогу пишешь?
PM MAIL   Вверх
madbiker
Дата 14.12.2005, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



на паскале, мне срочняк надо,пожалуйста решите smile
PM MAIL   Вверх
darkart
Дата 15.12.2005, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: 26
Всего: 31



Ну вроде так...
Код

program ChanMatr;
const
  n=6;{кол-во строк}
  m=9;{кол-во столбцов}
type
  TMatrix=array[1..n,1..m] of real;
procedure CreateRandomMatrix(var Matrix:TMatrix);
{создание случайной матрицы}
var
  i,j:integer;
begin
  for i:=1 to n do
    for j:=1 to m do
      Matrix[i,j]:=10*random;
end;
procedure InputMatrix(var Matrix:TMatrix);{ввод матрицы}
var
  i,j:integer;
begin
  writeln('Please enter matrix(',n,'x',m,'):');
  for i:=1 to n do
  begin
    for j:=1 to m-1 do
      read(Matrix[i,j]);
    readln(Matrix[i,m]);
  end;
end;
procedure PrintMatrix(var Matrix:TMatrix);{печать маирицы}
var
  i,j:integer;
begin
  for i:=1 to n do
  begin
    for j:=1 to m-1 do
      write(Matrix[i,j]:5:2);
    writeln(Matrix[i,m]:5:2);
  end;
end;
function FindMinStringIndex(var Matrix:TMatrix):integer;{поиск номера строки с первым мин. эл-ом}
var
  i,j,index:integer;
  min:real;
begin
  min:=Matrix[1,1];
  index:=1;
  for i:=1 to n do
    for j:=1 to m do
      if Matrix[i,j]<min then
      begin
        min:=Matrix[i,j];
        index:=i;
      end;
  FindMinStringIndex:=index;
end;
function FindMaxStringIndex(var Matrix:TMatrix):integer;;{поиск номера строки с первым макс. эл-ом}
var
  i,j,index:integer;
  max:real;
begin
  max:=Matrix[1,1];
  index:=1;
  for i:=1 to n do
    for j:=1 to m do
      if Matrix[i,j]>max then
      begin
        max:=Matrix[i,j];
        index:=i;
      end;
  FindMaxStringIndex:=index;
end;
procedure ReplaceStrings(var Matrix:TMatrix;x,y:integer);{замена i-ой и j-ой строки}
var
  j:integer;
  tmp:real;
begin
  if x<>y then
  begin
    for j:=1 to m do
    begin
      tmp:=Matrix[x,j];
      Matrix[x,j]:=Matrix[y,j];
      Matrix[y,j]:=tmp;
    end;
  end;
end;
var
  Matrix:TMatrix;
begin
  InputMatrix(Matrix);{если ввод маирицы не нужен, то заменить наCreateRandomMatrix(Matrix)}
  writeln('Source matrix:');
  PrintMatrix(Matrix);
  ReplaceStrings(Matrix,FindMinStringIndex(Matrix),FindMaxStringIndex(Matrix));
  writeln('Matrix after replacing:');
  PrintMatrix(Matrix);
  readln;
end.

PM MAIL WWW ICQ Skype GTalk   Вверх
madbiker
Дата 18.12.2005, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



а без процедур и функций можно решить? smile
PM MAIL   Вверх
darkart
Дата 18.12.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 379
Регистрация: 9.11.2005

Репутация: 26
Всего: 31



Конечно можно smile
PM MAIL WWW ICQ Skype GTalk   Вверх
madbiker
Дата 18.12.2005, 23:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 29.11.2005

Репутация: нет
Всего: нет



ну а как? smile
PM MAIL   Вверх
Elfin
Дата 19.12.2005, 04:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 37
Регистрация: 28.10.2004

Репутация: нет
Всего: нет



Код

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const m=6; n=9;

type rec=record
      col,row: byte;
      end;

var matr: array [0..m-1,0..n-1] of real; i,j: integer;
mas: array [0..n-1] of real;
min,max:  rec;

begin
for i:=0 to m-1 do
for j:=0 to n-1 do
matr[i,j]:=random(10)+random;
writeln('Old Matrix');
for i:=0 to m-1 do
  begin
    for j:=0 to n-1 do
    write(matr[i,j]:4:2,'  ');
    writeln
  end;
min.col:=0;
min.row:=0;
for i:=0 to m-1 do
for j:=0 to n-1 do
if matr[i,j]<matr[min.col,min.row] then
  begin
    min.col:=i;
    min.row:=j;
  end;
max.col:=0;
max.row:=0;
for i:=0 to m-1 do
for j:=0 to n-1 do
if matr[i,j]>matr[max.col,max.row] then
  begin
    max.col:=i;
    max.row:=j;
  end;
for i:=0 to n-1 do
mas[i]:=matr[min.col,i];
for i:=0 to n-1 do
matr[min.col,i]:=matr[max.col,i];
for i:=0 to n-1 do
matr[max.col,i]:=mas[i];
writeln('New matrix');
for i:=0 to m-1 do
  begin
    for j:=0 to n-1 do
    write(matr[i,j]:4:2,'  ');
    writeln
  end;
readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0811 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.