1

Тема: Як написати

замінити всі елементи 2-вимірного масиву, розташовані вище діагоналі, на мінімальний елемент масиву

2

Re: Як написати

Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?

3

Re: Як написати

koala написав:

Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?

а оце вже операційносистемизм!

4

Re: Як написати

FakiNyan написав:
koala написав:

Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?

а оце вже операційносистемизм!

Я роблю висновок про ОС з формулювання питання.
Людина на лінуксі зазвичай так не питає.

Подякували: leofun01, FakiNyan2

5

Re: Як написати

koala написав:
FakiNyan написав:
koala написав:

Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?

а оце вже операційносистемизм!

Я роблю висновок про ОС з формулювання питання.
Людина на лінуксі зазвичай так не питає.

Може в неї андроїд? (-х86?)
З формулювання питання лиш можна зрозуміти, що це халявщик, ніяк свої системоуподобання не проявив. Лінукса там точно не може бути, а от всякий хром-ос, чи що там на телевізори ставлять, чому й ні.

6

Re: Як написати

Не факт, що халявщик. Яя колись давно давно теж так писав на форумах, ну або майже так, не пам'ятаю точно. Але я просто не проявляв емпатії, і не уявляв як це повідомлення виглядає для тих хто це читає. Може він рілі не шарить, але хоче щоб йому сказали де пошукати?

Прихований текст

але ще раз глянув на повідомлення, малоймовірно

7

Re: Як написати

Підскажіть як написати дану програму
https://drive.google.com/open?id=1sv0F4 … EHB_Il7_Rk

8

Re: Як написати

Vlad_Yem, це форум програмістів, а не тих, хто робить на халяву. Прочитайте правила і зробіть відповідно, інакше вам ніхто тут не допоможе.

9

Re: Як написати

Ka4ok написав:

замінити всі елементи 2-вимірного масиву, розташовані вище діагоналі, на мінімальний елемент масиву

C++11 підійде ?

#include<stdio.h>
#include<functional>

template<typename T> void doForEach(T *const, int const, std::function<void (T &, int)> const);
template<typename T> void printArray2D(T const *const *const, int const, int const, char const *const);
template<typename T> T **createArray2D(int const, int const, T const &);
template<typename T> void freeArray2D(T **&, int const);
template<typename T> T findValue(T const *const *const, int const, int const, T const &,
                                        std::function<bool (T const &, T const &)> const);

int main(void) {
    int const len0 = 5; // висота
    int const len1 = 5; // ширина
    int **arr = createArray2D<int>(len0, len1, 1);
    arr[3][1] = 0;
    //
    printArray2D<int>(arr, len0, len1, " %i");
    int min = findValue<int>(arr, len0, len1, INT_MAX,
        [](int const &l, int const &r) -> bool { return l < r; });
    doForEach<int *>(arr, len0, [len1, &min](int *&ptr0, int i0) -> void {
        doForEach<int>(ptr0 + ++i0, len1 - i0,
            [&min](int &val1, int i1) -> void { val1 = min; });
    });
    printArray2D<int>(arr, len0, len1, " %i");
    printf("\r\n %i", min);
    //
    freeArray2D<int>(arr, len0);
    return 0;
}

template<typename T>
void doForEach(T *const arr, int const count, std::function<void (T &, int)> const func) {
    for(int i = 0; i < count; ++i)
        func(arr[i], i);
}

template<typename T>
void printArray2D(T const *const *const arr, int const len0, int const len1, char const *const format) {
    doForEach<T const *const>(arr, len0, [len1, format](T const *const &ptr0, int i0) -> void {
        printf("\r\n");
        doForEach<T const>(ptr0, len1, [format](T const &val1, int i1) -> void { printf(format, val1); });
    });
    printf("\r\n");
}

template<typename T>
T **createArray2D(int const len0, int const len1, T const &value) {
    T **arr = new T *[len0];
    doForEach<T *>(arr, len0, [len1, &value](T *&ptr0, int i0) -> void {
        ptr0 = new T[len1];
        doForEach<T>(ptr0, len1, [&value](T &val1, int i1) -> void { val1 = value; });
    });
    return arr;
}

template<typename T>
void freeArray2D(T **&arr, int const len0) {
    doForEach<T const *const>(arr, len0, [](T const *const &ptr0, int i0) -> void { delete[] ptr0; });
    delete[] arr;
    arr = nullptr;
}

template<typename T>
T findValue(T const *const *const arr, int const len0, int const len1,
    T const &defaultValue, std::function<bool (T const &, T const &)> const predicate)
{
    T value = defaultValue;
    doForEach<T const *const>(arr, len0, [len1, &value, predicate](T const *const &ptr0, int i0) -> void {
        doForEach<T const>(ptr0, len1, [&value, predicate](T const &val1, int i1) -> void {
            if(predicate(val1, value))
                value = val1;
        });
    });
    return value;
}