КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Получение нового массива из данного
Включение элемента в заданную позицию массива Удаление элемента из массива Требуется удалить k-й элемент из массива ai(i = 1, n) Удалить элемент, расположенный в k-м месте в массиве можно, сдвинув весь "хвост " массива, начиная с (k+1) элемента на одну позицию влево, т,е, выполнив операцию ai = ai+1 i = k, k+1,..., n-1
Перед включением элемента в k-ю позицию необходимо раздвинуть массив, т.е. передвинуть " хвост " массива вправо на одну позицию, выполняя операцию ai+1=ai, i= n,n-l,...,k.. Перемещение элементов массива нужно начинать с конца. Далее k-му элементу присваивается заданное значение В. Размер массива увеличивается на 1.
Дано: одномерный массив аi(i = 1, n). Получить новый массив из элементов исходного, величина которых больше заданного числа p
input p k=0: j=1 for i=l to n if a(i) > p then b(j) = a(i) k = k+1 нет j = j+1 да end if нет next i да
Рис.11 8.Упорядочение (сортировка) массива. Дан числовой массив xi..,хn элементы которого попарно различны. Требуется переставить элементы массива так, чтобы после перестановки они были упорядочены в порядке возрастания: xi<...<xn.(или убывает xi >…>xn) а) алгоритм сортировки выбором Первое место должен занять наименьший элемент, второе наименьший из всех остальных и т.д. Таким образом, каждый раз необходимо находить индекс наименьшего элемента (k) и осуществлять перестановку (рис.12) for 1=1 to n нет k = i да for j = i+1 to n if x(j)<x(k) then k = j next j swap x(i), x(k) нет next i да
Рис.12 б) алгоритм сортировки методом пузырька 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) может быть выполнена и с помощью следующих подпрограмм
Для выполнения лабораторной работы студент получает задание от преподавателя из вариантов задания по данной работе, составляет блок – схему алгоритм решения, программу на 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
Дата добавления: 2014-11-16; Просмотров: 575; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |