Бейсик

Автор работы: Пользователь скрыл имя, 14 Ноября 2010 в 08:37, Не определен

Описание работы

Лекции

Файлы: 1 файл

Бейсик.doc

— 354.00 Кб (Скачать файл)
 

  

DIM tabl1(1 TO 3 ,1 TO 4) AS INTEGER

tabl1

  
1 2 3 4
  
1
2
3
  
2 7 8 3
22 1 3 34
5 56 9 777
  

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

DIM tablum(1 TO 9 ,1 TO 9) AS INTEGER

tablum

  
1 2 3 4 5 6 7 8 9
  
1
2
3
4
5
6
7
8
9
  
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81
  

REM Таблица умножения 
DIM tabum(1 TO 9, 1 TO 9) AS INTEGER 
REM Заполнение массива - создание таблицы умножения 
FOR I=1 TO 9 
FOR J=1 TO 9 
tabum(I, J)=I*J 
NEXT J 
NEXT I 
REM Вывод массива на экран в виде таблицы 
FOR I=1 TO 9 
FOR J=1 TO 9 
PRINT tabum(I,J); 
NEXT J 
PRINT 
NEXT I 
END

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

REM вычислить количество... 
DIM tabl(1 TO 3, 1 TO 4) AS INTEGER 
REM Заполнение массива  
FOR I=1 TO 3 
FOR J=1 TO 4 
INPUT "Введите элемент массива:", tabl(I, J) 
NEXT J 
NEXT I 
REM Вывод массива на экран в виде таблицы 
CLS 
FOR I=1 TO 3 
FOR J=1 TO 4 
PRINT tabl(I,J); 
NEXT J 
PRINT 
NEXT I 
REM требуемые вычисления 
k=0 
s=0 
p=1 
FOR I=1 TO 3 
FOR J=1 TO 4 
IF tabl(I, J)<0 THEN k=k+1 
IF tabl(I, J) MOD 2 = 0 THEN s=s+tabl(I, J) 
IF I=2 THEN p=p*tabl(I, J) 
NEXT J 
NEXT I 
PRINT 
PRINT "результ:" 
PRINT "отрицательных элементов: ", k 
PRINT "сумма четных элементов: ", s 
PRINT "произведение элементов второй строки: ",p 
END

Учимся программировать! 
Конспекты школьника.

Символьные  и строчные переменные.

 

 Очень часто в  программах требуется использовать символьные или строчные переменные. Что же это такое? Это переменные, значениями которых являются либо алфавитно-цифровые символы, либо несколько таких символов.

Строки - последовательность алфавитно-цифровых символов.  

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

DIM s AS STRING 
s="Cтрока123"

Или добавлять справа от переменной символ $.

s$="Тоже строка 987"

Пример: Эта программа  выводит на экран две строки. Обратите внимание на два способа использования  и объявления строковых переменных.

DIM stroka AS STRING 
stroka="Один" 
stroka2$="Два" 
PRINT stroka 
PRINT stroka2$ 
END

Еще пример: Та же программа, но с ОШИБКАМИ. Не указано, то что  наши переменные строчные.

REM ЗДЕСЬ ОШИБКИ 
stroka="Один" 
stroka2="Два" 
PRINT stroka 
PRINT stroka2 
END

Строчные переменные можно склеивать и сравнивать друг с другом. Для склеивания строк (конкатенации) используют знак плюс (+).

Пример.

REM конкатенация строк 
s1$="Привет! " 
s2$="Меня зовут Саша." 
s$=s1$+s2$ 
PRINT s$ 
END

На экране появится надпись: Привет! Меня зовут Саша.

Для сравнения срок используют операции: >, <, =, >=, <=, <>.

Пример:

REM Сравнение строк 
s1$="abc" 
s2$="abc" 
s3$="klmn" 
IF s1$=s2$ THEN PRINT "Строки равны" 
IF s1$=s3$ THEN PRINT "Строки равны" 
END

Программа выведет "Строки равны только один раз".

Функции для работы со строками:

LEN(s$) Вычисляет длину  строки (количество символов).
MID$(s$,n,k) Выделяет из строки s$ k символов начиная с n-го символа.
VAL(s$) Преобразует числовую часть начала строки в число.
STR$(x) Преобразует число  в символьную форму.
ASC(s$) Вычисляет десятичный код символа.
CHR$(x) Преобразует код  в символ.
INKEY$ Функция опроса клавиш, нажатых на клавиатуре.

Пример: составить  программу подсчитывающую, количество букв "а" в предложении.

REM кол-во букв "а" 
INPUT "Введите предложение", s$ 
FOR I=1 TO LEN(s$) 
IF MID$(s$,I,1)="а" THEN k=k+1 
NEXT 
PRINT "Кол-во букв а =", k 
END

Пример: Заменить все  буквы "а" в предложении на буквы "о".

REM замена букв 
ss$="" 
INPUT "Введите предложение", s$ 
FOR I=1 TO LEN(s$) 
IF MID$(s$,I,1)="а" THEN 
ss$=ss$+"о" 
ELSE 
ss$=ss$+MID$(s$,I,1) 
END IF 
NEXT 
PRINT "Исправленная строка: ", ss$ 
END

Пример: Получить предложение  в обратном порядке следования символов.

REM обратный порядок  букв 
ss$="" 
INPUT "Введите предложение", s$ 
FOR I=LEN(s$) TO 1 STEP -1 
ss$=ss$+MID$(s$,I,1) 
NEXT 
PRINT "Исправленная строка: ", ss$ 
END

Учимся программировать! 
Конспекты школьника.

Подпрограммы. Процедуры.

При создании средних  по размеру программ используется структурное программирование, идея которого заключается в том, что структура программы должна отражать структуру решаемой задачи, чтобы алгоритм решения был ясно виден из исходного текста.

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

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

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

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

Когда в программе  необходимо выполнить какое-то стандартное действие происходит вызов процедуры. Процедура выполняет действие и возвращает управление обратно программе, которая ее вызвала. В ходе работы процедуры могут вызвать другие процедуры. Прием когда подпрограмма вызывает саму себя называют рекурсией.

Очень важная характеристика подпрограмм - это возможность их повторного использования.

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

Вы уже использовали стандартные процедуры и функции  при составлении программ. Теперь пришло время научиться создавать  свои процедуры и функции.

Процедуры состоят из трех частей: заголовка, тела процедуры, завершения процедуры.

SUB имя (список параметров) 
тело процедуры - список операторов 
END SUB

Пример:

SUB hello (s$) 
PRINT "Привет, ", s$,"! Как твои дела?" 
END SUB

REM приветствие 
name1$="Саша" 
name2$="Вася" 
REM процедуру можно вызвать так 
CALL hello(name1$) 
REM а можно вызвать так 
hello(name2$) 
REM или даже так 
hello("Марина") 
END

В результате выполнения программы на экране будет выведено: 
Привет, Саша! Как твои дела? 
Привет, Вася! Как твои дела? 
Привет, Марина! Как твои дела? 
 
Параметры, которые указываются в заголовке подпрограммы, называются формальными. Они нужны только для описания тела подпрограммы. А параметры (конкретные значения), которые указываются в момент вызова подпрограммы, называются фактическими параметрами. При выполнении операторов подпрограммы формальные параметры как бы временно заменятся на фактические.

Учимся программировать! 
Конспекты школьника.

Подпрограммы. Функции.

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

Процедуры и функции  бывают стандартными и нестандартными. Стандартные подпрограммы входят в  библиотеку, которая поставляется вместе с системой программирования. Нестандартные процедуры и функции программисты пишут сами.

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

FUNCTION имя (список параметров) 
тело функции - список операторов 
END FUNCTION

Пример: функция возвращающая куб числа 

FUNCTION kub (x) 
kub=x*x*x 
END FUNCTION

REM Вывод кубов натуральных чисел от 1 до 10 
CLS 
FOR I=1 TO 10 
PRINT kub(I) 
NEXT 
END

В этой программе  в цикле происходит обращение  к функции kub, которая вычисляет куб числа.

Процесс, когда в  процедуре происходит обращение к самой себе, называется рекурсией (рекурсия - возврат). (Происходит от латинского recurreus - возвращающийся).

Рекурсия - это такой  способ организации подпрограммы, при  котором в ходе выполнения она  обращается сама к себе.

Ниже приведена  программа вычисления факториала числа, в которой используется рекурсивная процедура fak:

FUNCTION fak (f) 
IF f = 0 OR f = 1 THEN 
fak = 1 
ELSE 
fak = fak(f - 1) * f 
END IF 
END FUNCTION

REM "Вычисление факториала" 
INPUT "Введите число: ", a 
PRINT "Факториал = ", fak(a) 
END

Для вычисления факториала числа n, т.е. n! надо умножить последовательно n натуральных чисел от 1 до n: n!=1*2*3*4. Так, 4! будет равно: 4!=1*2*3*4. Это прямой путь вычисления или итеративный.  
Возможен и другой путь вычисления: n!=n*(n-1)*...*1. Т.е. 4!=4*3*2*1. Этот путь можно назвать возвратным или рекурсивным.  
Именно на этом принципе основана работа приведенной функции.

Информация о работе Бейсик