Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Проблема с задачами по Паскалю (http://www.tehnari.ru/f43/t251028/)

Smolny 26.12.2016 23:23

Проблема с задачами по Паскалю
 
Дана матрица M*N. Найти сумму среди положительных и четных элементов в каждой строке с записью в оперативную память. Задание переписано дословно из лабораторной работы, помогите пожалкйста

Uncle Vasya 26.12.2016 23:46

Ну и в чём проблема? Если "с записью в оперативную память", то, очевидно, потребуется одномерный массив размерностью M для хранения суммы. Пройтись по матрице от 1 до M, для каждой строки перебрать все элементы от 1 до N и если он положительный и чётный, то в сумму для этой строки его добавить.

Vladimir_S 27.12.2016 12:38

Цитата:

Сообщение от Uncle Vasya (Сообщение 2447784)
Ну и в чём проблема? Если "с записью в оперативную память", то, очевидно, потребуется одномерный массив размерностью M для хранения суммы.

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

Vladimir_S 27.12.2016 15:43

Как-то так:
Код:

{$r-}
Const
 M=10;
 N=12;

Type
 T=Array[1..1] of Integer;

Var
 A,V:^T;
 D:^Integer;
 i,j:Integer;

Begin
 GetMem(A, SizeOf(Integer)*M*N);
 GetMem(V, SizeOf(Integer)*M);
 GetMem(D, SizeOf(Integer));

 Randomize;

 WriteLn('Matrix A:');
 for i:=1 to M do
  for j:=1 to N do
  A^[N*(i-1)+j]:=-10+Random(20);

 for i:=1 to M do
  begin
  for j:=1 to N do
    Write(A^[N*(i-1)+j]:5);
  WriteLn;
  end;
 WriteLn;
 Writeln;

 for i:=1 to M do
  begin
  New(D);
  D^:=0;
  for j:=1 to N do
    if (A^[N*(i-1)+j]>0) and ((A^[N*(i-1)+j] mod 2)=0) then D^:=D^+A^[N*(i-1)+j];
  V^[i]:=D^;
  Dispose(D);
  end;

 Writeln('Sums:');
 for i:=1 to M do Write(V^[i]:5);

 FreeMem(A, SizeOf(Integer)*M*N);
 FreeMem(V, SizeOf(Integer)*M);

 ReadLn;
END.



Часовой пояс GMT +4, время: 06:56.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.