Одесса: 4°С (вода 9°С)
Киев: 1°С
Львов: 6°С

Тема: Учусь программировать :)

Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 20 из 32
  1. Вверх #1

    По умолчанию Учусь программировать :)

    Задача :Дан двухмерный, квадратный массив размерностью n на n (я беру 5х5). Заполняю массив слуайными цифрами. дальше надо найти макс. значение элементов массива. Это тоже делаю. Далее нада найти макс. значение но определённой области массива (см. ниже, область отмечена единицами)
    1 1 1 1 1
    0 1 1 1 1
    0 0 1 1 1
    0 0 0 1 1
    0 0 0 0 1
    это тоже делаю

    Но теперь нада найти макс. значение в следущей области :
    1 1 1 1 1
    0 1 1 1 0
    0 0 1 0 0
    0 0 0 0 0
    0 0 0 0 0
    и тут тупик, пользовался до этого циклом в цикле (for). Думаю что в этом случае такой же нужно пользоваться системой, только не могу понять как заставить его смотреть первую строку все элементы а потом на 2 меньше, на 4 меньше и так далее (если у меня будет массив 10 на 10)....

    Кто что подскажет


  2. Вверх #2
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,352
    Репутация
    6088
    Один массив - исходный. Второй вспомогательный - такой же только содержит нули или единицы как ты написал. Если в вспомогательном массиве элемент равен 1, то соответствующий элемент основного массива учавствует в поиске. Перебираешь их в цикле да и все.
    Это если не думать такое решение, все остальное возможно и будет быстрее, но не так очевидно.

  3. Вверх #3
    Цитата Сообщение от maxx™
    Один массив - исходный. Второй вспомогательный - такой же только содержит нули или единицы как ты написал. Если в вспомогательном массиве элемент равен 1, то соответствующий элемент основного массива учавствует в поиске. Перебираешь их в цикле да и все.
    Это если не думать такое решение, все остальное возможно и будет быстрее, но не так очевидно.
    не понял ничего
    я заполняю массив случайными числами, ну допустим я сделаю второй массив, но в него нужно записать именно нужные мне значения, тоесть их всёравно нада "найти" в первом массиве , ик тому же второй массив должен быть динамичесским, которого по задумке я ещё не знаю (не учили пока)

  4. Вверх #4
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    Цитата Сообщение от Nobless
    не понял ничего
    я заполняю массив случайными числами, ну допустим я сделаю второй массив, но в него нужно записать именно нужные мне значения, тоесть их всёравно нада "найти" в первом массиве , ик тому же второй массив должен быть динамичесским, которого по задумке я ещё не знаю (не учили пока)
    Ужос, какие вспомогательные массивы!!!
    Правильно организуй цикл по этой матрице
    i индекс по строкам
    j индекс по столбцам
    k=0 вспомогательный индекс
    По строкам иди от 0 до i/2
    Для i/2 поставь округление до наибольшего целого, т.е. если у тебя i/2 = 2.5, чтоб округляло до 3

    По столбцам иди от j+k до j-k, просто в в цикле for поставь ещё один инкремент для вспомогательного k

    Ну и стандартный поиск максимума

    End по столбцам
    End по строкам

    Удачи!!!

  5. Вверх #5
    Посетитель Аватар для Elfio
    Пол
    Мужской
    Возраст
    32
    Сообщений
    161
    Репутация
    29
    Цитата Сообщение от Nobless
    Кто что подскажет
    Учись алгоритмически мыслить, а только потом программировать.
    Короче - малюй блок-схемы алгоритмов и будит тибе счастие.
    Why am I writing this?

  6. Вверх #6
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,352
    Репутация
    6088
    Цитата Сообщение от Nobless
    не понял ничего
    я заполняю массив случайными числами, ну допустим я сделаю второй массив, но в него нужно записать именно нужные мне значения, тоесть их всёравно нада "найти" в первом массиве , ик тому же второй массив должен быть динамичесским, которого по задумке я ещё не знаю (не учили пока)
    У тебя есть массив -
    1 1 1 1 1
    0 1 1 1 0
    0 0 1 0 0
    0 0 0 0 0
    0 0 0 0 0

    Вот это и есть содержание вспомогательного массива.

  7. Вверх #7
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одесса
    Возраст
    38
    Сообщений
    23,352
    Репутация
    6088
    Цитата Сообщение от GGenius
    Ужос, какие вспомогательные массивы!!!
    Он тебе в следующем посте предложит еще какую-то другую область,
    например такую:

    1 1 0 1 1
    0 1 1 1 0
    0 0 1 0 0
    1 1 0 1 1
    0 0 1 0 0

    Ты тоже будешь изворачиваться с циклами и округлениями?

  8. Вверх #8
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    Цитата Сообщение от Nobless
    только не могу понять как заставить его смотреть первую строку все элементы а потом на 2 меньше, на 4 меньше и так далее (если у меня будет массив 10 на 10)....

    Кто что подскажет
    Я написала для вот этого случая.

    А если нужно искать максимум только из мн-ва позиций, где он рандомом ставит 1, то самый простой способ, это вставить иф перед сравнением элемента с максимумом, хотя можно и "соптимизить"

  9. Вверх #9
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    А вообще, можно исходную матрицу и матрицу позиций поэлементно умножить. Получится матрица с ненулевыми значениями только на местах, где были 1.
    Другой вопрос, если исходная содержала отрицательные числа.......))))
    Последний раз редактировалось Ginger; 30.01.2007 в 13:44.

  10. Вверх #10
    Так так я вижу я вас запутал своими единицами

    нулями и единицами я просто отметил область ,вместо них разные числа от 0 до 100,
    и подобных комбинаций
    1 1 0 1 1
    0 1 1 1 0
    0 0 1 0 0
    1 1 0 1 1
    0 0 1 0 0
    мне не нужно мне нужно только треугольнички внутри квадрато в разных полежениях сейчас попробую со вспомогательным индексом, хотя толком не понял что от меня требуется

  11. Вверх #11
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    Цитата Сообщение от Nobless
    Так так я вижу я вас запутал своими единицами
    мне не нужно мне нужно только треугольнички внутри квадрато в разных полежениях сейчас попробую со вспомогательным индексом, хотя толком не понял что от меня требуется

    Попробуй четко сформулировать задачу
    У тебя область для поиска максимума фиксирована или получается после волшебных слов "аааааап"?
    Слу, а ты где "учишься программировать"?
    Что-то у тебя соображалка и воображалка пока не оч натренирована
    Последний раз редактировалось Ginger; 29.01.2007 в 20:43.

  12. Вверх #12
    млин ща скрин кину

  13. Вверх #13
    вот....1-е задание сделал
    во 2-м а и б сделал дальше идут те самые треугольники

    В шаге учусь можно сказать с нуля...до этого пару раз всего слышал слово алгоритм (и то из-за угла)
    Изображения
    • Тип файла: jpg 222.JPG (35.9 Кб, Просмотров: 14)

  14. Вверх #14
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    Да не надо твоих скринов
    Просто чётко и грамотно опиши в чём трабл.
    Если тебе нужно только по таким треугольникам, то без вспомогательного индекса никак (если матрица не всегда квадратная)

  15. Вверх #15
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    Ну вот, а тут на форуме такие бла-бла разводят по поводу универов ,высшего образования в принципе и шага.....
    А вышку где-то получаешь?
    Мда...там делать нефик.
    Тебе катострофически не хватает той самой соображалки
    Ты только не исчи максимум сразу, а попробуй сделать цикл и выводи матрицу из 0 и 1. Пусть 1 ставит там, где потом будешь искать максимум

  16. Вверх #16
    User banned
    Пол
    Мужской
    Сообщений
    806
    Репутация
    20
    Цитата Сообщение от GGenius
    Да не надо твоих скринов
    Просто чётко и грамотно опиши в чём трабл.
    Если тебе нужно только по таким треугольникам, то без вспомогательного индекса никак (если матрица не всегда квадратная)
    Иногда круглая (матрица)

  17. Вверх #17
    Цитата Сообщение от GGenius
    Да не надо твоих скринов
    Просто чётко и грамотно опиши в чём трабл.
    Если тебе нужно только по таким треугольникам, то без вспомогательного индекса никак (если матрица не всегда квадратная)
    Матрица всегда квадратная, трабл наверное в отсутсвии соображаловки и этого факин индекса

  18. Вверх #18
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    30
    Сообщений
    2,952
    Репутация
    148
    Но теперь нада найти макс. значение в следущей области :
    1 1 1 1 1
    0 1 1 1 0
    0 0 1 0 0
    0 0 0 0 0
    0 0 0 0 0
    можно попробовать запустить что-небудь подобное по всем элементам показанного выше единицами треугольника:

    Код:
    for (int i = 0; i<N; i++)
      for (int j = i ; j<N-i; j++)
        {
           // сравниваем A[i][j] c чем-то там..
        }
    ~ Motivation is what gets you started. Habit is what keeps you going.

  19. Вверх #19
    Цитата Сообщение от GGenius
    Ну вот, а тут на форуме такие бла-бла разводят по поводу универов ,высшего образования в принципе и шага.....
    А вышку где-то получаешь?
    Мда...там делать нефик.
    Тебе катострофически не хватает той самой соображалки
    Ты только не исчи максимум сразу, а попробуй сделать цикл и выводи матрицу из 0 и 1. Пусть 1 ставит там, где потом будешь искать максимум
    вышку пока не получаю, пока получаю что могу, на что времени хватает
    Да и насчёт там разговоров не разговоров, мне многие советовали не идти туда учится. но я доволен, я на полустационаре, занятия 1 раз в неделю по полтора часа на урок ,сами понимаете что и как....за то мизерное время что нам уделяют я хоть чемуто научился
    Для Яр
    не канает, уже пробовал, он считает все элементы кроме последнего столбца, если ян е ошибаюсь
    Последний раз редактировалось Nobless; 29.01.2007 в 21:00.

  20. Вверх #20
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    34
    Сообщений
    9,506
    Репутация
    2746
    Записей в дневнике
    12
    Цитата Сообщение от Яр
    можно попробовать запустить что-небудь подобное по всем элементам показанного выше единицами треугольника:

    Код:
    for (int i = 0; i<N; i++)
      for (int j = i ; j<N-i; j++)
        {
           // сравниваем A[i][j] c чем-то там..
        }
    Не пугайте так человека!!!
    Он долго это будет понимать, а т.к. додумался не сам, то оч скоро забудет


Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения