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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 19:53   #1
cr1te
Новичок
Джуниор
 
Регистрация: 12.12.2010
Сообщений: 3
По умолчанию Матрица в паскале

Помогите пожалуйста создать матрицу в паскале,срочно надо((( Конец семестра,а это последняя лаба,никак немогу осилить
вот задание :

Сформировать матрицу {aij}n,m , где i<=(n,k), j<=(m,l). Фактическое число строк (n,k) и столбцов (m,l) каждой матрицы вводить с клавиатуры. Создать функцию, определяющуюсумму первой строки. Вывести на экран результат.
cr1te вне форума Ответить с цитированием
Старый 12.12.2010, 22:28   #2
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

А что ты уже написал/а , можно посмотреть код и где именно не получается ? Вот только не пиши , что ничего не получается . Семестр ты же что-то делал/а
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---
andrewpalkin вне форума Ответить с цитированием
Старый 12.12.2010, 22:56   #3
cr1te
Новичок
Джуниор
 
Регистрация: 12.12.2010
Сообщений: 3
По умолчанию

Я пытаюсь сделать по примеру,в примере нужно много удалить(преподовательница сказала),но я незнаю что именно,я на паре делал но толком ничего не сделал)))
Вот пример и задание к нему :
Задание : Сформировать и вывести на экран две матрицы путем ввода элементов с клавиатуры и по заданному правилу, используя процедуры пользователя. Фак-тическое число строк и столбцов вводить с клавиатуры и передавать в проце-дуры фактическими параметрами. Предусмотреть процедуру вывода результи-рующей матрицы на экран. Произвести вычисления в функции или процедуре над матрицами согласно заданному требованию. Например, найти среднее арифметическое двух исходных матриц, а также сформировать две результи-рующие матрицы путем деления элементов исходных матриц на их максималь-ный элемент. Вывести результирующие матрицы на экран.
Код:
Код :
Program prog4;
 Uses Crt;
  Type TArray=Array[1..10,1..10] of Real;
   Var A, B, C, D : TArray; n,m,k,l : Byte; h : Char; Ar : Real;
  Procedure InMatr1(Var x:TArray; row,col:Byte);
Var d,i,j:Byte; S,y : String;
Begin
clrscr;
 For i:=1 To row Do Begin
  y:=' '; d:=WhereY;
   GotoXY(1,d);
    For j:=1 To col Do Begin
   Readln(x[i,j]);
  Str(x[i,j]:6:1,S);
 y:=y+S;
GotoXY(Length(y),d);
End;
Writeln;
End;
End;
Procedure InMatr2(Var x:TArray; row,col:Byte);
 Var i,j:Byte;
  Begin
   Randomize; 
    For i:=1 to row do Begin
   For j:=1 to col do Begin
  X[i,j]:=Random*50-25;
Write(x[i,j]:7:2,' ');
End;
Writeln;
End;
End;
Function Sum(x:TArray; row,col:Byte):Real;
 Var S :Real; i,j:Byte;
  Begin
   S:=0;
    For i:=1 to row do
   For j:=1 to col do
  If x[i,j]>0 Then S:=S+X[i,j];
Sum:=S;
End;
Procedure NewMatr(x:TArray; row,col:Byte; Var y:TArray);
 Var i,j:Byte; MMax:real;
  Function Max(x:TArray; row,col:Byte):Real;
   Var M :Real; i,j:Byte;
Begin
 M:=x[1,1];
  For i:=1 to row do
   For j:=1 to col do IF x[i,j] > M Then M:=X[i,j];
 Max:=M;
End;
Begin
MMax:=Max(x,row,col);
  For i:=1 to row do For j:=1 to col do y[i,j]:=x[i,j]/MMax;
End;
    Procedure Print(x:TArray; row,col:Byte);
     Var i,j:Byte;
Begin
     For i:=1 to row do Begin
     For j:=1 to col do Begin
     Write(x[i,j]:7:2,' ');
End;
Writeln;
End;
End;
BEGIN
  Write('Bvedite 4uslo strok u stol6coB matruci A (ne 6olee 10) ');
Readln(n,m);
  Writeln('Bu6erete sposo6 formirovani9 elementov matruci A');
  Write('1 -> Bvod s klaviatyru; 2 ili ly6oe drugoe 4uclo -> sly4ainuu`proces : ');
Readln(h);
    IF h='1' Then InMatr1(A,n,m) Else InMatr2(A,n,m);
  Write('Bvedite 4uslo strok u stol6coB matruci B (ne 6olee 10) ');
Readln(k,l);
  Writeln('Bu6erute sposob formurovani9 elementov matruci B');
  Write('1 -> Bvod s klaviatyru; 2 ili ly6oe drygoe 4uslo-> sly4ainuu`proces : ');
Readln(h);
     IF h='1' Then InMatr1(B,k,l) Else InMatr2(B,k,l);
     Ar:=(Sum(A,n,m)+Sum(B,k,l))/2;
  Writeln('Srednee arufmeti4eskoe = ',Ar:8:3);
NewMatr(A,n,m,C);
   Writeln('******* Buvod matruci C ******');
Print(C,n,m);
NewMatr(B,k,l,D);
   Writeln('******* Buvod matruci D ******');
Print(D,k,l);
End.

Последний раз редактировалось cr1te; 12.12.2010 в 23:24.
cr1te вне форума Ответить с цитированием
Старый 12.12.2010, 23:11   #4
andrewpalkin
Форумчанин
 
Аватар для andrewpalkin
 
Регистрация: 23.11.2010
Сообщений: 458
По умолчанию

Вот только одна просьба , ты можешь оформить код более красиво , он трудно читаем . Вот пример , как надо оформить код , он не имеет отношения к твое задачи :

Код:
PROGRAM Sort(input, output);
    CONST
        (* Max array size. *)
        MaxElts = 50;
    TYPE 
        (* Type of the element array. *)
        IntArrType = ARRAY [1..MaxElts] OF Integer;

    VAR
        (* Indexes, exchange temp, array size. *)
        i, j, tmp, size: integer;

        (* Array of ints *)
        arr: IntArrType;

    (* Read in the integers. *)
    PROCEDURE ReadArr(VAR size: Integer; VAR a: IntArrType);
        BEGIN
            size := 1;
            WHILE NOT eof DO BEGIN
                readln(a[size]);
                IF NOT eof THEN 
                    size := size + 1
            END
        END;

    BEGIN
        (* Read *)
        ReadArr(size, arr);

        (* Sort using bubble sort. *)
        FOR i := size - 1 DOWNTO 1 DO
            FOR j := 1 TO i DO 
                IF arr[j] > arr[j + 1] THEN BEGIN
                    tmp := arr[j];
                    arr[j] := arr[j + 1];
                    arr[j + 1] := tmp;
                END;

        (* Print. *)
        FOR i := 1 TO size DO
            writeln(arr[i])
    END.
--- Если я вам помог , то помогите и вы мне . Не просто просите решить задачу , а пробуйте ее сами решить ! Я не пишу программы с нуля , я помогаю поправить код ! ---

Последний раз редактировалось andrewpalkin; 12.12.2010 в 23:13.
andrewpalkin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица в паскале flashpoint412 Помощь студентам 13 27.05.2010 10:54
Матрица в Паскале Fiera9999 Помощь студентам 2 19.05.2010 20:15
МАТРИЦА В ПАСКАЛЕ евгения, Помощь студентам 4 31.05.2007 19:32