1 Востаннє редагувалося jasper (09.06.2018 16:09:01)

Тема: Задача з двома підпрограмами

Допоможіть будь ласка з задачею, бо не виходить зробити.
Задано квадратну матрицю (двовимірний масив) А розміром kхk,  де k = ( m+n ) mod 3+3, (m − 21, n − 2).
Елементи матриці обчислити за виразом
Аi,j = (k /2 − i +0,3)*( j − k +5*n )*sin j,       де i=1,…,k;  j=1,…,k.
Скласти блок-схему алгоритму і програму обробки матриці, яка б містила дві підпрограми:
•    обчислення елементів матриці та вивід її на екран;
•    обчислення величин, наведених в iндивiдуальному варiантi завдання, та вивід їх на екран.
Умова завдання:
Обчислити суми додатних елементів головної діагоналі і першого рядка.

Я зміг зробити першу частину задачі(можливо не вірно), а друга не виходить

Program zadacha_5;
 const n=2; m=21; k=(m+n)mod 3+3;
 TYPE ARR=ARRAY[1..k,1..k] of real;
  var A:ARR;
   i,j:integer; s,x:real;
    //Procedure MAS (var A:ARR);
    //var i,j: integer;
     begin
      writeln('початкова матриця');
      for i:=1 to k do
       begin
        for j:=1 to k do
         begin
          A[i,j]:=(k/2-i+0.3)*(j-k+5*n)*sin(j);
          write (' A[',i,',',j,']=' ,A[i,j]:5:2,'');
         end;
         writeln;
       end;
     end.

2

Re: Задача з двома підпрограмами

Тут ходять злі модератори й коли бачать, що пункт правил 3.5 не виконується, то дуже сердяться  :-X

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊
Подякували: koala1

3

Re: Задача з двома підпрограмами

Jasper-е, покажіть, що виходить, і сформулюйте, що не виходить.

4

Re: Задача з двома підпрограмами

Ви, здається, не зовсім зрозуміли, чим ви займаєтеся.
Якщо ви хочете програмувати - будь ласка, ви вам допоможемо, але ви маєте розуміти, що завдання дали вам і робити його вам, а ми тільки допоможемо. Те, що ви зробили одне завдання, не звільняє вас від необхідності робити друге.
Якщо ви не хочете програмувати - цей форум не для вас, бачите, що зверху написано?

Якщо ви взагалі не знаєте, що таке перший рядок і головна діагональ матриці - то підкажу: перший рядок - це такі a[ i ][ j ], де i=1, а головна діагональ - де i=j.
І в майбутньому додавайте, будь ласка, теги code.

5

Re: Задача з двома підпрограмами

koala, першу частину задачі я зробив, а як другу не знаю,в голову нічого не приходить.
Ось перша частина
Program zadacha_5;
const n=2; m=21; k=(m+n)mod 3+3;
TYPE ARR=ARRAY[1..k,1..k] of real;
  var A:ARR;
   i,j:integer; s,x:real;
    //Procedure MAS (var A:ARR);
    //var i,j: integer;
     begin
      writeln('початкова матриця');
      for i:=1 to k do
       begin
        for j:=1 to k do
         begin
          A[i,j]:=(k/2-i+0.3)*(j-k+5*n)*sin(j);
          write (' A[',i,',',j,']=' ,A[i,j]:5:2,'');
         end;
         writeln;
       end;
     end.

6

Re: Задача з двома підпрограмами

Ви не знаєте, як знаходити суму кількох елементів? Створюєте окрему змінну для суми (таку змінну іноді називають "аккумулятором"), надаєте її значення 0 і в циклі додаєте до неї значення необхідних елементів.

7

Re: Задача з двома підпрограмами

А як знайти суми додатніх елементів?

8

Re: Задача з двома підпрограмами

Звичайним if'ом перевіряємо чи елемент додатній: якщо так - додаємо до змінної для суми

[x|x<-[2..],all(>0)[x`mod`y|y<-[2..x-1]]]

9

Re: Задача з двома підпрограмами

Як знайти суму першого рядка?

10

Re: Задача з двома підпрограмами

Вище вже все описано. Якщо ви хочете, щоб за вас писали код, платіть гроші. Якщо ви спробували і у вас не вийшло - покажіть, що у вас вийшло, підкажемо, куди далі.