Тема: Як написати
замінити всі елементи 2-вимірного масиву, розташовані вище діагоналі, на мінімальний елемент масиву
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Як написати
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
замінити всі елементи 2-вимірного масиву, розташовані вище діагоналі, на мінімальний елемент масиву
Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?
Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?
а оце вже операційносистемизм!
koala написав:Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?а оце вже операційносистемизм!
Я роблю висновок про ОС з формулювання питання.
Людина на лінуксі зазвичай так не питає.
FakiNyan написав:koala написав:Спершу знаходите, потім замінюєте.
Чи вам детальну інструкцію на рівні "увімкніть комп'ютер, дочекайтеся завантаження Windows, перемістіть курсор миші на кнопку "Пуск", натисніть ЛКМ. У меню, що виникло, знайдіть ваше IDE..." треба?а оце вже операційносистемизм!
Я роблю висновок про ОС з формулювання питання.
Людина на лінуксі зазвичай так не питає.
Може в неї андроїд? (-х86?)
З формулювання питання лиш можна зрозуміти, що це халявщик, ніяк свої системоуподобання не проявив. Лінукса там точно не може бути, а от всякий хром-ос, чи що там на телевізори ставлять, чому й ні.
Не факт, що халявщик. Яя колись давно давно теж так писав на форумах, ну або майже так, не пам'ятаю точно. Але я просто не проявляв емпатії, і не уявляв як це повідомлення виглядає для тих хто це читає. Може він рілі не шарить, але хоче щоб йому сказали де пошукати?
Підскажіть як написати дану програму
https://drive.google.com/open?id=1sv0F4 … EHB_Il7_Rk
Vlad_Yem, це форум програмістів, а не тих, хто робить на халяву. Прочитайте правила і зробіть відповідно, інакше вам ніхто тут не допоможе.
замінити всі елементи 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;
}
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися