Автор работы: Пользователь скрыл имя, 14 Ноября 2010 в 08:37, Не определен
Лекции
DIM tabl1(1 TO 3 ,1 TO 4) AS INTEGER
tabl1
| |||||||||||||||||
|
|
С помощью двумерного массива 9х9 и двух вложенных циклов можно легко составить программу, реализующую таблицу умножения. Сомножителями будут значения индексов строк и столбцов, а их произведения будут значениями элементов массива.
DIM tablum(1 TO 9 ,1 TO 9) AS INTEGER
tablum
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
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
Программа выведет "Строки равны только один раз".
Функции для работы со строками:
|
Пример: составить программу подсчитывающую, количество букв "а" в предложении.
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. Этот путь можно назвать возвратным
или рекурсивным.
Именно на этом принципе основана работа
приведенной функции.