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;
}