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

Ответить в теме
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 20 из 32
  1. Вверх #1
    Новичок
    Пол
    Мужской
    Сообщений
    60
    Репутация
    9

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

    Задача :Дан двухмерный, квадратный массив размерностью 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™
    Пол
    Мужской
    Адрес
    Одеса
    Возраст
    45
    Сообщений
    29,033
    Репутация
    12606
    Один массив - исходный. Второй вспомогательный - такой же только содержит нули или единицы как ты написал. Если в вспомогательном массиве элемент равен 1, то соответствующий элемент основного массива учавствует в поиске. Перебираешь их в цикле да и все.
    Это если не думать такое решение, все остальное возможно и будет быстрее, но не так очевидно.

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

  4. Вверх #4
    Супер модератор Аватар для Ginger
    Пол
    Женский
    Адрес
    od.ua
    Возраст
    40
    Сообщений
    8,944
    Репутация
    2826
    Цитата Сообщение от 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
    Пол
    Мужской
    Возраст
    39
    Сообщений
    154
    Репутация
    30
    Цитата Сообщение от Nobless
    Кто что подскажет
    Учись алгоритмически мыслить, а только потом программировать.
    Короче - малюй блок-схемы алгоритмов и будит тибе счастие.
    Why am I writing this?

  6. Вверх #6
    Модератор
    Мистер Одесский Форум
    Аватар для maxx™
    Пол
    Мужской
    Адрес
    Одеса
    Возраст
    45
    Сообщений
    29,033
    Репутация
    12606
    Цитата Сообщение от 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™
    Пол
    Мужской
    Адрес
    Одеса
    Возраст
    45
    Сообщений
    29,033
    Репутация
    12606
    Цитата Сообщение от 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
    Возраст
    40
    Сообщений
    8,944
    Репутация
    2826
    Цитата Сообщение от Nobless
    только не могу понять как заставить его смотреть первую строку все элементы а потом на 2 меньше, на 4 меньше и так далее (если у меня будет массив 10 на 10)....

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

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

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

  10. Вверх #10
    Новичок
    Пол
    Мужской
    Сообщений
    60
    Репутация
    9
    Так так я вижу я вас запутал своими единицами

    нулями и единицами я просто отметил область ,вместо них разные числа от 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
    Возраст
    40
    Сообщений
    8,944
    Репутация
    2826
    Цитата Сообщение от Nobless
    Так так я вижу я вас запутал своими единицами
    мне не нужно мне нужно только треугольнички внутри квадрато в разных полежениях сейчас попробую со вспомогательным индексом, хотя толком не понял что от меня требуется

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

  12. Вверх #12
    Новичок
    Пол
    Мужской
    Сообщений
    60
    Репутация
    9
    млин ща скрин кину

  13. Вверх #13
    Новичок
    Пол
    Мужской
    Сообщений
    60
    Репутация
    9
    вот....1-е задание сделал
    во 2-м а и б сделал дальше идут те самые треугольники

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

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

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

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

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

  18. Вверх #18
    Постоялец форума Аватар для Яр
    Пол
    Мужской
    Адрес
    Odessa.Ua
    Возраст
    37
    Сообщений
    2,915
    Репутация
    168
    Но теперь нада найти макс. значение в следущей области :
    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
    Новичок
    Пол
    Мужской
    Сообщений
    60
    Репутация
    9
    Цитата Сообщение от GGenius
    Ну вот, а тут на форуме такие бла-бла разводят по поводу универов ,высшего образования в принципе и шага.....
    А вышку где-то получаешь?
    Мда...там делать нефик.
    Тебе катострофически не хватает той самой соображалки
    Ты только не исчи максимум сразу, а попробуй сделать цикл и выводи матрицу из 0 и 1. Пусть 1 ставит там, где потом будешь искать максимум
    вышку пока не получаю, пока получаю что могу, на что времени хватает
    Да и насчёт там разговоров не разговоров, мне многие советовали не идти туда учится. но я доволен, я на полустационаре, занятия 1 раз в неделю по полтора часа на урок ,сами понимаете что и как....за то мизерное время что нам уделяют я хоть чемуто научился
    Для Яр
    не канает, уже пробовал, он считает все элементы кроме последнего столбца, если ян е ошибаюсь
    Последний раз редактировалось Nobless; 29.01.2007 в 20:00.

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

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


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

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

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

Ваши права

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