Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Команды управления ходом выполнения программыСодержание книги
Поиск на нашем сайте
Очень часто, в зависимости от некоторых условий, приходится изменять последовательность выполнения команд действия. Команды управления ходом выполнения программы делятся на три группы: 1. Команды безусловного перехода; 2. Команды условного перехода; 3. Команды организации циклов.
Безусловная передача управления
Формат: GOTO номер строки или метка Управление передается команде, помеченной номером строки или меткой.
Например: GOTO W … W: PRINT"Решение получено" Примечание. В среде программистов употребление GOTO принято считать дурным тоном. Чрезмерное пристрастие к GOTO запутывает программу.
Условная передача управления
Конструкцию условной передачи управления можно записать в одном из двух форматов - блочном (в несколько строк) или линейном (в одной строке).
Линейный формат: IF логическое выражение THEN <блок команд 1> [ELSE <блок команд 2>] Блочный формат: IF логическое выражение THEN <блок команд 1> [ELSE <блок команд 2>] END IF Выполнение. Если логическое выражение принимает значение "Истина", выполняется блок команд 1, если логическое выражение - "Ложь", выполняется блок команд 2. Если ELSE отсутствует, то выполняется команда, стоящая за END IF.
Пример 1 INPUT "Сколько будет 2x2 ",X IF X=4 THEN PRINT "Правильно" ELSE PRINT "Не правильно" END
Пример 2 Вычислить значение функции Y
Линейный формат: INPUT "Введите значение аргумента Х ",X IF X<=1 THEN Y=X-1/2*X^2+3 ELSE Y=1.05*(X-1)^2 PRINT "При значении Х=";X;" функция Y=";Y END Блочный формат: INPUT "Введите значение аргумента Х ",X IF X<=1 THEN Y=X-1/2*X^2+3 ELSE Y=1.05*(X-1)^2 END IF PRINT "При значении Х=";X;" функция Y=";Y END Возможна вложенность одного условного оператора в другой.
Формат записи вложенных условных операторов
IF логическое выражение THEN <блок команд 1> [ELSEIF логическое выражение THEN <блок команд 2>] …………………….. [ELSE <блок команд n>] END IF Пример 3 Составить программу вычисления функции:
1 вариант IF Z<0 THEN F=Z-5/Z^2 ELSEIF Z<=1 THEN F=Z^2-1 ELSE F=1/(1-Z) ENDIF PRINT "F=";F END
2 вариант IF Z<0 THEN F=Z-5/Z^2 IF Z<=1 AND Z>=0 THEN F=Z^2-1 IF Z>1 THEN F=1/(1-Z) PRINT "F=";F END Для самостоятельного решения: Составить программу определения кислотности раствора с помощью лакмусовой бумажки. Напомним, что, если бумажка окрашивается в красный цвет - раствор кислотный; синий - раствор щелочной; не меняет цвет - раствор нейтральный. Работа с датой и временем Функция DATE$ Выдается текущая дата, зарегистрированная в компьютере. Формат даты: ММ-ДД-ГГГГ. Например PRINT DATE$ Выведется текущая дата: 15-09-2000 Функция TIME$ Выдается текущее системное время, зарегистрированное в компьютере. Формат времени: ЧЧ:ММ:СС (часы, минуты, секунды). Например PRINT TIME$, на экране выдается текущее время.
Циклы В языке BASIC предусмотрено два основных способа организации циклов: § повторение блока команд заданное количество (число) раз (цикл со счетчиком); § циклическое повторение блока команд, пока выполняется (или не выполняется) некоторое условие. Цикл со счетчиком (FOR…NEXT)
Этот оператор используется, когда некоторый блок команд необходимо выполнить заданное число раз. Формат FOR счетчик=E1 TO E2 [STEP E3] Блок команд NEXT счетчик счетчик (параметр)- числовая переменная; E1 - начальное значение счетчика; E2 - конечное значение счетчика; E3 - шаг изменения счетчика. По умолчанию этот шаг равен 1; Блок команд - набор операторов, предназначенных для повторения. Выполнение. Если E3 >0, то цикл продолжается все время, пока счетчик < или = E2. Если E3 <0, то цикл продолжается все время, пока счетчик > или = E2. Пример ы 1) FOR I=1 TO 5 PRINT I; NEXT I Результат: 1 2 3 4 5 Тело цикла будет выполняться 5 раз. Шаг изменения счетчика по умолчанию равен 1. 2) FOR I=1 TO 5 STEP 2 PRINT I; NEXT I Результат: 1 3 5 3) Обратный цикл FOR I=5 TO 1 STEP -1 PRINT I; NEXT I Результат: 5 4 3 2 1 4) FOR I=5 TO 1 PRINT I; NEXT I Проверка выхода из цикла производится в начале цикла, поэтому цикл не выполнится ни разу. Ограничения при использовании оператора цикла FOR … NEXT: 1. Не изменяйте значение параметра цикла внутри цикла FOR I=1 TO 5 I=I+1 ' НЕЛЬЗЯ! NEXT I 2. Никогда не передавайте управление внутрь цикла, это может привести к непредсказуемым результатам. GOTO 10 ' НЕЛЬЗЯ! FOR I=1 TO 5 10 INPUT A S=S+A NEXT I Досрочный выход из цикла Для цикла FOR предусмотрена возможность безусловного выхода из цикла (до его завершения). Управление передается команде, следующей за NEXT. Формат команды выхода: EXIT FOR Например FOR I=1 TO 10 INPUT "Введите значение параметра";F IF F=100 THEN EXIT FOR S=S+F NEXT I PRINT "Значения "
Подсчет:
Пример 1. Подсчитать сумму 10 значений переменной A. S=0 FOR I=1 TO 10 INPUT "Введите значение переменной";A S=S+A 'Подсчет суммы значений переменной A NEXT I PRINT "Сумма ="; S Пример 2. Подсчитать количество положительных чисел и произведение отрицательных чисел из N введенных. INPUT “Введите количество значений”;N К=0 P=1 FOR I=1 TO N INPUT "Введите значение переменной";A IF A>0 THEN K=K+1 IF A<0 THEN P=P*A NEXT I PRINT"Количество положительных чисел =";K PRINT"Произведение отрицательных чисел =";P Практическое Задание: 1. Подсчитать сумму положительных элементов, не превышающих значения 10 из N введенных. 2. Подсчитать количество мальчиков, рост которых превышает 165 см и количество девочек, рост которых не превышает 165. Практическое занятие Пример 1. Рассчитать и вывести на печать значения функции Y=5/X при изменении аргумента X от -5 до 5 с шагом 2. FOR X=-5 TO 5 STEP 2 Y= 5/X PRINT "X=";X, "Y=";Y NEXT X Пример 2. Найти максимальное значение из N введенных. Вывести максимальное значение и его индекс. INPUT "Введите количество значений";N INPUT "Введите первое значение";A MAX=A: IN=1 FOR I=2 TO N PRINT "Введите "; I; "-ое значение" INPUT A IF A>MAX THEN MAX=A: IN=I NEXT I PRINT "Максимальное значение =";MAX PRINT “Индекс максимального значения =”; IN Практическое задание:
Цикл WHILE … WEND Формат WHILE логическое выражение Блок команд WEND Данный оператор позволяет выполнять блок команд до тех пор, пока значение логического выражения "Истина". После завершения цикла управление передается команде, следующей за WEND. Например: WHILE PAS$<>"Петуния" INPUT"Введите пароль";PAS$ WEND PRINT"Добро пожаловать" Этот цикл будет работать до тех пор, пока не будет введен правильный пароль. В блоке команд должен присутствовать оператор, влияющий на значение логического выражения. Например: 1) I=0 WHILE I<=10 I=I+1 'оператор, который влияет на значение логического выражения WEND PRINT I
2) Пример бесконечного цикла I=0 WHILE I<=10 INPUT A S=S+A WEND PRINT S В блоке команд нет оператора, который бы изменял значение I. Если при первой проверке условия окажется, что значение логического выражения - "Ложь", блок команд не будет выполнен ни разу. Например: I=10 WHILE I<10 I=I+1 WEND Пример 1. Вычислить сумму четных чисел в интервале от 1 до 10 включительно. ' I - четные числа ' Sum - сумма четных чисел I=2 Sum=0 WHILE I<=10 Sum=Sum+I I=I+2 WEND PRINT"Сумма четных чисел в интервале от 0 до 10 =";Sum
Пример 2. В подъезде N ступенек. Сколько шагов будет сделано, если шагать через 3 ступеньки. ' KS - количество ступенек ' KH - количество шагов INPUT "Введите количество ступенек";N KS=0 KH=0 WHILE KS<=N KS=KS+3 KH=KH+1 WEND PRINT"Количество шагов=";KH Практическое задание: Вычислить значения членов последовательности K=3i, где i=1, 3, 5,..., не превышающих заданного числа N. Вложенные циклы Можно организовать весьма сложные повторения, используя циклы внутри циклов (Вложенные циклы). Формат: FOR … FOR --------- ý тело внутреннего цикла NEXT -------- … NEXT Пример 1. Напечатать таблицу умножения до 12 в виде 1*2=2 2*2=4 и т.д.
FOR I=2 TO 12 FOR J=1 TO 12 PRINT J;”*”;I;”=”;J*I NEXT J NEXT I Пример 2. Напечатать таблицу умножения до 5 в виде таблицы. 1 2 3 4 5 2 4 6 8 10 и т.д. FOR I=2 TO 12 FOR J=1 TO 12 PRINT J*I; NEXT J NEXT I Массивы
Одним из важных инструментов программиста является возможность работы с массивами переменных. Массив - набор однотипных данных, хранящихся вместе и имеющих общее имя. Возможность объединения групп элементов в массив позволяет, с одной стороны, облегчить массовую обработку данных, а с другой - упростить идентификацию элементов массива. Каждому элементу массива может быть присвоено одно числовое или символьное значение, поэтому различаются массивы числовые и символьные. Кроме того, массивы могут быть одномерными и многомерными.
Одномерные массивы Основные понятия: Массив обозначается одним именем. Так всю совокупность действительных чисел 1.6, 14.9, -5.0, 8.5, 0.46 можно считать массивом и обозначить одним именем, например А. Образующие массив переменные называются элементами массива. Каждый элемент массива обозначается именем массива с индексом, заключенным в круглые скобки. A(1), A(2), A(3),..., A(n). Индекс определяет положение элемента массива данных относительно его начала. Для рассмотренного выше примера элементами массива А являются: A(1)=1.6, A(2)=14.9, A(3)=-5.0, A(4)=8.5, A(5)=0.46
Определение массивов
Прежде чем воспользоваться массивом, в программу надо включить оператор DIM, задающий максимально допустимый индекс. Это даст возможность системе с Бейсиком зарезервировать в памяти область достаточного размера. Массивы, содержащие от 1 до 10 элементов, можно использовать без их объявления в операторе DIM. Максимальное количество элементов любого массива определяется только объемом свободной ОП.
Формат записи оператора DIM: DIM имя_массива (максимальный_индекс) "Имя_массива" обычно выбирается по тем же правилам, что и имена простых переменных.
"Максимальный_индекс" указывает максимально допустимый в программе индекс и должен быть положительным.
Пример ы описания массивов: DIM X(50) ' объявление одномерного числового массива X для 50 чисел; DIM V$(12) 'объявление одномерного массива V для 12 символьных элементов. Объявление массива с переменным размером. INPUT K DIM A(K) ........ Виды ошибок Если указать в программе элемент массива с индексом большим, чем значение размерности, объявленное в операторе DIM или принятое по умолчанию, то выдается сообщение об ошибке 9: Subscript out of range (выход за пределы массива). Если оператор DIM указан после использования имени массива или массив повторно объявлен, то появляется сообщение 10: Redimensioned array (повторное задание размерности массива).
Заполнение массива
Существует два способа присваивания значений элементам массива: 1) cтатический, с использованием операторов DATA, READ и оператора присваивания; 2) динамический, с использованием оператора INPUT и функции RND. При работе с массивами очень удобно пользоваться оператором цикла FOR...NEXT. В качестве индекса массива используют параметр цикла.
1. Пример статического заполнения массива. DATA слива,ананас,груша DATA яблоко,вишня,абрикос DIM A$(6) FOR I=1 TO 6 READ A$(I) NEXT I
Цикл FOR...NEXT последовательно присваивает значения всем переменным из списка. 2. Пример динамического заполнения массива INPUT "Введите количество элементов массива ";N DIM A(N) FOR I=1 TO N INPUT A(I) NEXT I В данном примере используется переменное задание размерности массива. 3. Пример заполнения массива с помощью стандартной функции RND DIM V(12) FOR I=1 TO 12 V(I)=INT(RND(1)*10) PRINT V(I); NEXT J Порядок работы с массивами 1. объявление массива (задание максимального размера массива); 2. заполнение массива; 3. обработка элементов массива; Вывод результата обработки.
|
|||||||||||||
Последнее изменение этой страницы: 2016-09-20; просмотров: 267; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.227.48.131 (0.009 с.) |