Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

4511

.pdf
Скачиваний:
4
Добавлен:
08.01.2021
Размер:
1.09 Mб
Скачать

31

1

начало

2 Ввод

a,b,c

3нет

 

a>b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a>с

 

4

 

 

 

 

 

 

нет

b>c

 

5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

да6

 

 

 

 

 

 

 

 

 

 

да

 

 

 

 

 

 

 

7

 

 

 

 

 

8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

max=a

 

 

 

 

max=c

 

 

max=b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

9

Вывод

a,b,c,max

10

конец

Рис. 9. Схема алгоритма нахождения максимального из 3 величин

Для тестирования алгоритма нахождения максимального из 3 величин составляется табл. 8.

Таблица 8

Тестирование алгоритма

Шаг

Проверка условий

a

b

c

max

 

 

 

 

 

 

1

2

3

4

5

6

 

 

 

 

 

 

1

 

-5

3

1

 

 

 

 

 

 

 

2

Проверка условия a>b?

 

 

 

 

«нет» -5>3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Проверка условия b>c?

 

 

 

=b=3

«да» 3>1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

32

 

 

 

 

 

Окончание табл. 8

1

2

3

4

5

6

 

 

 

 

 

 

 

 

1

 

0

1

4

 

 

 

 

 

 

 

 

 

2

Проверка условия a>b?

 

 

 

 

 

«нет» 0>1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Проверка условия b>c?

 

 

 

=c=4

 

«нет» 1>4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

7

-6

2

 

 

 

 

 

 

 

 

 

2

Проверка условия a>b?

 

 

 

 

 

«да» 7>-6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

Проверка условия a>c?

 

 

 

=a=7

 

«да» 7>2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Написание и отладка программы

Располагаем на форме объекты, как показано на рис. 10, используя панель инструментов.

Рис. 10. Эскиз формы Устанавливаем значения свойств объектов в соответствии с табл. 9. Ана-

лизируем исходные, промежуточные, выходные данные, заполнив табл. 10. Таблица 9

Объекты управления

Элемент управления

Свойство

Значение

Примечание

 

 

 

 

Form1

Name

Form1

 

 

 

 

 

Расчёт max из 3 чисел a,b,c

 

 

Caption

 

 

 

 

 

Command1

Name

Command1

 

 

 

 

Caption

Вывести

 

 

 

 

 

 

 

Command2

Name

Command2

 

 

 

 

Caption

Выход

 

 

 

 

 

 

 

33

 

 

 

 

Таблица 10

 

Анализ исходных, промежуточных, выходных данных

 

 

 

 

 

Обозначения данных

Тип данных

Значения

Примечание

 

 

в формуле

в программе

 

 

 

 

 

 

 

 

a

a

Integer

вводится

 

b

b

Integer

вводится

 

c

c

Integer

вводится

 

max

max

integer

вычисляется

 

 

 

 

 

 

Анализ результатов

Результаты выполнения программы

Входные данные

Результат

 

 

 

1

a=-5,b=3,c=1

Из 3 чисел a=-5,b=3,c=1

максимальное=3

 

 

 

 

 

2

a=0,b=1,c=4

Из 3 чисел a=0,b=1,c=4

максимальное=4

 

 

 

 

 

3

a=7,b=-6,c=2

Из 3 чисел a=7,b=-6,c=2

максимальное=7

 

 

 

 

 

Сопровождение программы

Фрагмент программы нахождения максимального из 3 чисел на Visual

Basic 6.0 с комментариями:

‘Процедура обработки события Click для кнопки управления Вычислить

Private Sub Command1_Click()

‘Объявление переменных a,b,c,max типа integer Dim a as integer, b as integer, c as integer Dim max as integer

‘Ввод значений переменных a,b,c a=Val(InputBox(“Введите целое число а”)) b=Val(InputBox(“Введите целое число b”)) c=Val(InputBox(“Введите целое число c”))

‘Сравнение чисел if a>b then

if a>c then max=a else max=c elseif b>c then

max=b

34

else max=c

end if

‘Вывод на форму максимального из 3 чисел

msgbox “Из 3 чисел a=”+cstr(a)+”,b=”+cstr(b)+_

