М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
dcveergh
dcveergh
20.09.2021 13:50 •  Информатика

Значения элементов двухмерного массива a[1..100,1..100] с следующего фрагмента программы: for i: =1 to 100 do for k: =1 to 100 do if i > k then a[i,k] : = i else a[i,k] : = -k; чему равна сумма элементов массива после выполнения этого фрагмента программы? решение (пояснение)

👇
Ответ:
liliya070
liliya070
20.09.2021
1. Работаем с квадратной матрицей, где количество строк=количеству столбцов = 100
2. После выполнения фрагмента кода получим матрицу, в которой главная диагональ равна -1, -2, -3 ... -98, -99, -100 и все элементы над главной диагональю будут отрицательные, каждый следующий элемент в строке от главной диагонали будет меньше предыдущего на 1 и строка заканчиваются -100
3. Элементы под главной диагональю положительные  и равны номеру строки.
Пример такой матрицы (только не 100Х100, а 5Х5, просто не влезет в экран, но чтобы понять как формируется такой массив достаточно):
  -1  -2  -3  -4  -5
   2  -2  -3  -4  -5
   3   3  -3  -4  -5
   4   4   4  -4  -5
   5   5   5   5  -5

4. Далее можно вручную посчитать сумму элементов матрицы, а можно написать программу для этого:
const n = 100;
var a:array[1..n,1..n] of integer;
i,k,s:integer;
begin
  for i:=1 to n do begin
    for k:=1 to n do begin
      if i > k then
         A[i,k] := i
      else A[i,k] := -k;
      s:=s+a[i,k];
    end;
  end;
  writeln(s);
end.

ответ: -5050
4,7(27 оценок)
Открыть все ответы
Ответ:
russalinagaras
russalinagaras
20.09.2021
Это так же называется обратной польской записью. Числа, которые встречаются интерпретатору, помещаются в стек. А операции совершаются над числами лежащими в вершине стека. Последовательность будет такая: а - помещается на вершину стека, b - помещается на вершину, а проталкивается вглубь стека. И т.д. После ввода цифры 7 стек будет иметь вид "abc7", где 7 лежит на вершине стека. Затем приходит черед арифметических операций: "+" - берутся два числа, лежащие в вершине стека, складываются, и вместо них на вершину стека ложится их сумма. Теперь стек будет таким: "ab(c+7)". Следующая операция "*" - берутся b и (с+7) и умножаются. Результат помещается на вершину стека. Стек: "а(b*(c+7))". И последнее действие "-" - из a вычитается b*(c+7). В результате выражение будет иметь вид:
а - b(c+7).
4,7(63 оценок)
Ответ:

using namespace std;

#include <algorithm>

#include <iostream>

#include <vector>

#include <ctime>

int main() {

vector<int> arr;

srand(time(0));

int N = 10;

int min = 9999999, minIndex;

int average = 0;

for(int i = 1; i<=N; ++i) {

 arr.push_back(rand());

 cout << arr[i-1] << " ";

 if(arr[i-1]<min) {

  min = arr[i-1];

  minIndex = i-1;

 }

 average+=arr[i-1];

}

cout << endl << "Min: " << min << endl << "Average: " << average/N << endl;

swap(arr[minIndex], arr[arr.size()-1]);

for(int i = 1; i<=N; ++i) {

 cout << arr[i-1] << " ";

}

cout << endl << " > average: ";

for(int i = 1; i<=N; ++i) {

 if(arr[i-1]>average/N) {

  cout << arr[i-1] << " ";

 }

}

}

4,5(50 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