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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2021, 03:40   #1
antonn_
Пользователь
 
Регистрация: 03.10.2021
Сообщений: 11
Радость Сумма элементов в заштрихованной области массива

Здраствуйте, помогите пожалуйста с решением задачи(C++).

/ Дана действительная матрица А[9×9]. Найти S – сумму элементов в заштрихованной области массива А. Обязательно использовать функцию. /

Загрузил фотографией дополнение к задаче(там рисунок, описать словами я его никак не могу).

Такое задание попалось первый раз, не могу понять как связана задача и то дополнение к задаче которое я загрузил фотографией, и как это все реализовать в коде.

Буду очень благодарен любой помощи, советам.
Изображения
Тип файла: png Screenshot_1.png (19.0 Кб, 4 просмотров)
antonn_ вне форума Ответить с цитированием
Старый 03.11.2021, 10:42   #2
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,708
По умолчанию

Код:
  s=0 ;
  for (i=0;i<9;i++)
    { s += a[i][i] ; s += a[i][8-i] ; }
   s -= a[4][4] ;
Это, наверно, задача из военно-морского училища: на Андреевский флаг похоже
Тут с функцией надо? Лень думать. Указатель надо пришпилить.
https://metanit.com/cpp/tutorial/4.7.php

Последний раз редактировалось digitalis; 03.11.2021 в 10:54.
digitalis вне форума Ответить с цитированием
Старый 03.11.2021, 11:14   #3
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,848
По умолчанию

Цитата:
Сообщение от antonn_ Посмотреть сообщение
Обязательно использовать функцию
Функция main() сгодится?
Arigato вне форума Ответить с цитированием
Старый 03.11.2021, 11:27   #4
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,708
По умолчанию

Цитата:
Сообщение от Arigato Посмотреть сообщение
Функция main() сгодится?
Думаю, это было бы лукавством. Будь я преподом - завернул бы. Тут вся суть в передаче в функцию в качестве параметра адреса массива. Можно было бы массив использовать глобальный.
Код:
double func_sum(int arg, int var)
 {if (var==0) func_sum = a[arg][arg]; else func_sum = a[arg][var-arg] ; }
......
s = 0 ;
for (i=0;i<9;i++)
  s += func_sum [i][0] +  func_sum [i][8] ;
Но это неэлегантно.

Последний раз редактировалось digitalis; 03.11.2021 в 23:13.
digitalis вне форума Ответить с цитированием
Старый 14.11.2021, 05:08   #5
Dasha234
 
Регистрация: 07.10.2021
Сообщений: 7
По умолчанию

Arigato, здравствуйте, у меня такая же задача попалась, я пыталась составить код по той информации что была тут и по тому что знаю сама, как итог ничего не вышло. Подскажите пожалуйста как отобразить эту задачу в коде правильно. Так же С++
Dasha234 вне форума Ответить с цитированием
Старый 14.11.2021, 05:10   #6
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Dasha234, раз пытались составить код, то что в итоге получилось? Какой-то ввод массива, циклы его обхода.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 14.11.2021, 05:29   #7
Dasha234
 
Регистрация: 07.10.2021
Сообщений: 7
По умолчанию

BDA, если бы что получилось разумное я бы кинула сразу же этот код вместе со своим сообщением, я вообще до конца понять не могут быть связаны условия задачи и рисунок

код смогу кинуть когда будет доступ к ноутбуку
Dasha234 вне форума Ответить с цитированием
Старый 14.11.2021, 05:57   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

В принципе решение уже дано во 2 сообщении digitalisом. Ну а если пока забыть про заштрихованные области и отдельные функции. Найти просто сумму элементов матрицы 9x9 можете?
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 14.11.2021, 16:06   #9
Dasha234
 
Регистрация: 07.10.2021
Сообщений: 7
По умолчанию

BDA, BDA,
Код:
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    srand(time(0));
    const int n = 9;
    double A[n][n], sum=0.0;
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < n; j++)
    {
    A[i][j]=rand()%9 + 1;       
    cout <<A[i][j]<<" ";       
    }
    cout <<endl;
    }    
    
    for (int i = 1; i < n-1; i++)    
    sum+=A[i][0]+A[i][n-1]+A[0][i]+A[n-1][i];    
    sum=sum+A[0][0]+A[0][n-1]+A[n-1][0]+A[n-1][n-1];  
    cout << "sum="<<sum;
    
system("pause");
return 0;
}
имелось ввиду так?
Dasha234 вне форума Ответить с цитированием
Старый 14.11.2021, 16:20   #10
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Да, это уже ближе к задаче, только вы сложили элементы по краям матрицы:
Код:
111111111
100000001
100000001
100000001
100000001
100000001
100000001
100000001
111111111
А нужно сложить диагонали.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычислить сумму элементов матрицы в заштрихованной области (функция) 803 Помощь студентам 6 18.01.2017 19:39
Вычислить z=s1+s2/2, где s1-сумма положительных элементов массива X(8); s2-сумма отрицательных элементов массива Y(10) . обе суммы Лидия 188 Паскаль, Turbo Pascal, PascalABC.NET 1 06.11.2015 18:44
найти сумму элементов матрицы в заштрихованной области denis_stell Помощь студентам 1 03.03.2010 19:45
Сумма элементов из заштрихованной области матрицы pasha92 Помощь студентам 3 16.11.2009 18:54
Сумма элементов из заштрихованной области двумерного массива pasha92 Помощь студентам 1 16.11.2009 16:28