”,c=”+cstr(c)+chr(10)+”максимальное=”+cstr(max)

End Sub

Задание № 1

0.Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения: в слове должны остаться только различные буквы.

1.Числа, которые можно одинаково прочитать слева направо и справа налево, называются палиндромами (21312, 52325, 4224). Проверить, является ли заданное число палиндромом.

2.В заданном интервале найти все натуральные числа, равные кубу суммы своих цифр.

3.Натуральное число называется совершенным, если оно равно сумме своих простых делителей, например 6=1+2+3. Найти все совершенные числа в заданном интервале.

4.Известно, что разность любого натурального числа и суммы его цифр кратна 9. Проверить этот факт для чисел в заданном интервале.

5.Число делится на 11, если разность между суммой цифр, стоящих на нечётных местах, кратна 11. Проверить этот признак для всех натуральных чисел, значение которых не превосходит заданного m, и показать числа, кратные 11.

6.Определить, сколько различных букв содержится в слове.

7.Найти два наименьших числа, которые начинаются на 5 и из которых, перенеся первую цифру в конец, можно получить новое число, в 5 раз меньшее, чем искомое.

8.Проверить, можно ли заданное натуральное число представить в виде: а) произведения двух простых чисел; б) произведения трёх простых чисел; в) квадрата какого-либо простого числа; г) куба какого-либо простого числа.

9.Даны целые числа p, q, a1, ..., a55 (0≤q<p). В исходной последовательности a1, ..., a55 заменить нулями элементы последовательности, модуль которых при делении на p даёт в остатке q.

35

Задание № 2

0.Даны действительные числа a1, ... , an, p, натуральное число k (a1 a2

.. an, k n). Удалить из a1, ... , an элемент с номером k (то есть ak) и вставить элемент, равный p, так, чтобы не нарушалась последовательность.

1.Перенести в начало массива S(k) все отрицательные элементы по возрастанию, далее нулевые и затем положительные также по возрастанию.

2.Элементы массива M(k) случайны перемешаны. В массиве N(k) хранятся номера массива M(k) до перемешивания. Восстановить исходное состояние массива M(k).

3.Дана матрица натуральных чисел Y(n,m), в которой столбцы упорядочены по убыванию. Вычислить сумму элементов каждого столбца и из полученных сумм получить новый массив S(k), который упорядочить по убыванию.

4.Дана матрица натуральных чисел Y(n,m), в которой строки упорядочены по возрастанию. Вычислить сумму элементов каждой строки и из полученных сумм получить новый массив S(k), который упорядочить по возрастанию.

5.Дана матрица натуральных чисел Y(n,m), в которой столбцы упорядочены по убыванию. Переместить содержимое матрицы в массив S(k) по столбцам и упорядочить по убыванию, удалив одинаковые элементы. Определить новое количество элементов.

6.В матрице X(m,n), где m=n, переставить строки и столбцы так, чтобы элементы главной диагонали образовывали убывающую последовательность.

7.Даны два упорядоченных по возрастанию массиваA(n), B(m). Получить слиянием новый массив C(n+m), в котором упорядочить элементы по убыванию.

8.Дана матрица T(m), элементы которой строковые переменные. Упорядочить строки матрицы по возрастанию.

9.Даны пять попарно различных целых чисел: a,b,c,d,e. Упорядочить их по возрастанию, используя для этого не более 7 сравнений.

Примеры алгоритмов и программ к заданию № 2.

Расположить элементы последовательности A1, A2, ..., AN в порядке убывания. Найти в массиве элемент с наибольшим значением и поменять его

36

местами с первым элементом. Далее те же действия выполнить с остальными N-1 элементами массива, затем N-2 элементами и т.д., пока не останется один элемент последний, наименьший.

Сортировка данныхэто обработка информации, в результате которой элементы её (записи) располагаются в определённой последовательности в зависимости от значения некоторых признаков элементов этой информации.

К методам сортировки относятся простой выбор, простой обмен, простые вставки, метод Шелла.

Вметоде простого выбора выделяется наименьший (или наибольший) элемент массива и отделяется от остальных. Далее опять выделяется наименьший (или наибольший) из оставшихся и т.д.

Схема алгоритма метода простого выбора представлена на рис. 11, а.

