Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Б) алгоритм сортировки методом пузырька




1) Сравнить х(1) и х(2):

· если х(1)>х(2), сделать перестановку

· если х(1)<=х(2), перейти к 2

2) Сравнить х(2) и х(3)

· если х(2)<=х(3), перейти к 3

· если х(2)>х(3), поменять местами х(2) и х(3)

· сравнить х(2) и х(1), сделать перестановку, если она нужна

3) И вообще, если х (i) - последний элемент в упорядоченном списке, то сравнить х (i) и x (i+1)

4) Если х (i)<= х (i+1), установить i= i+ 1 и, если i<= n-1, перейти к 3, в противном случае сортировка закончена.

если х (i)> х (i+1), то

· Поменять местами х (i) и х (i+1)

· Убедиться, что х (i) находится на своем месте в упорядоченном списке

· Установить k=i

5)Сравнить х (k-1) и х (k):

· если x(k) меньше, то сделать перестановку; установить k=k-l и, если k>l, перейти к 5

· если x(k)>=x(k- 1), то перейти к 4

На рис.13 представлен один из возможных алгоритмов сортировки метода “ пузырька ”. Элементы массива сортируются в порядке убывания

 

for i =1 to n step -1

for j = 1 to i-1

if a(j) < a(j+1) then

swap a(j), a(j+1)

end if

next j

next i

да

нет

да

 

 

Рис.13

Пузырьковая сортировка (bubble) может быть выполнена и с помощью следующих подпрограмм

Подпрограмма bubble.bas SUB BUBBLE (X(),N) FOR I=1 TO N-1 FOR J=N-1 TO I STEP -1 IF X(J-1)>X(J) THEN SWAP X(J), X(J-1) END IF NEXT J NEXT I END SUB Подпрограмма bubble1.bas SUB BUBBLE1 (X(),N) M: Q=0 FOR I=1 TO N-1 IF X(I-1)>X(I) THEN TMP=X(I-1):X(I-1)=X(I):X(I)=TMP:Q=1

 

Для выполнения лабораторной работы студент получает задание от преподавателя из вариантов задания по данной работе, составляет блок – схему алгоритм решения, программу на QBASIK, решает задачу на ЭВМ.

В отчет входят:

· математическая постановка задачи;

· блок – схема решения;

· программа на QBASIC;

· результаты решения задачи с той формой распечатки, что требуется по условия задачи.

 

Пример оформления самостоятельной работы.

Лист № 1.

Задание.

Дан массив а, не содержащий нулевых элементов, из 20 элементов. Посчитать среднее среди отрицательных элементов. Если оно больше заданного числа, положительные элементы исходного массива уменьшить на это число, а отрицательные – увеличить. В новом массиве найти максимальный элемент и его индекс. Результат представить в виде:

№ п/п Исходный массив Полученный массив
     

Мах =

I max =

 

Математическая постановка задачи.

Дано: аi i = 1,20

число р

Определить:

 
 


Если ai > 0

 

ai – p если

bi =

ai + p если

max{bi}, i max

bi если bi≥ max

max

max если bi < max

Лист № 2.

Блок – схема поставленной задачи.

 
 

 


 

 


Лист № 3.

Программа, выполненная на языке QBASIC.

CLS

DIM 3(1 TO 20), b(1 TO 20)

FOR i = 1 TO 20

PRINT “a(“;i;”)=”;

INPUT “”, a(i)

NEXT i

INPUT “введите заданное число=”; p

max = -10 10

S = 0

K = 0

FOR i = 1 TO 20

IF a(i)<0 THEN

S=S+a(i)

K=k+1

END IF

NEXT i

PRINT: PRINT

IF Sr > p THEN

END IF

FOR i = 1 TO 20

IF a(i)>0 THEN b(i)=a(i)-P

IF a(i)<0 THEN b(i)=a(i)+P

IF b(i) >= max THEN max = b(i); imax = i

NEXT i

PRINT “*********”

PRINT “r/n*Исходный массив*Полученный массив*”

FOR i = 1 TO 20

PRINT USING “*##*######*####*”; i; a(i); b(i)

NEXT i

PRINT “********”

PRINT: PRINT

SLEEP

PRINT “max=”;max

PRINT “imax=”;imax

END

 

Лист № 4

Результаты работы программы.

А(1) = 1

А(2) = 2

А(3) = 3

А(4) = 4

А(5) = 5

А(6) = 6

А(7) = 7

А(8) = 8

А(9) = 9

А(10) = 0

А(11) = -1

А(12) = -2

А(13) = -3

А(14) = -4

А(15) = -5

А(16) = -6

А(17) = -7

А(18) = -8

А(19) = -9

А(20) = 20

 

Введите заданное число = -100

Sr = -5

 

*п/п *Исходный массив *Полученный массив *

*1 *1 *101 *

*2 *2 *102 *

*3 *3 *103 *

*4 *4 *104 *

*5 *5 *105 *

*6 *6 *106 *

*7 *7 *107 *

*8 *8 *108 *

*9 *9 *109 *

*10 *0 *0 *

*11 *-1 *-101 *

*12 *-2 *-102 *

*13 *-3 *-103 *

*14 *-4 *-104 *

*15 *-5 *-105 *

*16 *-6 *-106 *

*17 *-7 *-107 *

*18 *-8 *-108 *

*19 *-9 *-109 *

*20 *20 *120 *

 

MAX = 120

IMAX = 20

 

 






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных