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

Тема: Помогите отредактировать программу с массивом

  1. #1 Помогите отредактировать программу с массивом 
    Новичок
    Регистрация
    04.06.2011
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Задали написать программку сортировки массива
    и всем разными методами. Мне попался метод простой вставки.
    Сортировка выглядит так:
    Массив состоит из элементов k(1),k(2),...k(j)....,k(n)
    пусть элементы к(1),к(2),к(3)....,k(j-1) стоят так, что k()1<=k(2)<=....k(j-1)
    Элемент k(j) сравнивается по очереди с k(j-1),k(j-)2 и так далее, пока не найдутся такие элементы k(i) и к(i+1),что k(i)<=k(j)<=k(i+1).Тогда элементы к(i+1), k(j+2)...k(j-2), k(j-1) следует отодвинуьт вправо на одно место и элемент k(j) разместить на позиции k(i+1)
    Алгоритм выглядит так:
    1)Начальная установка j=2
    2) Определения i=j-1, k=k(j)
    3)Сравнение k и k(i). Если k больше и и равно k(i) перейти в пункт 6. В противном случае - пункт 4.
    4)Определение k(i+1)=k(i), i=i-1
    5) Сравнение. Если i больше 0 - перейти в пункт 3, в противном случае пункт 6.
    6) Разместить k на месте k(i+1)
    7)Замена j за формулой j=j+1
    8) Сравнение j и n. Если j меньше и равно n - пункт 2. В противном случае пункт 9
    9)Конец сортировки




    Моя программа выглядит так:
    Код qbasic:
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    [Ссылки могут видеть только зарегистрированные пользователи. ] "n"; n
    [Ссылки могут видеть только зарегистрированные пользователи. ] k(n)
    [Ссылки могут видеть только зарегистрированные пользователи. ] "Vvedite  elementbl"
    FOR j=1 TO n
    [Ссылки могут видеть только зарегистрированные пользователи. ] "k(";j; ") =";
    [Ссылки могут видеть только зарегистрированные пользователи. ] k(j)
    NEXT j
    FOR j=1 TO n
    j=2
    DO
    k=k(J)
    i=j-1
    WHILE k>=k(i) [Ссылки могут видеть только зарегистрированные пользователи. ] i>0
    k=k(i+1)
    k(i)=k(i+1)
    i=i-1
    WEND
    j=j+1
    IF j<=n THEN i=j-1: k=k(j)
    FOR j=1 TO n
    [Ссылки могут видеть только зарегистрированные пользователи. ] k(j); " ";
    NEXT
    NEXT 
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    она не работает, поэтому обращаюсь к Вам. Помогите, пожалуйста.
    Ответить с цитированием  
     

  2. #2  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Вечером, как доберусь до компа, сделаю. Можно реализовать сортировку пузырьком?
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  3. #3  
    Новичок
    Регистрация
    04.06.2011
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Да я нашел как "пузырьком". Препод наш - изверг. Заставляет делать по алгоритму
    Ответить с цитированием  
     

  4. #4  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Ой, сегодня не получится, извините. Дела всякие навалились
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  5. #5  
    Супер модератор Аватар для Kakos_nonos
    Регистрация
    07.01.2011
    Адрес
    Кубань
    Сообщений
    1,531
    Сказал(а) спасибо
    126
    Поблагодарили 428 раз(а) в 291 сообщениях
    Записей в блоге
    6
    Код qbasic:
    INPUT "n=", n
    DIM k(n)
    FOR i = 1 TO n
    INPUT "Vvedite element", k(i)
    NEXT i
    10 j = 2
    20 i = j - 1
    k = k(j)
    30 IF k >= k(i) THEN GOTO 60
    40 k(i + 1) = k(i)
    i = i - 1
    50 IF i > 0 THEN GOTO 30
    60 k(i + 1) = k
    70 j = j + 1
    80 IF j <= n THEN GOTO 20
    FOR i = 1 TO n
    PRINT k(i)
    NEXT i
    Вот, работает!
    [Ссылки могут видеть только зарегистрированные пользователи. ]
    Ответить с цитированием  
     

  6. #6  
    Новичок
    Регистрация
    04.06.2011
    Сообщений
    3
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз(а) в 0 сообщениях
    Спасибо Вам огромное!
    Ответить с цитированием  
     

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

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

Похожие темы

  1. помогите написать программу
    от Стамус в разделе QBasic
    Ответов: 5
    Последнее сообщение: 18.10.2012, 20:35
  2. Ответов: 2
    Последнее сообщение: 05.09.2012, 15:25
  3. Помогите понять программу
    от Black Doomer в разделе QBasic
    Ответов: 1
    Последнее сообщение: 15.12.2011, 18:12
  4. Ответов: 1
    Последнее сообщение: 01.12.2011, 17:53
  5. Помогите с массивом
    от alf в разделе QBasic
    Ответов: 14
    Последнее сообщение: 04.12.2010, 00:29
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •