Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2010, 23:06   #1
Яна Сафронова
Пользователь
 
Регистрация: 11.04.2010
Сообщений: 15
Сообщение Паскаль! Готовая рабочая прога, но немного не понятно!!! Помогите...

Код:
Program Matrix;
Const
  Range=3;
Type
  Matr=array[0..Range-1,0..Range-1] of byte;
  MMatr=array[0..Range-1,0..Range-1] of integer;
Var
  xstr,str,stb:byte;
  Vector:array[0..1,0..Range-1] of byte;
  MatrA,MatrB:Matr;
  MatrC:MMatr;
  Min,idx:byte;

Procedure ReadMatr(FileName:string; Var MatrRead:Matr);
var
  f:Text;
  istr,jstb:byte;
  Elem:string;
  Code:integer;

begin
  Assign(f,FileName);
  reset(f);
  for istr:=0 to Range-1 do
    begin
      for jstb:=0 to Range-1 do
        begin
          readln(f,Elem);
          write(' ',Elem);
          Val(Elem,MatrRead[istr,jstb],Code)
        end;
      writeln
    end;
  Close(f);
end;

Procedure MulMatr(Var MulMat:MMatr; MatrixA,MatrixB:Matr);
var
  istr,jstb,k:byte;
  summa:integer;

begin
  for istr:=0 to Range-1 do
    for jstb:=0 to Range-1 do
      begin
        summa:=0;
        for k:=0 to Range-1 do
          summa:=summa+MatrixA[istr,k]*MatrixB[istr,jstb];
        MulMat[istr,jstb]:=summa
      end;
  writeln;
  writeln;
  writeln('MatrixC=MatrixA*MatrixB');
  writeln;
  for istr:=0 to Range-1 do
    begin
      for jstb:=0 to Range-1 do
        begin
          case MulMat[istr,jstb] of
            0..9:write('  ');
            10..99:write(' ');
          end; {case}
          write(' ',MulMat[istr,jstb])
        end;
      writeln
    end;
  writeln
end;

BEGIN
  writeln('MatrixA');
  writeln;
  ReadMatr('matrixa.txt',MatrA);
  writeln;
  writeln;
  writeln('MatrixB');
  writeln;
  ReadMatr('matrixb.txt',MatrB);
  MulMatr(MatrC,MatrA,MatrB);
  for str:=0 to Range-1 do
    for stb:=0 to Range-1 do
      MatrC[str,stb]:=MatrA[str,stb];
  FillChar(Vector,SizeOf(Vector),0);
  for str:=0 to Range-1 do
    begin
      Vector[0,str]:=str;
      Min:=MatrC[str,0];
      for stb:=1 to Range-1 do
        begin
          if Min>MatrC[str,stb] then Min:=MatrC[str,stb]
        end;
      Vector[1,str]:=Min
    end;
  for str:=0 to Range-2 do
    for xstr:=str+1 to Range-1 do
      begin
        if Vector[1,str]>Vector[1,xstr] then
          begin
            Min:=Vector[1,xstr];
            idx:=Vector[0,xstr];
            Vector[1,xstr]:=Vector[1,str];
            Vector[0,xstr]:=Vector[0,str];
            Vector[1,str]:=Min;
            Vector[0,str]:=idx
          end
      end;
  writeln;
  writeln('Sorting MatrixA');
  writeln;
  for str:=0 to Range-1 do
    begin
      for stb:=0 to Range-1 do
        begin
          MatrA[str,stb]:=MatrC[Vector[0,str],stb];
          write(' ',MatrA[str,stb])
        end;
      writeln
    end;
  MulMatr(MatrC,MatrA,MatrB);

  writeln;
  writeln;
  writeln('Press key "ENTER"');
  readln
END.

Как заменить Range на
n_max=число;
m_max=число;
И почему вместо n и m написано Range-1????
И вообще кто-нибудь может написать коментарии к программе? Просто я вообще не понимаю что к чему? Особенно с векторами?
Да, и желательно пояснить что такое xstr, FillChar(Vector,SizeOf(Vector),0);

Последний раз редактировалось Stilet; 12.05.2010 в 14:07.
Яна Сафронова вне форума Ответить с цитированием
Старый 12.05.2010, 00:13   #2
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Для начала было бы неплохо дать условие задачи
Базиля вне форума Ответить с цитированием
Старый 12.05.2010, 00:15   #3
Яна Сафронова
Пользователь
 
Регистрация: 11.04.2010
Сообщений: 15
По умолчанию

1)Ввести матрицу А и матрицу В
2)Перемножить матрицу А и матрицу В (С=А*В)
3)Вывести матрицу С
4)Переставить строки в матрице А в соответствии в возрастанием минимальных элементов строк.
5) Перемножить отсортированую матрицу А с той же матрицей В
(С=А(отсортированая)*В)
6) Вывести эту матрицу С
Зарание спасибо!!!
Яна Сафронова вне форума Ответить с цитированием
Старый 12.05.2010, 00:22   #4
Базиля
Участник клуба
 
Аватар для Базиля
 
Регистрация: 03.12.2009
Сообщений: 1,013
По умолчанию

Яна Сафронова
Тебе к какому дню нужно? Просто чет я посмотрел в коде, как я догадался не ты писала. Много ненужного, не понимаю для чего это писал человек, наверное чтобы выпендриться и как-будто запутать тебя.(хотя я возможно ошибаюсь, каждый так сказать пишет по своему)
В общем могу написать завтра тебе внятный код со всем комментариями, если будет не поздно
P.S. по условию о файлах ни слова, к чему использован файл в коде?

Последний раз редактировалось Базиля; 12.05.2010 в 00:24.
Базиля вне форума Ответить с цитированием
Старый 12.05.2010, 00:26   #5
Яна Сафронова
Пользователь
 
Регистрация: 11.04.2010
Сообщений: 15
По умолчанию

Будет очень прекрасно Базиля!!! Спасибо!!! Только вот единственное не надо использовать такие функции как uses crt, тип byte,boolean, вообщем как можно проще... И обязательно все сделать с процедурами и функциями...
Яна Сафронова вне форума Ответить с цитированием
Старый 12.05.2010, 01:42   #6
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
Смех

Код:
Program Matrix;
begin
writeln('ПРЕЯТНО ПОЗНАКОМИТЬСЯ ЭТО МАТРИЦА');
end.
Самое простое.
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 12.05.2010, 12:30   #7
Яна Сафронова
Пользователь
 
Регистрация: 11.04.2010
Сообщений: 15
По умолчанию

Очень смешно, ROMA2PVT!!! Ну я же серьезно!!! :о)
Яна Сафронова вне форума Ответить с цитированием
Старый 12.05.2010, 13:01   #8
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Цитата:
Сообщение от Базиля Посмотреть сообщение
Яна Сафронова
Много ненужного, не понимаю для чего это писал человек, наверное чтобы выпендриться и как-будто запутать тебя.
Значит так, Базиля! Эту программу писал я и мне интересно, что там лишнего ты нашел... Если ты чего и не понимаешь, то это еще не говорит о том, что там есть что-то, не понятное другим. Покажи мне хоть одну программу, сделанную тобой лично. А то что ТС разместила неотформатированный код - то это уже не мои проблемы...
С моим резюме и портфолио можно ознакомиться в соответствующих разделах на моем сайте:
http://igor-bachin.narod.ru
Перемешивай дело с бездельем и не сойдешь с ума...

Последний раз редактировалось Grag; 12.05.2010 в 14:04.
Grag вне форума Ответить с цитированием
Старый 12.05.2010, 13:24   #9
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

Цитата:
Яна СафроноваИ вообще кто-нибудь может написать коментарии к программе?
Ну автор уже нашелся, проси его , может и поможет.
Цитата:
Grag Эту программу писал я
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 12.05.2010, 14:01   #10
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Уже написал. Просто комментарии не писал для ускорения процесса создания программы и чтобы быстрее показать ТС экзешник для выявления недоделок и замечаний... От ответов на вопросы и оказания помощи не отказывался... Если у ТС проблемы с пониманием простейших операций, то уж извините, не моя в том вина...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться Var17 Общие вопросы Delphi 6 27.03.2010 01:21
[C++] Не могу разобраться ... AquaticSoul Общие вопросы C/C++ 8 24.03.2010 16:23
Не могу разобраться semAz Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 10.03.2010 17:43
НЕ МОГУ РАЗОБРАТЬСЯ... GSV84 HTML и CSS 0 03.02.2010 01:38
Не могу разобраться Zmaxer Помощь студентам 24 10.10.2009 18:52