Вметоде простого обмена если два элемента расположены не по порядку, то они меняются местами. Этот процесс повторяется до тех пор, пока элементы не будут упорядочены (рис. 11, б).

Вметоде Шелла рассматриваются отдалённые, а затем близкорасположенные записи. Каждый проход в этом случае характеризуется некоторым

смещением h для сортируемых записей интервал, который разделяет сравниваемые записи.

В методе простых вставок элементы просматриваются по одному. Каждый новый элемент вставляется в подходящее место среди ранее упорядоченных элементов. Схема алгоритма сортировки простыми вставками представлена на рис. 12.

Сортировки простым выбором и простым обменом относятся к сортировкам с убывающим шагом. Сортировка простыми вставками работает со списком неупорядоченных целых чисел и сортирует их в порядке возрастания.

Отсортированный список вначале пуст. На каждом шаге первое число из не отсортированного списка удаляется и помещается в отсортированный список на соответствующее место. Для этой цели отсортированный список должен каждый раз быть просмотрен, начиная с наименьшего числа и до тех пор, пока нужное место не будет найдено. При этом все реорганизации списка происходят в одном списке. Алгоритм заканчивает свою работу, когда элемент, стоящий до сих пор на последнем месте, будет вставлен на соответствующее место в отсортированном списке.

начало

Ввод

n, An

i =1(1)n

k = i, x = Ai

j = i +1(1)n

нет

Aj > x

да

x = Aj ,k = j

Ak = Ai;

Ai = x

A(n)

конец

а)

37

 

начало

 

 

Ввод

 

 

N, AN

 

 

i = 2,N

 

 

j = N

 

 

A j 1 > A j

да

 

 

 

нет

x = A j 1

 

A j 1 = A j ; A j = x

 

 

 

j = j 1

 

да

j ≤ i

 

 

 

 

нет

 

 

AN

 

 

конец

 

 

б)

 

Рис. 11. Схема алгоритма: а) простой выбор, б) простой обмен

нет

j = i

Ak = x

нет

j > k

да

A j = A j1 j = j 1

38

 

начало

Ввод

N, AN

i = 2,N

x = Ai ;k = 1

j = i 1

j>0

да

 

Ai >

да

A j

 

x = A j 1

нет

A j 1 = A j ; A j = x

j = j 1

Вывод AN

конец

Рис. 12. Сортировка простыми вставками

Фрагмент программы для организации сортировки простым выбором:

For i = 1 to n

k = i : x = a(i)

For j = i + 1 to n

39

If a(j) > x then x = a(j)

k = j end if

next j

a(k) = a(i): a(i) = x Next i

For i = 1 to n

Print “ ”; a(i);

Next i

Фрагмент программы для организации сортировки простым обменом:

For i = 2 to n j = N

Do

If a(j - 1) < a(j) then x = a(j - 1) a(j-1) = a(j)

a(j) = x End If

j = j - 1

Loop While j >= 1

Next i

For i = 1 To N

List2.AddItem (Str(Round(A(i),2))) next i

Фрагмент программы для организации сортировки простыми вставками:

For i = 2 to n k = 1

x = a(i): j = i-1 Do While j > 0

If a(i) > a(j) then k = j + 1: j = 0

End If

j = j - 1

Loop

j = i

Do While j > k

a(j) = a(j-1): j=j-1

40

Loop

a(k) = x

Next i

For i = 1 to n

Print “ ” ; a(i);

Next i

Фрагмент программы для сортировки методом Шелла:

Print “ Исходный массив”

For i = 1 To N

Print “ ”;a(i);

Next i

Print

H = N\2

Do

Do

hs = 0

For i = 1 to N-h

If a(i)>a(i+h) Then

x = a(i): a(i)= a(i+h) a(i+h) = x: hs = 1

End If

Next i

Loop While (hs = 1)

Print “приращение h=”;h; “ ”;

For i = 1 To N

Print “ “;a(i);

Next i

Print h = h\2

Loop While h>0

Print

Print “Результат сортировки”

For i = 1 To N

Print “ “;a(i);

Next i

Задание № 3

Ниже приводится перечень вопросов для выполнения студентами учебно-

исследовательской работы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]