Цикл со счетчиком ( FOR... NEXT) ДЛЯ... СЛЕДУЮЩИЙ



 

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

 

Общий вид оператора цикла со счетчиком:

 

FOR K=K1 TO K2 STEP K3 - заголовок цикла

- тело цикла -

NEXT K                                     - конец цикла

 

    Здесь FOR - имя оператора (переводится "для"); К - переменная (обычно целого типа), называемая переменная управления циклом ; К1, К2, К3 - начальное, конечное значения и шаг изменения величины К соответственно, могут быть представлены любыми арифметическими выражениями; ТО, SТЕР - переводится - "до", "шаг"; тело цикла - любые операторы языка Бейсик; NEXT - оператор (переводится "следующий").

    Совместная работа операторов и определяется схемой:

 

 

 


где

                                   K < K2, если K3 > 0

< условие > = <

                                   K > K2 ,если K3 < 0

 

Иначе говоря, операторы FOR и NEXT обеспечивают изменение значения К от К1 до К2 с шагом К3 и выполнение оператора (операторов), заключенных между FOR и NEXT, при каждом значении К.

 

Ограничения:

1. Изменять значение величин К1, К2, К3 в процессе выполнения операторов FOR и NEXT не рекомендуется.

2. Вход в цикл, минуя оператор FOR, в Бейсике запрещен.

        

Примеры решения задач

Пример 1. Выведите на экран в столбик целые числа от 1 до 10.

CLS

FOR J=1 TO 10 STEP 1

PRINT J

NEXT J

END

 

Пример 2. Вычислите сумму целых чисел от 1 до 10

CLS: S=0

FOR I=1 TO 10 STEP 1

S=S+I

NEXT I

PRINT " "; S

END

 

Пример 3. Вычислите значение функции y=2X2-3X+5 на отрезке (-3, 3) с шагом 1,5

CLS : PRINT "Y"; "X"

FOR X=-3 TO 3 STEP 1.5

Y=2*X^2-3*X+5

PRINT Y,X

NEXT X

END

 

Пример 4. Вычислите сумму S= 2+4+ ...+2 N , если N  вводится с клавиатуры CLS : S=0

INPUT «введите  « N»; N

FOR I = 1 TO  N

S=S + 2 *N

NEXT I

PRINT «сумма = «; S

END

 

Пример 5 Выведите слово «IBM» 10 раз, чтобы получилась  диагональ

 CLS

 FOR K =5 TO 15

 LOCATE K, K

 PRINT  « IBM»           

 NEXT K

 END

 

Цикл WHILE... WEND (ПОКА... КОНЕЦ)

    Конструкция WHILE... WEND (ПОКА... КОНЕЦ) позволяет выполнять блок команд до тех пор, пока значение выражения, заданного в WHILE - "Истина".

Общий вид оператора

WHILE логическое выражение

-- блок команд –

WEND

    Работа операторов может определяться следующей схемой:

 

     

 


                                                                      НЕТ 

                  

     
 


                                                       

                                                   ДА

         

 


    После завершения цикла управление передается команде, следующей за WEND.

    Если при проверке условия окажется, что значение логического выражения - "Ложь", блок команд не будет выполнен ни разу.

    С помощью WHILE... WEND можно организовать вложенные циклы - каждый со своими WHILE... WEND.

Ограничение: из этой конструкции нельзя выйти "досрочно", т.е. до завершения работы оператора.

Примеры решения задач.

CLS : I=1

WHILE I < 5

PRINT "I=" ; I;

I=I+1

WEND

    На экране будет : I=1 I=2 I=3 I=4

 

Задачи по теме "Условный оператор" и "Оператор цикла"

1.Найти наибольшее из чисел (х+у)/2 и (х+у/2)для любых чисел х и у.

2. Вычислить значения функций для любых Х и Z

а)Y= (X-15)/(x-6) ; б) Y= 2X-5/(7Z-4X);

 

            X2+5X-14, если X<-2

с) Y= <

          3X2-7X ,    если X>=-2

г)       5X2+4X-21 , если X < -7

Y=<

          2X2-3X , если X>=-7

д)       X+Z , если X<10 и Z>5

Y= X*Z в остальных случаях

3. Заданы длины сторон треугольника - А, В, С, Определить, является ли треугольник равнобедренным.

4. Составить программу, выводящую на экран первые десять натуральных чисел.

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

6. Вычислить значения функции

а) Y= 5*X2 -4X+11   на отрезке (-5,5) с шагом 1,5;

 

б)        X2-2*X+3, если X<0

       Y= <                             на отрезке (-7, 7) с шагом 1;

            X-18+12, если X>=0

в)          SIN(X), если X<=0

   Y= < SIN(X)+COS(X), если 0<X<3

             COS(X), если X>=3;

на отрезке (-6, 6) с шагом 0,5.

 

7. Выведите в столбик ряд натуральных чисел от 1 до 10.

 

8. Выведите на экран в столбик четные числа от 1 до 20.

 

9. Выведите на экран в строку нечетные числа от 15 до 20.

 

10. Найдите:

а) сумму целых чисел от 10 до 20;

б) произведение целых чисел от 20 до 20;

в) сумму нечетных чисел от 20 до 40;

г)произведение целых чисел от 20 до 40;

д) сумму четных чисел от 1 до 20;

е) произведение четных чисел от 1 до 20.

 

11. Выведите на экран 10 раз слово "PENTIUM" по диагонали.

 

12. Дна последовательность чисел, введенная с клавиатуры. Найдите сумму отрицательных членов этой последовательности и произведение положительных, количество отрицательных и положительных.

 

13. Составьте программу, выводящую на экран:

 

а) движение "*" по первой строке экрана;

б) движение "*" по последнему столбцу экрана;

в) движение "*" по диагонали.

 

14. Вычислите суммы, если N вводится с клавиатуры:

а) 1     1         1                  б) 1    1              1

15  + 25   + ... + N5 ;               (3)2  + (5)2  + ... + (2N+1)2 ;

 

15. Вычислите произведения, если А и вводятся с клавиатуры:

а)     1     1      1              ;                

(1+12)*(1+22)...(1+N2)

б) A*(A-N)*(A-2N)...(A-N*N);   в) 2*4*6*...*2*N .

 

16. Определить является ли произвольное число кратным:

а) двум;      б) трем;     в) пяти.

17. Выведите на экран простые числа в диапазоне

а) от 1 до 20 ;  б) от 20 до 100.

18. Определить является произвольное число простым.

 

Строковые переменные

    В языке Бейсик существует возможность обработки не только числовых, но текстовых, символьных данных. Для этого используют символьные (или строковые, литерные) константы, переменные и выражения.

    Символьная константа - это строка символов, заключенная в кавычки. Значением константы является последовательность составляющих ее символов не считая кавычек. Два идущих подряд знака кавычек задают пустую символьную строку, не содержащую ни одного символа.

    У символьной переменной есть имя, которое заканчивается знаком $, и значение в виде строки символов.

    Для строк определена операция сравнения: строки считаются равными, если их длины равны и коды всех символов попарно совпадают. Если одна из строк совпадает с началом другой (но короче ее), то она меньше. В остальных случаях все решает код первого несовпадающего символа - меньше та строка, у которой он меньше.

    Операции, производимые над строковыми переменными

а) присвоение текстовой константы:

                  A$="СТРОКА СИМВОЛОВ"

                  T$=""   - очистка строки

б) печать значений строковых переменных:

                  PRINT A$, T$

 

в) склейка двух строк:

                                     T$=A$+B$

                                     P$="СЛОВО: "+P$

                                     C$="СКЛЕЙКА"+" "+"СТРОК"

г) ввод значений строковых переменных с клавиатуры:

                                 INPUT A$, B$

 - при вводе строку можно не заключать в кавычки.

 

    Основные функции работы с символьными переменными:

 

VAL(A$) - перевод строки в число;

CHR$(L) - выдает символ по коду данного числа;

ASC(S$) - выдает код первого символа строки

SRT$(K) - преобразует число в символьную строку, которая является записью в виде последовательности десятичных цифр;

LEN(F$) - выдает длину символьного выражения;

LEFT$( F$, N) - вырезает заданное количество символов слева;

RIGHT$ (F$, N) - вырезает заданное количество символов справа;

MID$(F$, N1, N2) - вырезка из строки заданного количества символов с заданного символа

Примеры решения задач.

Пример 1. Подсчитать, сколько раз среди символов заданной строки встречается буква "F".

CLS

INPUT "Введите строку - ";S$

K=0

FOR I=1 TO LEN(S$)

IF MID$(S$, I, 1)="F" THEN K=K+1

NEXT I

PRINT "Буква F встретилась ";K;" раз(а) "

END

 

Пример 2 . Составить программу, которая печатает заданное слово задом наперед.

CLS

INPUT "Введите слово - ";S$

FOR I=LEN(S$) TO 1 STEP -1

PRINT MID$(S$, I, 1);

NEXT I

END

 

Пример 3. Выдать номер позиции заданной строки, в которой впервые встречается буква "в". Если такой буквы в строке нет, выдать сообщение об этом.

CLS: INPUT "Введите строку - ";S$

K=0

FOR I=1 TO LEN(S$)

IF MID$(S$, I, 1)="в" THEN 80

NEXT I

PRINT "Буквы в нет в заданной строке"

GOTO 90

80 PRINT "Первая буква в встретилась в "; I ; " -й позиции"

90 END

Задачи на работу с символьными переменными

Подсчитать сколько раз среди символов заданной строки встречается буква «F».

Составить программу, которая печатает заданное слово задом наперед.

Подсчитать количество цифр в заданной строке.

Подсчитать количество слогов в слове.

Проверить, является ли заданное слово палиндромом («перевертышем», как слова КАЗАК, ШАЛАШ и т.д.)

Среди натуральных чисел от 1 до n найти все такие, запись которых совпадает с последними цифрами записи их квадратов (5 и 25, 6 и 36, 25 и 625 и т.д.)

Выдать номер позиции заданной строки, в которой впервые встречается буква «в». Если такой буквы в строке нет, выдать сообщение об этом.

Выдать номер позиции заданной строки, в которой в пятый раз встречается буква «W». Если такой позиции нет, выдать сообщение об этом.

В заданной строке подсчитать отдельно количество символов «а» и «b».

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

Из заданной строки получить новую, выбросив из нее все точки. Распечатать полученную строку.

Из заданной строки получить новую, удалив все звездочки («*») и повторив каждый символ, отличный от звездочки. Распечатать полученную. строку.

Из заданной строки получить новую, заменив в ней все символы после первой звездочки («*») знаком «-« (если в строке нет звездочек, оставить ее без изменения). Распечатать полученную строку.

Из заданной строки получить новую, удалив из нее все двоеточия, предшествующие первой точке, и заменив в ней все знаки «+» после первой точки знаком ² - ² (если в строке нет точек, добавьте одну в конце). Распечатать полученную строку.

В заданной строке поменять местами первую букву ² а ² и первую букву  ² b ². Если хотя бы одной из них нет, напечатать сообщение, иначе распечатать полученную строку.

Определить наименьшую длину слова в заданной строке (считать, что слова отделяются друг от друга пробелами).

Из заданной строки выделить подстроку длиной 5 знаков (либо до конца строки, если осталось меньше), которая начинается с первой встретившейся в строке буквы ² f ². Распечатать эту подстроку или сообщение о том, что ее нет.

В заданной строке первый символ- заглавная латинская буква. Если это    ² К ²,  ² О ²,   ² D ², заменить ее соответствующей строчной буквой. Распечатать полученную строку.

В заданной строке подсчитать количество букв латинского алфавита.

Из заданной строки получить новую, удалив все символы, не являющиеся буквами латинского алфавита.

В заданной строке преобразовать все заглавные буквы латинского алфавита в строчные, а строчные в заглавные.

Из заданной строки получить новую, удалив все группы букв ² abcd ².

Из заданной строки получить новую, заметив все группы букв ² abc ² на² abcd ².

Подсчитать, сколько слов в заданной строке оканчивается буквой ² я ², если известно, что после слова обязательно стоит пробел, либо точка.

Даны натуральное число n, символы s1,...sn. Преобразовать последовательность s1,...sn, , заменив в ней:

 а) все восклицательные знаки точками;

б) каждую точку многоточием (т.е. тремя точками);

в) каждую из групп стоящих рядом точек одной точкой;

г) каждую из групп стоящих рядом точек многоточием (т.е. тремя точками).

Даны натуральное число n, символы s1,...sn. Выяснить, имеются ли в последовательности s1,...sn такие члены последовательности sj,sj+1, что sj - это запятая, а sj+1 - тире.

Даны натуральное число n, символы s1,...sn. Получить первое натуральное j, для которого каждый из символов sj и sj+1 совпадает с буквой а. Если такой пары символов в последовательности s1,...sn  нет, то ответом должно быть число 0.

Массивы

 

    В математике принято сходные по характеру величины обозначать одним общим именем, а различать их по индексу. Например, члены какой- либо последовательности можно обозначить следующим образом:

                      А1, А2 , .... , А n

имя                                        индекс

Аналогично поступают в Бейсике

                      А(1) А(2)  ... А(N)

 

имя массива                    индекс в круглых скобках

    Массив - это совокупность переменных обозначенных общим именем и различаемых с помощью индексов, которые записываются в круглых скобках после имени массива.

DIM            Английское слово (дименшн) означает массив

    Оператор DIM используется для того, чтобы указать общее количество переменных в массиве. Это необходимо для рационального распределения памяти компьютера.

 

        

Объявление массива

    DIM A(7)          количество переменных в массиве (элементов           

                         в массиве)

Общее имя                     Исполнение оператора DIM  заключается

элементов массива     в том, что в памяти компьютера образуется

                           массив переменных.

  А(0) А(1) А(2) А(3) А(4) А(5) А(6) А(7) 

А                

 

 Ограничение: массив нельзя объявлять дважды, поэтому следует объявлять массивы в начальных строках программы и не возвращаться в эти строки с помощью оператора GOTO.

    Каждый элемент массива обладает:

именем             Х(5)

индексом                                   место в памяти, отведенное

значением           3,2             под данный элемент массива

 

Ввод элементов массива может осуществляться несколькими способами:

1) DIM A (5)

A(0)=4: A(I)=-2.5: (3)=10: A(4)=0: A(5)=6: A(2)=3

Этот способ ввода удобен, когда массив небольшой

2)Ввод элементов массива с клавиатуры

  DIM А(9)

FOR I=0 TO 9

INPUT A(I)

NEXT I

3) DIM B (6)

DATA 0, -2, 1, 5, 8, 5, 6. 26

FOR N=0 TO 6

READ B (N)

NEXT N

Вывод элементов массива можно осуществлять в строку и в столбик:

1) DIM A(3)

PRINT A(0), A(I), A(2), A(3)

Этот способ вывода удобен, когда массив небольшой

2) DIM A(10)

FOR I=0 TO 9

PRINT A(I)

NEXT I

 

Основные приемы при решении задач с применением массивов

 

Пример 1. Дан массив из 10 элементов. Найти сумму элементов массива

DIM A (9)

  S=0

  FOR N=0 TO 9

  S=S+A(N)

  NEXT N

  PRINT ²сумма=²;S

 

Пример 2. Найти минимальный элемент массива и индекс этого минимального элемента

DIM L (9)

MIN=L(0): K=0

FOR I=1 TO 9

IF MIN>L(I) THEN MIN=L(I):K=I

NEXT I

PRINT ²минимум²; MIN

 

Пример 3. Даны 2 массива А(9), В(9). Получить массив, каждый элемент которого равен сумме соответствующих элементов данных массивов

DIM A(9), B(9), C(9)

 FOR I=0 TO 9

C(I)=A(I)+B(I): PRINT C(I)

NEXT I


Дата добавления: 2019-07-15; просмотров: 169; Мы поможем в написании вашей работы!

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






Мы поможем в написании ваших работ!