Важная информация
Показано с 1 по 5 из 5

Тема: Отыскать в одномерном массиве А(N) элемент, встречающийся наибольшее число раз

  1. #1 Отыскать в одномерном массиве А(N) элемент, встречающийся наибольшее число раз 
    Новичок
    Регистрация
    18.04.2011
    Сообщений
    1
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    1. Составьте программу, отыскивающую в одномерном массиве А(N) элемент, встречающийся наибольшее число раз и, если таких чисел несколько, то выбирающую из них наименьшее.

    2. Составьте программу, генерирующую одномерный массив X(N), каждый элемент X[I] которого равен минимальному из чисел Y[1], Y[2], ..., Y[I], где указанные числа суть элементы одномерного массива Y(N).

    3. Составьте программу, отыскивающую номер первого по порядку нулевого элемента одномерного массива W(N).
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Вот третие
    Код qbasic:
    INPUT "Введите количество элементов", n
    DIM w(n)
    FOR i = 1 TO n
    INPUT "Введите элемент", w(i)
    NEXT i
    i = 1
    WHILE w(i) <> 0
    i = i + 1
    WEND
    PRINT "Нулевой элемент-"; i
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  3. #3  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    Программа по заданию 1, правда не полностью

    Код :
    INPUT "Введите количество элементов ", n
    DIM a(n)
    DIM av(n)
    DIM an(n)
    FOR i = 1 TO n
      PRINT "Введите элемент номер "; i;
      INPUT "- ", a(i)
    NEXT i
    jj = 0
    FOR i = 1 TO n
      FOR j = 1 TO n
        IF av(j) = a(i) THEN
          an(j) = an(j) + 1
          EXIT FOR
        END IF
        IF j > jj THEN
          jj = jj + 1
          av(j) = a(i)
          an(j) = an(j) + 1
          EXIT FOR
        END IF
      NEXT
    NEXT i
     
    m = 0
    k = 0
    FOR j = 1 TO jj
      IF an(j) > m THEN
        k = j
        m = an(j)
      END IF
    NEXT
    PRINT "Элемент "; av(k); " найден "; m; " раз"

    короче находит наиболее часто встречающийся, однако если их несколько то у меня терпежу не хватило дальше соображать пойду пообедаю, мож продолжу...
    Последний раз редактировалось Dimon012; 19.04.2011 в 08:05.
    Ответить с цитированием  
     

  4. #4  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    После обеда лучше думается!!! Итак задание 1:

    Код :
    INPUT "Введите количество элементов ", n
    DIM a(n)
    DIM av(n)
    DIM an(n)
    FOR i = 1 TO n
      PRINT "Введите элемент номер "; i;
      INPUT "- ", a(i)
    NEXT i
    ' подсчет количества для каждого элемента
    jj = 0
    FOR i = 1 TO n
      FOR j = 1 TO n
        ' если элемент уже встречался
        IF av(j) = a(i) THEN
          an(j) = an(j) + 1
          EXIT FOR
        END IF
        ' если элемент еще не встречался
        IF j > jj THEN
          jj = jj + 1
          av(j) = a(i)
          an(j) = an(j) + 1
          EXIT FOR
        END IF
      NEXT
    NEXT i
    ' выбор элемента по условиям
    m = 0
    k = 0
    FOR j = 1 TO jj
      ' если элемент встречается чаще чем предыдущий выбранный
      IF an(j) > m THEN
        k = j
        m = an(j)
      END IF
      ' при равенстве количества элементов
      IF an(j) = m THEN
        IF av(j) < av(k) THEN
          k = j
          m = an(j)
        END IF
      END IF
    NEXT
    PRINT "Элемент "; av(k); " найден "; m; " раз";
    IF m<5 Then
      PRINT "а"
    END IF

    Теперь все готово и даже вроде работает
    Последний раз редактировалось Dimon012; 19.04.2011 в 07:53.
    Ответить с цитированием  
     

  5. #5  
    Профи Аватар для Dimon012
    Регистрация
    09.02.2011
    Адрес
    Владивосток
    Сообщений
    850
    Сказал(а) спасибо
    29
    Поблагодарили 130 раз(а) в 108 сообщениях
    Записей в блоге
    3
    А вот вторую задачку делать не хочу, она самая простая, может самостоятельно, а
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 1
    Последнее сообщение: 14.01.2012, 08:07
  2. Ответов: 1
    Последнее сообщение: 10.11.2011, 03:59
  3. Ответов: 3
    Последнее сообщение: 28.05.2011, 11:52
  4. Ответов: 3
    Последнее сообщение: 17.05.2011, 21:36
  5. Ответов: 5
    Последнее сообщение: 17.04.2011, 00:30
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •