Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Команды управления ходом выполнения программы



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

Команды управления ходом выполнения программы делятся на три группы:

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

 

Для самостоятельного решения:

Составить программу определения кислотности раствора с помощью лакмусовой бумажки. Напомним, что, если бумажка окрашивается в красный цвет - раствор кислотный; синий - раствор щелочной; не меняет цвет - раствор нейтральный.

Множественный выбор (SELECT CASE)

 

Формат

SELECT CASE арифм_выражение или симв_выражение

CASE условие 1

< блок команд 1>

CASE условие 2

< блок команд 2>

……………….

[CASE ELSE

< блок команд n> ]

END SELECT

Условие оператора CASE можно указать в одном из трех форматов:

1) CASE константа 1, константа 2, …

2) CASE IS знак_отношения константа

3) CASE константа 1 TO константа 2

Константы в условии должны быть того же типа, что и выражение в SELECT CASE.

Алгоритм множественного выбора заключается в следующем:

§ вычисляется значение выражения, записанного в SELECT CASE.

§ проверяется, удовлетворяет ли это значение одному из указанных в CASE условий

§ если значение удовлетворяет какому-то условию, выполняется блок команд, следующий за данным CASE.

Пример

INPUT " Введите значение ", A

SELECT CASE A

CASE 1, 5

PRINT " А равно 1 или 5"

CASE IS > 5

PRINT " А больше 5"

CASE -8 TO 2.5

PRINT " А не меньше -8, но не больше 2.5"

CASE else

PRINT " Ни одно условие не выполняется"

END SELECT

После выполнения того или иного блока команд управление передается команде, следующей за END SELECT.

Работа с датой и временем

Функция 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 " Значения "

 

Подсчет:

Сумма Количество Произведение
S=0 K=0 P=1
S=S+A K=K+1 P=P*A

Пример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. Дан ряд чисел 100, 55, -1000, 20, 5, 8, 33, 48. Найти количество пар чисел квадрат разности которых < 100.

DATA 100, 55, -1000, 20, 5, 8, 33, 48

K=0

FOR I=1 TO 8 STEP 2

READ A, B

IF (A-B)^2 < 100 THEN K=K+1

NEXT I

PRINT " Количество пар чисел квадрат разности которых < 100 ="; K

Пример 3. Найти максимальное значение из 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

Домашнее задание:

  1. Определить максимальное значение среди положительных элементов из N введенных.
  2. Подсчитать значения функции f(x)= Ö 1-х2 на заданном интервале [-0, 5; 0, 5] с шагом 0, 1.

 

Цикл 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

Пример 3. Известна сумма номеров страниц. Определить номер страницы.

' NS - номер страницы

' S - сумма номеров страниц

INPUT" Введите сумму номеров страниц"; Q

NS=0

S=0

WHILE S< Q

NS=NS+1

S=S+NS

WEND

PRINT" Номер страницы = "; NS

 

Домашнее задание:

Вычислить значения членов последовательности 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

PRINT

NEXT I

Пример 3. Напечатать все четырехзначные натуральные числа в десятичной записи которых нет двух одинаковых цифр.

FOR T=1 TO 9 ‘

FOR S=0 TO 9

FOR D=0 TO 9

FOR E=0 TO 9

IF T< > S AND T< > D AND T< > E AND S< > D AND S< > E AND D< > E THEN

M=T*1000+S*100+D*10+E

PRINT M,

ENDIF

NEXT E

NEXT D

NEXT S

NEXT T

Задание

Найти и напечатать все трехзначные числа сумма кубов которых равна самому числу. Например: 407=43+03+73=64+0+343

 

Массивы

 

Одним из важных инструментов программиста является возможность работы с массивами переменных.

Массив - набор однотипных данных, хранящихся вместе и имеющих общее имя.

Возможность объединения групп элементов в массив позволяет, с одной стороны, облегчить массовую обработку данных, а с другой - упростить идентификацию элементов массива.

Каждому элементу массива может быть присвоено одно числовое или символьное значение, поэтому различаются массивы числовые и символьные. Кроме того, массивы могут быть одномерными и многомерными.

 

Одномерные массивы

Основные понятия:

Массив обозначается одним именем. Так всю совокупность действительных чисел

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. обработка элементов массива;

4. вывод результата обработки.

 


Поделиться:



Популярное:

  1. I I. Цели, задачи, результаты выполнения индивидуального проекта
  2. II. Основные задачи управления персоналом.
  3. II. Основные принципы создания ИС и ИТ управления.
  4. II. Перепишите следующие предложения и переведите их, обращая внимание на особенности перевода на русский язык определений, выраженных именем существительным (см. образец выполнения 2).
  5. II. Результаты выполнения индивидуального проекта
  6. IХ. Органы управления, контрольно-ревизионный орган и консультативно-совещательные структуры РСМ
  7. Return 0; //завершение работы программы
  8. SPA-программы «Времена года».
  9. V Методика выполнения описана для позиции Учителя, так как Ученик находится в позиции наблюдателя и выполняет команды Учителя.
  10. V. Перепишите следующие предложения, определите в них видовременные формы глаголов и укажите их инфинитив, переведите предложения на русский язык (см. образец выполнения 3).
  11. V. ПРОВЕРКА ВЫПОЛНЕНИЯ КОМАНД: ИСПОЛНЕНИЕ И КРИТЕРИИ ОЦЕНКИ
  12. X. Прикомандирование сотрудников к представительным органам государственной власти и органам государственного управления.


Последнее изменение этой страницы: 2017-03-08; Просмотров: 1092; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.117 с.)
Главная | Случайная страница | Обратная связь