- •Алгоритмизация и основы программирования
- •Задания на разработку линейных алгоритмов и программ.
- •If условие then оператор
- •If условие goto nc
- •If условие then
- •Задания на разработку разветвляющихся алгоритмов и программ.
- •2) Цикл с постусловием цикл «повторять… до»
- •Алгоритм 4. Нахождение минимального (максимального) элемента в массиве и его индекса.
- •Задания на разработку циклических алгоритмов и программ.
- •Обработка текстовых данных.
- •Среды программирования.
- •Краткое описание системы quick basic
- •Работа с файлами
- •Окно Open Program
- •Окно Save As
- •Редактирование файла
- •Запуск и компиляция программы
- •Установка некоторых режимов работы Quick Basic
- •Некоторые сообщения об ошибках
- •Отладка и выполнение программы на компьютере.
Алгоритм 4. Нахождение минимального (максимального) элемента в массиве и его индекса.
Алгоритм 5. Замена элемент в массиве на некоторое значение
Алгоритм 6. Поменять некоторые элементы массива местами
Алгоритм 7. Поиск заданного элемента в массиве
R$ = ”ЭЛЕМЕНТА, РАВНОГО K НЕТ”
FOR I = 1 TO N
IF P(I)<>K GOTO 10
R$ = “ЭЛЕМЕНТ НАЙДЕН”: I = 1000
10 NEXT
Алгоритм 8. Объединение двух массивов равного размера в один с чередованием элементов исходных массивов
FOR I = 1 TO N
C(2*I-1) = A(I)
C(2*I) = B(I)
NEXT
Алгоритм 9. Инвертирование массива C(N)
M = INT(N/2)
FOR I = 1 TO M
P = C(I): C(I) = C(M-I+1)
C(N-I+1) = P
Алгоритм 10. Циклический сдвиг элементов массива на m позиций вправо
FOR I = 1 TO M
P(I) = A(N-M+1)
NEXT
FOR I = N-M TO 1 STEPP-1
A(I+M) = A(I)
NEXT
FOR I = 1 TO M
P = A(N)
FOR J = N TO 2 STEP-1
A(J) = A(J-1)
NEXT
A(1) = P
NEXT
Алгоритм 11. Упорядочение (сортировка) массива
FOR I =1 TO N-1
P = A(I): K=I
FOR J =I+1 TO N
IF A(J) >= P GOTO 10
P = A(J): K = J
10 NEXT J
A(K) = A(I): A(I) = P
NEXT I
Алгоритм 12. Проверка массива на упорядоченность
T$ = “МАССИВ УПОРЯДОЧЕН”
FOR I = 1 TO N-1
IF A(I) < A(I+1)GOTO 10
I = N: T$ = “МАСИВ НЕ УПОРЯДОЧЕН”
10 NEXT I
Алгоритм 13. Поиск заданного элемента в упорядоченном по возрастанию массиве.
Нужно в массиве М определить индекс C элемента равного заданному K.
Идея: заданное число K сравнивается со средним элементом в массиве M, индекс которого C = (A+B)/2, где A и B нижняя и верхняя границы индексов в точках A =1 B=N.
Если M(C) ≠ K, то далее поиск идет в одной из половин массива M(C) в зависимости от результатов сравнения. Для этого изменяется значение или A на (C+1), или B на (C-1). Затем K сравнивается со средним элементом в соответствующей половине и т.д.
A = 1: B = N: L = 0
20 IF B < A GOTO 90
C = INT((A+B)/2)
IF M(C) = K GOTO 80
IF M(C) > K GOTO 70
A = C+1: GOTO20
70 B = C-1: GOTO 20
80 L = 1: B = A-1: GOTO 20
90 RETURN
Задача 3.
Вводится информация о 6-ти отелях с количеством посадочных мест в ресторане в каждом. Вывести название отеля с максимальным количеством посадочных мест в ресторане.
Описание алгоритма:
объявляем два массива: массив названий отелей NO$(6) и массив количеств посадочных мест в ресторанах в каждом K(6);
переменной Кmax присваиваем начальное значение, которое д.б. заведомо меньше самого малого среди заданных (в данном случае возьмем –1);
открываем цикл, в котором:
вводим название отеля и количество мест в нем;
ищем максимальное количество Кmax и его индекс imax, сравнивая в каждом цикле введенное значение К с Кmax - если K(g)>Kmax, то Kmax присваивается значение K(g), а его индексу gmax значение g;
цикл будет выполняться 6 раз;
после завершения цикла выводится результат - ”Максимальное количество посадочных мест ” Kmax “ в отеле ” NO$(gmax)
Рис.11. Блок-схема алгоритма решения задачи 3.
Программа
Dim NO$(6),K(6)
Kmax= -1
For g=1 To 6
Input “Отель, кол-во мест”, NO$(g), K(g)
If K(g)>Kmax Then Kmax=K(g): gmax=g
Next
Print”Максимальное количество посадочных мест ” Kmax “ в отеле ” NO$(gmax)
End