InMydefence

Программа не сортирует массив из чисел, заданный txt файлом

16.06.2010, 15:02. Показов 1076. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе время суток Господа!

Программа не сортирует массив из чисел, заданный txt файлом, чтение проходит хорошо, данные выводятся в picture1, а далее сортировка по методу вставки, косячит.

Посмотрите пожалуйста свежим профессиональным глазом, заранее огромное спасибо!


Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Dim n As Integer, x() As Integer
Private Sub Command1_Click()
Open "D:\A.txt" For Input As #1
n = 0
Dim a(200) As Integer
While Not EOF(1): n = n + 1
Input #1, a(n)
Wend
Close #1
ReDim x(n) As Integer
For i = 1 To n: x(i) = a(i)
Picture1.Print x(i);
Next i
End Sub
 
Private Sub Command2_Click()
Unload Me
End Sub
Public Sub sortirovkavstavkoy(min As Integer, max As Integer)
Dim i As Long
Dim j As Long
Dim k As Long
Dim max_sort As Long
Dim next_num As Long
 
    max_sort = min - 1
    For i = min To max
        ' Vstavl chislo.
            next_num = x(i)
         'poisk chisla v spiske.
        For j = min To max_sort
            If x(j) >= next_num Then Exit For
        Next j
        ' peremestim bolshie elementi vniz, 4tobi osvobodit' mesto dlya
        'novogo chisla
        
        For k = max_sort To j Step -1
            x(k + 1) = x(k)
        Next k
        'pomestit' noviy element
            x(j) = next_num
        ' uvelichit' chtchik otsortirovannih elementov.
        max_sorted = max_sort + 1
        
        Next i
        For i = min To max
          Picture2.Print x(i);
        Next i
End Sub
 
 
Private Sub Command3_Click()
Call sortirovkavstavkoy(1, n)
End Sub
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.06.2010, 15:02
Ответы с готовыми решениями:

Программа сортирует массив из 5 целых чисел в разброс
Программа сортирует массив из 5 целых чисел в разброс. Вывести на экран числа по убыванию. Всех с наступающим НГ=)))

Программа, которая сортирует массив и находит количество различных чисел
Помогите написать программу, которая сортирует массив и находит количество различных чисел в нем. Добавлено через 2 часа 55 минут ...

Программа для работы с txt файлом
Привет ребята, сразу скажу что я не программист, и нуждаюсь в вашей помощи. Уверен, что для кого то эта задача на 10-15 минут. Мне нужно...

2
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
16.06.2010, 15:45
Кто-то говорит, что "ПРАВИЛЬНО" писать на русском языке латинскими буквами - я так не считаю.
Поэтому просто не читаю коментариев написанных таким образом.
Могу предложить алгоритм сортировки вставкой с русскими коментами. Рабирайся:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Private Sub Комманда3_Click() ' сортируем методом вставки
Dim I, J, K
Список4.Clear 'чистим список
For I = 0 To Список3.ListCount - 1 ' организуем цикл по всему списку
 Список4.AddItem Список3.List(I) ' добавляем в новый список очередной член массива
    For J = 0 To Список4.ListCount - 1 ' организуем цикл проверки
            If Val(Список3.List(I)) <= Val(Список4.List(J)) Then ' если значение меньше очередного
                      For K = Список4.ListCount - 1 To J Step -1 ' организуем цикл по оставшимся членам массива
                      Список4.List(K) = Список4.List(K - 1) ' и опускаем все до места, где должен быть текущий член
                      Next K '
                      Список4.List(J) = Список3.List(I) ' вставляем на место
                      GoTo 1 '
            End If '
    Next J '
1 '
Next I '
End Sub '
0
InMydefence
16.06.2010, 16:40
Лучший ответ Сообщение было отмечено как решение

Решение

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

Буду благодарен, если кто-то покажет ошибку в "моем" исходном коде.

Добавлено через 44 минуты
Исправил и вроде работает! если есть замечания, буду благодарен, слава Богу сдавать пока не завтра и нужно теперь прикрутить сюда бинарный поиск
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Dim n As Integer, x() As Integer
Private Sub Command1_Click()
Open "D:\A.txt" For Input As #1
n = 0
Dim a(200) As Integer
While Not EOF(1): n = n + 1
Input #1, a(n)
Wend
Close #1
ReDim x(n) As Integer
For i = 1 To n: x(i) = a(i)
Picture1.Print x(i);
Next i
End Sub
 
Private Sub Command2_Click()
Unload Me
End Sub
Public Sub insertionsort(min As Integer, max As Integer)
    max_sorted = min - 1
    For i = min To max
        'Вставляем число
            next_num = x(i)
         'Поиск числа в нашем списке
        For j = min To max_sorted
            If x(j) <= next_num Then Exit For
        Next j
        'Переместим большие элементы вниз, чтобы освободить место для нового числа
        For k = max_sorted To j Step -1
            x(k + 1) = x(k)
        Next k
        'Поместить новый элемент
            x(j) = next_num
        'Увеличить счетчик отсортированных элементов
           max_sorted = max_sorted + 1
          Next i
        For i = min To max
          Picture2.Print x(i);
        Next i
End Sub
 
 
Private Sub Command3_Click()
Call insertionsort(1, n)
End Sub
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.06.2010, 16:40
Помогаю со студенческими работами здесь

Почему программа не сортирует массив пузырьком?
Подскажите, пожалуйста, почему данная программа создает массив, но не сортирует его методом пузырька (выводит лишь неотсортированный...

Напишите программу, которая сортирует массив и находит количество различных чисел в нем
У меня есть начало программы для сортировки массива,как найти количество различных чисел в массиве? from random import randint print...

Напишите программу, которая сортирует массив целых чисел и определяет количество различных значений в нём
Помогите написать код,спасибо.Напишите программу, которая сортирует массив целых чисел и определяет количество различных значений в нём. ...

Сделать ввод текстовым файлом Input.txt, а вывод output.txt
var a : longint; s : string; i, n : integer; begin readln(a); str(a, s); n := length(s); for i...

Файл a.txt нужно сравнить с файлом c.txt
Всем привет! Есть файл a.txt: 1 2 3 4 5 Есть файл c.txt:


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru