Множественный выбор (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счетчик=E1TOE2[STEPE3]

Блок команд

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

 



Дата добавления: 2016-06-15; просмотров: 2436;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.028 сек.