1

Тема: Допоможіть мені будь-ласка! робота з масивами

Допоможіть. Є масив, а мені потрібно щоб виводило на екран суму кожного рядка і кожного стовпця. ЯК це зробити??? дякую зараннє!!!

program z1;
uses
  crt, graph;

const
  m = 5;
  n = 6;

TYPE
  MAS = ARRAY[1 .. m, 1 .. n] OF boolean;
var
  i: integer;
  A1 : MAS;




BEGIN
  FOR i := 1 to m do A1[1+2+2,1]:= true;

  readln;
END.

2

Re: Допоможіть мені будь-ласка! робота з масивами

При цьому масив — саме булевий (а не цілих чи дійсних чисел)? І як рахувати «суму» його елементів — вважати true одиницями, false — нулями?

Той код, який є, присвоює значення true елементові А1[5,1], решта масиву невизначена. Що насправді малось на увазі?

3 Востаннє редагувалося yaruk (20.07.2015 13:05:42)

Re: Допоможіть мені будь-ласка! робота з масивами

P.Y. написав:

При цьому масив — саме булевий (а не цілих чи дійсних чисел)? І як рахувати «суму» його елементів — вважати true одиницями, false — нулями?

Той код, який є, присвоює значення true елементові А1[5,1], решта масиву невизначена. Що насправді малось на увазі?

то був неправильний код, я все переробив, але тепер інша проблема!

program DlyaVani;
uses
  crt, graph;
const
  m = 5;
  n = 6;

TYPE
  MAS = ARRAY[1 .. m, 1 .. n] OF integer;
var
  i,j,x: integer;
  A1 : MAS;
BEGIN

  FOR i := 1 to m do
    FOR j:= 1 to n do
      x := x + a1[i,j];
writeln(x);
readln;
END.

4 Востаннє редагувалося P.Y. (20.07.2015 14:09:41)

Re: Допоможіть мені будь-ласка! робота з масивами

Тепер змінна x (яку забули обнулити перед підрахунками, тому в ній може лежати якесь сміття) обчислює суму ВСІХ елементів двовимірного масиву. Нам же треба вивести окремо суму для кожного рядка, а потім окремо суму для кожного стовпчика. Крім того, треба зробити цикл вводу елементів масиву (або присвоїти значення програмно).

1-й ядок двовимірного масива повинен містити елементи A1[1,1], A1[1,2],..., A1[1,m]
2-й рядок —  елементи A1[2,1], A1[2,2],..., A1[2,m]
і т.д.
У випадку стовпчиків, змінюватиметься перший індекс, а другий лишатиметься постійним:
1-й стовпчик — елементи A1[1,1], A1[2,1],..., A1[n,1]
2-й стовпчик — елементи A1[1,2], A1[2,2],..., A1[n,2]
і т.д.

Тобто, для виводу сум рядків треба зробити цикл:

for i:=1 to n do begin
    x:=0;
    for j:=1 to m do 
        x:=x+A1[i,j];
    writeln('Сума ', i, '-го рядка: ', x);
end;

Зі стовпчиками — аналонічно, але j буде змінюватись у зовнішньому циклі, i — у внутрішньому.

Подякували: yaruk1

5

Re: Допоможіть мені будь-ласка! робота з масивами

P.Y. написав:

Тепер змінна x (яку забули обнулити перед підрахунками, тому в ній може лежати якесь сміття)

Не може, це паскаль. Не занулюються тільки динамічні масиви.

6

Re: Допоможіть мені будь-ласка! робота з масивами

program DlyaVani;
uses
  crt, graph;
const
  m = 7;
  n = 6;

TYPE
  MAS = ARRAY[1 .. m, 1 .. n] OF integer;
var
  i,j,x: integer;
  A1 : MAS;
BEGIN
  randomize;
  FOR I := 1 TO M DO
    FOR J := 1 TO N DO
      A1[i,j] := random(5);

  FOR I := 1 TO M DO BeGIN
    FOR J := 1 TO N DO
      write(A1[I,J], ' ') ;
    writeln;
  end;

  FOR i := 1 to m do
    FOR j := 1 to n do
      x := x + a1[i,j];
  writeln('§ Ј «м  бг¬  :', x);

  FOR i := 1 to m do begin
    x := 0;
    for j := 1 to n do
      x := x + A1[i,j];
    writeln('бг¬  ', i, '-Ј® ап¤Є : ', x);
  end;

  FOR j := 1 to n do begin
    x := 0;
    for i := 1 to m do
      x := x + A1[i,j];
    writeln('бг¬  ', j, '-Ј® бв®ўЇзЁЄ : ', x);
  end;


  readln;
END.

тепер мені потрібно щоб програма вираховувала і визначала мінімальне і максимальне число у моєму масиві!

7

Re: Допоможіть мені будь-ласка! робота з масивами

koala написав:
P.Y. написав:

Тепер змінна x (яку забули обнулити перед підрахунками, тому в ній може лежати якесь сміття)

Не може, це паскаль. Не занулюються тільки динамічні масиви.

Це стосується конкретної реалізації компілятора чи стандарту мови? Чомусь мені здавалось, у стандарті там невизначене значення.

8 Востаннє редагувалося koala (20.07.2015 23:10:02)

Re: Допоможіть мені будь-ласка! робота з масивами

P.Y. написав:
koala написав:
P.Y. написав:

Тепер змінна x (яку забули обнулити перед підрахунками, тому в ній може лежати якесь сміття)

Не може, це паскаль. Не занулюються тільки динамічні масиви.

Це стосується конкретної реалізації компілятора чи стандарту мови? Чомусь мені здавалось, у стандарті там невизначене значення.

Дійсно, у стандарті там сказано, що

6.2.3.5
All variables contained by an activation, except for those listed as program-parameters, and any
result of an activation, shall be totally-undefined at the commencement of that activation .

http://www.pascal-central.com/docs/iso7185.pdf
І так, fpc та gpc, на відміну від Delphi і, наскільки можу пригадати, TP7, не занулюють змінні, вже перевірив.

Отак і минають ілюзії...