Презентация по информатике на тему «Языки программирования»
Основные операторы языка программирования
Microsoft Quick Basic
Арифметические действия, функции
Математика |
Microsoft Quick Basic |
сложение |
+ |
вычитание |
- |
умножение |
* |
деление |
/ |
возведение в степень (x2) |
Х^2 |
извлечение квадратного корня |
SQR(x) |
sin(a) |
sin(a) |
cos(a) |
cos(a) |
tg(a) |
tg(a) |
ctg(a) |
ctg(a) |
ln(a) |
ln(a) |
абсолютное значение числа |
ABS(a) |
целая часть числа |
INT(a) |
Операторы ввода-вывода
INPUT – ввод информации |
PRINT – вывод информации |
INPUT A – ввод числовой переменной А |
PRINT A - вывод числовой переменной А |
INPUT B$ - ввод символьной переменной B$ |
PRINT B$ - вывод символьной переменной B$ |
INPUT “Введите число”; C – ввод числовой переменной C с подсказкой |
PRINT “Результат -”; C – вывод числовой переменной C с подсказкой |
INPUT “Введите слово”; L$ - ввод символьной переменной L$ с подсказкой |
PRINT “Результат -”; ”; L$ - вывод символьной переменной L$ с подсказкой |
Операторы ветвления
IF |
если |
THEN |
то (оператор условного перехода) |
ELSE |
Иначе |
GOTO |
оператор безусловного перехода |
Структура использования операторов ветвления
Вариант 1 (Простое ветвление)
IF <условие> THEN <действие1> ELSE <действие2>
Вариант 2 (Сложное ветвление)
IF <условие> THEN 1 ELSE 2
1 <действие1>
GOTO 3
2 <действие2>
3 …продолжение программы
Циклы
FOR |
для (начало цикла) |
TO |
до |
STEP |
шаг (по умолчанию =1) |
NEXT |
следующий (конец цикла) |
Среди циклических алгоритмов различают:
Цикл со счетчиком
Цикл «Пока»
Вложенный цикл (цикл в цикле)
Организация цикла со счетчиком
FOR I=1 TO 100 STEP 4
<тело цикла> - повторяющиеся действия
NEXT I
Организация цикла «Пока»
Для организации цикла «Пока» используются операторы ветвления. Необходимо помнить, что цикл «Пока» можно организовывать, используя два варианта:
выполнение цикла в случае выполнения условия;
выполнение цикла в случае не выполнения условия
Вариант 1 (условие выполняется)
IF <условие> THEN 2 ELSE 3
<тело цикла>
GOTO 1
3 <конец цикла>
Вариант 2 (условие не выполняется)
IF <условие> THEN 3 ELSE 2
<тело цикла>
GOTO 1
<конец цикла>
Организация вложенного цикла
Для организации вложенного цикла используют два цикла со счетчиком.
FOR I=1 TO 7
FOR J=1 TO 4
<тело вложенного цикла>
NEXT J
NEXT I
Необходимо помнить, что закрывается сначала вложенный (внутренний цикл), затем закрывается внешний цикл.
Массивы
Это упорядоченная последовательность элементов
Различают одномерные и двумерные, числовые и символьные массивы.
DIM |
оператор объявления массива |
DIM A(5) |
объявление одномерного числового массива А, состоящего из 5 элементов |
DIM B(2,3) |
объявление двумерного числового массива В, состоящего из 2 строк и 3 столбцов |
DIM C$(4) |
объявление одномерного символьного массива С, состоящего из 4 элементов |
DATA |
описание данных массива |
READ |
чтение данных |
Оператор SOUND
SOUND C, D – звуковой оператор, воспроизводящий частотный звук
C- звуковая частота (не ниже 37)
D – длительность звучания
Возрастающая частота звука FOR I =37 TO 2000 STEP 20SOUND I, 1
LOСATE 12,20:PRINT “Звуковая частота”;I
NEXT I
Случайная звуковая частота A=37:B=2000FOR I=1 TO 100
X=(B-A)*RND (1)+A
SOUND X, 1
LOСATE 12,20:PRINT “Звуковая частота=”; X
NEXT I
Оператор «PLAY»
Играет музыкальные ноты.
Команды октавы и тона:
(О) октава - задает текущую октаву (0-6)
<или> - переходит на одну октаву вверх или вниз
A – G – играет определенную ноту текущей октавы
(N)нота – играет определенную ноту (0-84) в диапазоне семи октав (0-сброс)
2. Команды длительности и темпа:
(L)размер – задает длительность каждой ноты (1-64):L1 – целая нота, L2 – 1/2ноты
ML – вид исполнения legato
MN – вид исполнения normal
MS – вид исполнения staccato
(P)пауза – задает паузу (1-64).P1 – пауза в целую ноту, P2 – ½ ноты и т.д.
(T) темп – задает темп исполнения в четвертях в минуту (32-255)
3.Команды режима:
MF – основное звучание
MB – фоновое звучание
4. Команды изменения ноты:
+(плюс) или # - диез
-(минус) - бемоль
.(точка) - длительность 3/2 от размера ноты.
Для выполнения подстрок команды PLAY из строки команды PLAY используйте команду «X»: PLAY «XA$ ;XB$»
Пример:
1 PLAY “T70 MN MB 03 L8EGL16EL32EL16AED”
PLAY “L8EGL16EL32EL16>C
PLAY “L16EA>E
GOTO 1
CLS .…………………….очистка экрана
SCREEN n …………………графический экран
n=0 текстовый экран (40 на 24)
n=1 текст 40 на 24, графика 320 на 190
n=2 текст 80 на 24, графика 620 на 190
n=12 цветной экран, текст 40 на 24
графика 640 на 450
LINE(X1,Y1)-(X2,Y2),1 ……….……….…рисование линии
LINE(X1,Y1)-(X2,Y2),1,B …………………...рисование рамки LINE(X1,Y1)-(X2,Y2),1,BF ..……………….закрашенная рамкаCIRCLE(X,Y),R,1 ..………………..………окружность
R – радиус окружности
CIRCLE(X,Y),R,1,,,K …………..……..сжатая окружность
K – коэффициент сжатия
K>1 – сжатие по вертикали
0 < K<1 - сжатие по горизонтали
CIRCLE(X,Y),R,1,Nd,Kd ……………………………..…дуга
Nd, Kd – начало и конец дуги в радианах
PSET(X,Y),1 ..……………………………………..точка
PAINT(X,Y),1 …………………….………закрашивание
ограниченной
области
DRAW: ОСНОВНЫЕ КОМАНДЫ
Графические команды BM…….…….сместиться в точкуB………….….передвигает в текущую точку,
но не чертит
M…………….перемещает в точку и рисует
N……………..рисует и возвращает курсор в
первоначальную позицию
Команды управленияAm ………….. задает угол поворота
m=0……….. нормальная ориентация
m=1……….. поворот на 900
m=2……….. поворот на 1800
m=3……….. поворот на 2700
Sm ………… изменяет масштаб черчения
m/4………. коэффициент увеличения
S1…………4-кратное уменьшение
S12………. 3-кратное увеличение
Cm ………… рисует цветPn1,n2 …….. цвет заполнения и граница объекта
n1……….. атрибут цвета заполнения
n2……….. атрибут цвета границы
Символьные величины
A$, DD$, MIN$ |
символьные переменные |
LEN(A$) |
длина символьной переменной A$ |
MID$(A$,n,d) |
вырезка из символьной переменной A$ с позиции номер n длиной d |
LEFT$(A$,3) |
вырезка из символьной переменной A$ слева первые три символа |
RIGHT$(A$,2) |
вырезка из символьной переменной A$ справа первые два символа |
CHR$(n) |
обращение к соответствующему коду символа клавиатуры |
INKEY$ |
считывание символа от клавиатуры |
Другие операторы
GOSUB N |
обращение к подпрограмме, находящейся на строке N |
RETURN |
выход из подпрограммы |
RANDOMIZE |
случайный выбор числа |
END |
конец программы |
STOP |
остановка программы |
NOT |
отрицание |
AND |
конъюнкция (и) |
OR |
дизъюнкция (или) |
XOR |
исключение или |
LOCATE Y,X |
локализация курсора (вывод подсказок операторов PRINT, INPUT в нужном месте экрана |
Ветвление в языке Бейсик
Составить блок-схему и программу на языке Бейсик для перехода улицы по сигналу светофора.
Блок-схема
Н
Введите сигнал светофора
Зеленый ?
Стоим на месте переходим улицу
К
CLS
REM Переход улицы по сигналу светофора
1 INPUT “Введите сигнал светофора”; A$
IF A$= “зеленый” THEN 2 ELSE 3
2 PRINT “Переходим улицу”
END
3 PRINT “Стоим на месте”
GOTO 1
Написать игру "Угадай число" на языке BASIC.
CLS
RANDOMIZE TIMER
a = INT(RND(1) * 100)
INPUT "Введите количество попыток"; n
FOR i = 1 TO n
INPUT "Введите число"; b
IF b > a THEN PRINT "Много"
IF b < a THEN PRINT "Мало"
IF b = a THEN
LOCATE 20, 30: PRINT "Вы угадали!"
IF i < 5 THEN
LOCATE 21, 21: PRINT "Вам потребовалось"; i; "попытки"
ELSE
LOCATE 21, 21: PRINT "Вам потребовалось"; i; "попыток"
END IF
END
END IF
NEXT i
Составьте программу-тест с использование операторов ветвления
CLS
LOCATE 10, 10: INPUT "Умеете ли Вы управлять машиной"; a$
IF a$ = "y" THEN 1 ELSE 9
1 LOCATE 12, 10: INPUT "А есть ли она у Вас"; a$
IF a$ = "y" THEN 2 ELSE 6
2 LOCATE 14, 10: INPUT "Ваша машина - иномарка"; a$
IF a$ = "y" THEN 3 ELSE 4
3 CLS : LOCATE 14, 10: PRINT "Дружок, так это Вас и вашу машину разыскивает Интерпол"
GOTO 5
4 CLS : LOCATE 14, 10: PRINT "Надеемся, что это не запорожец"
5 END
6 LOCATE 14, 10: INPUT "А велосипед у Вас хоть есть"; a$
IF a$ = "y" THEN 7 ELSE 8
7 CLS : LOCATE 14, 10: PRINT "Не забывай одевать шлем и кожанную куртку": END
8 CLS : LOCATE 14, 10: PRINT "Купи фанту и выиграй самокат": END
9 LOCATE 12, 10: INPUT "А управлять коляской можете"; a$
IF a$ = "y" THEN 10 ELSE 13
10 LOCATE 14, 10: INPUT "А водительские права у Вас есть"; a$
IF a$ = "y" THEN 11 ELSE 12
11 CLS : LOCATE 14, 10: PRINT "Надеюсь, что Вы перевезли не одну сотню своих детей": END
12 CLS : LOCATE 14, 10: PRINT "Обязательно сходите в ГАИ и сдайте экзамен": END
13 LOCATE 14, 10: INPUT "А руки у Вас хоть есть"; a$
IF a$ = "y" THEN 14 ELSE 15
14 CLS : LOCATE 14, 10: PRINT "Выньте руки из карманов и займитесь делом": END
15 CLS : LOCATE 14, 10: PRINT "Хорошо, что голова у Вас еще есть пока": END
Составьте программы для решения квадратного уравнения
CLS
INPUT "ВВЕДИТЕ КОЭФФИЦИЕНТ a"; a
INPUT "ВВЕДИТЕ КОЭФФИЦИЕНТ b"; b
INPUT "ВВЕДИТЕ КОЭФФИЦИЕНТ c"; c
IF a = 0 THEN 2 ELSE 3
2 PRINT "Коэффициент а не введен, повторите ввод"
INPUT "ВВЕДИТЕ КОЭФФИЦИЕНТ "; a
3 D = b ^ 2 - 4 * a * c
PRINT "D="; D
IF D > 0 THEN 4 ELSE 5
4 x1 = (-b + SQR(D)) / 2 * a
x2 = (-b - SQR(D)) / 2 * a
PRINT "корень х1="; x1
PRINT "корень х2="; x2
END
5 IF D = 0 THEN 6 ELSE 7
6 x = -b / 2 * a
PRINT "корень х="; x
END
7 PRINT "корней нет"
Составить блок-схему и программу на языке Бейсик для решения системы:
x2 , x >=15
A= x3 , x<=0
x+7 , 0<x<5
x , 5<=x<15
Вычислить Z, где Z=A+4
Н
Введите Х
`
Х<=0
A=X^3
X<5
A=X+7
X<15
A=X A=X^2
Z=A+4
Вывод Z
K
CLS
INPUT “Введите Х”; X
IF X<=0 THEN 1 ELSE 2
A=X^3
GOTO 7
2 IF X<5 THEN 3 ELSE 4
3 A=X+7
GOTO 7
IF X<15 THEN 5 ELSE 6
A=X
GOTO 7
A=X^2
Z=A+4
PRINT “Z=”; Z
END
Циклические алгоритмы
Цикл со счетчиком
Дано N произвольных чисел. Определите сумму всех чисел и разделите её на 2.
CLS
INPUT “Введите кол-во чисел”; N
FOR I=1 TO N
INPUT “Введите число”; A
S=S+A
NEXT I
PS=S/2
PRINT “Сумма всех чисел=”; S
PRINT “Полусумма чисел=”;PS
Дано N произвольных чисел. Определите среднее арифметическое всех чисел.
CLS
INPUT “Введите кол-во чисел”; N
FOR I=1 TO N
INPUT “Введите число”; A
S=S+A
NEXT I
SR=S/N
PRINT “Среднее арифметическое=”; SR
Дано N произвольных чисел. Найдите разность всех отрицательных чисел и возведите её в квадрат.
CLS
INPUT “Введите кол-во чисел”; N
FOR I=1 TO N
INPUT “Введите число”; A
IF A<0 THEN 1 ELSE 2
1 R=R-A
2 NEXT I
KR=R^2
PRINT “Разность отрицательных=”; R
PRINT “Квадрат разности=”; KR
Дано N произвольных чисел. Возведите каждое в квадрат и найдите их сумму.
CLS
INPUT “Введите кол-во чисел”; N
FOR I=1 TO N
INPUT “Введите число”; A
S=S+A^2
NEXT I
PRINT “Сумма квадратов чисел=”; S
Выведите на экран по возрастающей числа до опредленного числового предела:
А) четные числа ( в столбик, в строку)
Б) нечетные числа ( в столбик, в строку)
А) в столбик А) в строку
CLS CLS
INPUT “Введите числовой предел”; P INPUT “Введите числовой предел”; P
FOR I=2 TO P STEP 2 FOR I=2 TO P STEP 2
PRINT “Четное число”; I PRINT “Четное число”; I;
NEXT I NEXT I
Б) в столбик Б) в строку
CLS CLS
INPUT “Введите числовой предел”; P INPUT “Введите числовой предел”; P
FOR I=1 TO P STEP 2 FOR I=1 TO P STEP 2
PRINT “Нечетное число”; I PRINT “Нечетное число”; I;
NEXT I NEXT I
Дано N различных чисел. Найти: а)максимальное; б) минимальное
А) максимальное Б) минимальное
CLS CLS
INPUT “Введите кол-во чисел”; N INPUT “Введите кол-во чисел”; N
FOR I=1 TO N FOR I=1 TO N
INPUT “Введите число”; A INPUT “Введите число”; A
IF A>MAX THEN MAX=A IF A
NEXT I NEXT I
PRINT “Максимальное=”; MAX PRINT “Минимальное=”; MIN
Примечание: данные алгоритмы нахождение максимального и минимального несовершенные. Так, например, если при нахождении максимального будем вводить только отрицательные числа, то в результате максимальное будет – 0. Или при нахождении минимального будем вводить только положительные числа – результат будет 0.
Дано N различных чисел. Найти:
А) произведение положительных элементов и сумму отрицательных
Б) кол-во положительных и кол-во отрицательных элементов
А) Б)
CLS CLS
P=1 INPUT “Введите кол-во чисел”; N
INPUT “Введите кол-во чисел”; N FOR I=1 TO N
FOR I=1 TO N INPUT “Введите число”; A
INPUT “Введите число”; A IF A<0 THEN 1 ELSE 2
IF A<0 THEN 1 ELSE 2 1 OTR=OTR+1
1 S=S+A GOTO 3
GOTO 3 2 POL=POL+1
2 P=P*A 3 NEXT
3 NEXT I PRINT “Кол-во отрицательных=”; OTR
PRINT “Сумма отрицательных=”; S PRINT “Кол-во положительных=”; POL
PRINT “Произведение положительных=”; P
Используя цикл со счетчиком создать движение букв на экране. Должно собраться некоторое слово. Буквы вылетают из разных углов.
CLS
FOR i = 1 TO 10
LOCATE 24 - i, 1 + i * 2: PRINT "А": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 1 + i * 2: PRINT " "
NEXT i
LOCATE 14, 21: PRINT "А"
FOR i = 1 TO 10
LOCATE 24 - i, 2 + i * 2: PRINT "н": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 2 + i * 2: PRINT " "
NEXT i
LOCATE 14, 22: PRINT "н"
FOR i = 1 TO 10
LOCATE 24 - i, 3 + i * 2: PRINT "я": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 3 + i * 2: PRINT " "
NEXT i
LOCATE 14, 23: PRINT "я"
FOR i = 1 TO 10
LOCATE 24 - i, 4 + i * 2: PRINT "-": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 4 + i * 2: PRINT " "
NEXT i
LOCATE 14, 24: PRINT "-"
FOR i = 1 TO 10
LOCATE 24 - i, 5 + i * 2: PRINT "п": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 5 + i * 2: PRINT " "
NEXT i
LOCATE 14, 25: PRINT "п"
FOR i = 1 TO 10
LOCATE 24 - i, 6 + i * 2: PRINT "у": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 6 + i * 2: PRINT " "
NEXT i
LOCATE 14, 26: PRINT "у"
FOR i = 1 TO 10
LOCATE 24 - i, 7 + i * 2: PRINT "л": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 7 + i * 2: PRINT " "
NEXT i
LOCATE 14, 27: PRINT "л"
FOR i = 1 TO 10
LOCATE 24 - i, 8 + i * 2: PRINT "е": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 8 + i * 2: PRINT " "
NEXT i
LOCATE 14, 28: PRINT "е"
FOR i = 1 TO 10
LOCATE 24 - i, 9 + i * 2: PRINT "м": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 9 + i * 2: PRINT " "
NEXT i
LOCATE 14, 29: PRINT "м"
FOR i = 1 TO 10
LOCATE 24 - i, 10 + i * 2: PRINT "ё": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 10 + i * 2: PRINT " "
NEXT i
LOCATE 14, 30: PRINT "ё"
FOR i = 1 TO 10
LOCATE 24 - i, 11 + i * 2: PRINT "т": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 11 + i * 2: PRINT " "
NEXT i
LOCATE 14, 31: PRINT "т"
FOR i = 1 TO 10
LOCATE 24 - i, 12 + i * 2: PRINT "ч": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 12 + i * 2: PRINT " "
NEXT i
LOCATE 14, 32: PRINT "ч"
FOR i = 1 TO 10
LOCATE 24 - i, 13 + i * 2: PRINT "и": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 13 + i * 2: PRINT " "
NEXT i
LOCATE 14, 33: PRINT "и"
FOR i = 1 TO 10
LOCATE 24 - i, 14 + i * 2: PRINT "ц": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 14 + i * 2: PRINT " "
NEXT i
LOCATE 14, 34: PRINT "ц"
FOR i = 1 TO 10
LOCATE 24 - i, 15 + i * 2: PRINT "а": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 15 + i * 2: PRINT " "
NEXT i
LOCATE 14, 35: PRINT "а"
FOR i = 1 TO 10
LOCATE 24 - i, 16 + i * 2: PRINT "!": FOR j = 1 TO 3500: NEXT j
LOCATE 24 - i, 16 + i * 2: PRINT " "
NEXT i
LOCATE 14, 36: PRINT "!"
Цикл «Пока»
К числу меньшему 1000 прибавлять по 15 до тех пор, пока сумма не станет больше 1000. Определить количество слагаемых.
CLS
INPUT “Введите число меньше 1000”; C
1 IF C>1000 THEN 3 ELSE 2
2 C=C+15
H=H+1
GOTO 1
3 PRINT “Число увеличилось до -”; C
PRINT “Кол-во слагаемых=”; H
От числа большего 200 отнимать по 25 до тех пор, пока оно не станет меньше 200. Определить количество вычитаний.
CLS
INPUT “Введите число больше 200”; C
1 IF C<200 THEN 3 ELSE 2
2 C=C-25
H=H+1
GOTO 1
3 PRINT “Число уменьшилось до -”; C
PRINT “Кол-во вычитаний =”; H
Перемножьте четные числа по возрастающей до тех пор, пока их произведение не будет больше 3000. Посчитайте кол-во шагов программы.
CLS
P=1
FOR I=2 TO 100 STEP 2
PRINT “Четное число-”;I
P=P*I
H=H+1
IF P>3000 THEN 2 ELSE 1
1 NEXT I
2 PRINT “Произведение четных -”; P
PRINT “Кол-во шагов -”; H
Суммировать квадраты нечетных чисел по возрастанию до тех пор, пока их сумма не будет большее 10000. Вывести количество шагов программы.
CLS
FOR I=1 TO 1000 STEP 2
PRINT “Нечетное число-”;I
S=S+I^2
H=H+1
IF S>10000 THEN 2 ELSE 1
1 NEXT I
2 PRINT “Сумма квадратов нечетных -”; S
PRINT “Кол-во шагов -”; H
Вложенный цикл (цикл в цикле)
Бригада из 3 рабочих работала 2 дня. Каждый рабочий в день зарабатывал разную зарплату. Найти: общий заработок бригады за каждый день, общий заработок за весь период, среднюю зарплату бригады за два дня.
CLS
FOR I=1 TO 2
D=0
PRINT “День №”; I
FOR J=1 TO 3
INPUT “Введите зарплату рабочего”; A
D=D+A
S=S+A
NEXT J
PRINT “Общий заработок бригады за день=”;D
NEXT I
SR=S/6
PRINT “Общий заработок бригады за два дня=”; S
PRINT “Средняя зарплата бригады=”; SR
Бригада из 5 рабочих, работает 3 часа с разной производительностью. Найти сколько продукции изготовил каждый рабочий и вся бригада за это время.
CLS
FOR i = 1 TO 5: s = 0
PRINT "Прозводительность рабочего №"; i
FOR j = 1 TO 3
INPUT "Произвел за час"; a
s = s + a
d = d + s
NEXT j
PRINT "Итого за 3 часа="; s
NEXT i
PRINT "Всего="; d
Массивы
Одномерный массив
Сформируйте одномерный символьный массив F$, состоящий из 7 фамилий студентов. Затем выведете этот массив на экран монитора.
CLS
DIM F$(7)
FOR I = 1 TO 7
INPUT "Введите фамилию и имя студента"; F$(I)
NEXT I
PRINT "Cписок введенных студентов"
FOR I = 1 TO 7
PRINT F$(I)
NEXT I
Имеется одномерный числовой массив М(3) определите произведение всех отрицательных элементов массива
CLS
p = 1
DIM M( 3)
FOR I = 1 TO 3
INPUT "Введите элемент"; M(i)
IF M(i) < 0 THEN p = p * M(i)
NEXT I
PRINT "Произведение отрицательных эл-тов="; p
Имеется одномерный массив А(7). Найти:
А) максимальный элемент
Б) минимальный элемент
В) разность между максимальный и минимальным элементами
А) Б)
CLS CLS
DIM a(7) DIM a(7)
FOR i = 1 TO 7 FOR i = 1 TO 7
INPUT "ввести элементы массива"; a(i) INPUT "ввести элементы массива"; a(i)
NEXT i NEXT i
max = a(1) min = a(1)
FOR i = 2 TO 7 FOR i = 2 TO 7
IF a(i) > max THEN max = a(i) IF a(i) < min THEN min = a(i)
NEXT i NEXT i
PRINT "max ="; max PRINT "min ="; min
В)
CLS
DIM a(7)
FOR i = 1 TO 7
INPUT "ввести элементы массива"; a(i)
NEXT i
max = a(1)
FOR i = 2 TO 7
IF a(i) > max THEN max = a(i)
NEXT i
PRINT "max ="; max
min = a(1)
FOR i = 2 TO 7
IF a(i) < min THEN min = a(i)
NEXT i
PRINT "min ="; min
s = max - min
PRINT "разность ="; s
Написать программу сортировки одномерного массива.
CLS
INPUT n
DIM a(n)
RANDOMIZE (TIMER)
FOR i = 1 TO n
a(i) = INT(RND * 100)
NEXT i
FOR j = 1 TO n
FOR k = 1 TO j
IF a(j) > a(k) THEN SWAP a(j), a(k)
NEXT k
NEXT j
FOR i = 1 TO n
PRINT a(i)
NEXT i
Дан массив одномерный числовой массив М из 8 элементов. Посчитать сумму и произведение всех элементов массива, сумму отрицательных элементов.
CLS
K = 0
S = 1
R = 0
DIM M(8)
FOR I = 1 TO 8
INPUT M(I)
NEXT
FOR I = 1 TO 8
S = S * M(I)
IF M(I) < 0 THEN R = R + M(I)
K = K + M(I)
NEXT
PRINT S; "произведение элементов массива"
PRINT R; "сумма отрицательных элементов"
PRINT K; "сумма всех элементов массива"
Написать программу, определяющую нечетные элементы массива и их сумму.
CLS
INPUT "Введите число"; N
DIM a(N)
RANDOMIZE (TIMER)
FOR i = 1 TO N
a(i) = INT(RND * 100)
PRINT a(i)
NEXT i
PRINT "Нечетные элементы массива:"
FOR j = 1 TO N
IF a(j) / 2 <> INT(a(j) / 2) THEN
b = b + a(j)
PRINT a(j)
END IF
NEXT j
PRINT "Сумма нечетных элементов массива="; b
Имеется одномерный числовой массив G из семи элементов. Найдите среднее арифметическое всех элементов и сумму квадратов отрицательных чисел.
CLS
PRINT "Вводим массив G"
DIM G(7)
FOR I = 1 TO 7
INPUT "Ввести элементы массива"; G(I)
S = S + G(I)
IF G(I) < 0 THEN K = K + G(I) ^ 2
NEXT I
PRINT "Выводим массив n"
FOR I = 1 TO 7
PRINT G(I)
NEXT I
C = S / 7
PRINT "Среднее арифметическое равно"; C
PRINT "Сумма квадратов отрицательных чисел равна"; K
Вывести список 5 учащихся с оценками с учетом их успеваемости в убывающем порядке и среднюю успеваемость по группе.
CLS
DIM f$(5), o(5)
s = 0
FOR i = 1 TO 5
PRINT "Введите фамилию"; i; "студента";
INPUT f$(i)
INPUT "Введите его оценку"; o(i)
s = s + o(i)
b = s / 5
FOR j = 1 TO i
IF o(i) > o(j) THEN SWAP o(i), o(j)
NEXT
NEXT
FOR i = 1 TO 5
PRINT f$(i), o(i)
NEXT
PRINT "Средний балл="; b
Написать программу, которая вычисляет кол-во лет и дней между 2 датами.
CLS
INPUT "Введите первую дату (дд.мм.гггг)"; a$
INPUT "Введите вторую дату (дд.мм.гггг)"; b$
DIM s(12)
DATA 31,28,31,30,31,30,31,31,30,31,30,31
FOR i = 1 TO 12
READ s(i)
NEXT
g1 = VAL(MID$(a$, 7, 4))
g2 = VAL(MID$(b$, 7, 4))
m1 = VAL(MID$(a$, 4, 2))
m2 = VAL(MID$(b$, 4, 2))
d1 = VAL(MID$(a$, 1, 2))
d2 = VAL(MID$(b$, 1, 2))
IF LEN(a$) <> 10 OR LEN(b$) <> 10 THEN
LOCATE 4, 10
PRINT "Неверный формат ввода!"
END
END IF
IF MID$(a$, 3, 1) <> "." OR MID$(a$, 6, 1) <> "." THEN
LOCATE 4, 10
PRINT "Неверный формат ввода!"
END
END IF
IF MID$(b$, 3, 1) <> "." OR MID$(b$, 6, 1) <> "." THEN
LOCATE 4, 10
PRINT "Неверный формат ввода!"
END
END IF
FOR i = 1 TO 12
IF d1 > s(m1) OR d2 > s(m2) THEN
LOCATE 4, 5
PRINT "Дата, которую вы ввели не существует!"
END
END IF
NEXT
'Рассчет количеcтва лет
IF g1 > g2 THEN
g = g1 - g2
IF g2 > g1 AND m1 > m2 THEN g = g - 1
IF g1 > g2 AND m2 > m1 THEN g = g - 1
ELSE
g = g2 - g1
IF g2 > g1 AND m1 > m2 THEN g = g - 1
IF g1 > g2 AND m2 > m1 THEN g = g - 1
END IF
IF g = 0 THEN GOTO 1
FOR i = 2 TO 4
IF VAL(RIGHT$(STR$(g), 1)) = i THEN p$ = "года"
NEXT
IF VAL(RIGHT$(STR$(g), 1)) = 1 THEN p$ = "год"
IF VAL(RIGHT$(STR$(g), 1)) > 4 OR VAL(RIGHT$(STR$(g), 1)) = 0 THEN p$ = "лет"
IF VAL(RIGHT$(STR$(g), 2)) >= 10 AND VAL(RIGHT$(STR$(g), 2)) <= 14 THEN p$ = "лет"
PRINT g; p$
1 'Рассчет количеcтва месяцев
IF g1 = g2 THEN
IF m1 > m2 THEN m = m1 - m2 ELSE m = m2 - m1
ELSE
IF g1 < g2 AND m1 > m2 THEN m = 12 - m1 + m2
IF g1 > g2 AND m1 < m2 THEN m = 12 - m2 + m1
IF g1 < g2 AND m1 < m2 THEN m = m2 - m1
IF g1 > g2 AND m1 > m2 THEN m = m1 - m2
END IF
IF m1 = m2 THEN GOTO 2
FOR i = 2 TO 4
IF VAL(RIGHT$(STR$(m), 1)) = i THEN p$ = "месяца"
NEXT
IF VAL(RIGHT$(STR$(m), 1)) = 1 THEN p$ = "месяц"
IF VAL(RIGHT$(STR$(m), 1)) > 4 OR VAL(RIGHT$(STR$(m), 1)) = 0 THEN p$ = "месяцев"
IF VAL(RIGHT$(STR$(m), 2)) >= 10 AND VAL(RIGHT$(STR$(m), 2)) <= 14 THEN p$ = "месяцев"
PRINT m; p$
2 'Рассчет количеcтва дней
IF g = 0 AND m1 = m2 THEN
IF d1 > d2 THEN dn = d1 - d2 ELSE dn = d2 - d1
END IF
IF g1 < g2 THEN
IF m1 < m2 AND d1 < d2 THEN dn = d2 - d1
IF m1 < m2 AND d1 > d2 THEN dn = d2 - d1
END IF
FOR i = 2 TO 4
IF VAL(RIGHT$(STR$(dn), 1)) = i THEN p$ = "дня"
NEXT
IF VAL(RIGHT$(STR$(dn), 1)) = 1 THEN p$ = "день"
IF VAL(RIGHT$(STR$(dn), 1)) > 4 OR VAL(RIGHT$(STR$(dn), 1)) = 0 THEN p$ = "дней"
IF VAL(RIGHT$(STR$(dn), 2)) >= 10 AND VAL(RIGHT$(STR$(dn), 2)) <= 14 THEN p$ = "дней"
IF g = 0 AND m = 0 AND dn = 0 THEN
LOCATE 4, 20
PRINT "Вы ввели две одинаковые даты!"
END
END IF
PRINT dn; p$
Двумерный массив
Имеется двумерный числовой массив М(2,3) определите произведение всех отрицательных элементов массива
CLS
p = 1
DIM M(2, 3)
FOR i = 1 TO 2
FOR j = 1 TO 3
INPUT "Введите элемент"; M(i, j)
IF M(i, j) < 0 THEN p = p * M(i, j)
NEXT j, i
PRINT "Произведение отрицательных эл-тов="; p
Имеется двумерный числовой массив А(2,4) требуется определить сумму всех положительных элементов массива
CLS
DIM a(2, 4)
FOR i = 1 TO 2
FOR j = 1 TO 4
INPUT "Введите элемент"; a(i, j)
IF a(i, j) > 0 THEN s = s + a(i, j)
NEXT j, i
PRINT "Сумма положительных эл-тов="; s
Имеется двумерный числовой массив А(3,4). Найти:
А) максимальный элемент
Б) минимальный элемент
В) разность между максимальный и минимальным элементами
А) Б)
CLS CLS
DIM a(3, 4) DIM a(3, 4)
FOR i = 1 TO 3 FOR i = 1 TO 3
FOR j = 1 TO 4 FOR j = 1 TO 4
INPUT "ввести элементы массива"; a(i, j) INPUT "ввести элементы массива"; a(i, j)
NEXT j, i NEXT j, i
max = a(1, 1) min = a(1, 1)
FOR i = 1 TO 3 FOR i = 1 TO 3
FOR j = 1 TO 4 FOR j = 1 TO 4
IF a(i, j) > max THEN max = a(i, j) IF a(i, j) < min THEN min = a(i, j)
NEXT j, i NEXT j, i
PRINT "max ="; max PRINT "min ="; min
В)
CLS
DIM a(3, 4)
FOR i = 1 TO 3
FOR j = 1 TO 4
INPUT "ввести элементы массива"; a(i, j)
NEXT j, i
max = a(1, 1)
FOR i = 1 TO 3
FOR j = 1 TO 4
IF a(i, j) > max THEN max = a(i, j)
NEXT j, i
PRINT "max ="; max
min = a(1, 1)
FOR i = 1 TO 3
FOR j = 1 TO 4
IF a(i, j) < min THEN min = a(i, j)
NEXT j, i
PRINT "min ="; min
s = max - min
PRINT "разность ="; s
Имеется двумерный числовой массив F(3,2) Определить максимальный элемент
и его номер
CLS
DIM f(3, 2)
LOCATE 1, 30: PRINT "Ввод массива"
FOR i = 1 TO 3
a = 24
FOR j = 1 TO 2
LOCATE i + 1, j * a - 22: PRINT "Эл-нт("; i; ","; j; ")="
LOCATE i + 1, j * a - 6: INPUT f(i, j)
NEXT j, i
max = f(1, 1)
FOR i = 1 TO 3
FOR j = 1 TO 2
IF f(i, j) > max THEN max = f(i, j): LOCATE 6, 30: PRINT "("; i; ","; j; ")"
NEXT j, i
LOCATE 6, 5: PRINT "max="; max; "Это элемент -"
Имеется двумерный числовой массив состоящий из 2 столбцов и 3 строк найдите кол-во положительных элементов массива
CLS
DIM M(3, 2)
FOR i = 1 TO 3
FOR j = 1 TO 2
INPUT "Введите элемент"; M(i, j)
IF M(i, j) > 0 THEN h = h + 1
NEXT j, i
PRINT "Количество положительных эл-тов="; h
Имеется двумерный числовой массив F(3,2) Сформировать новый массив в котором к элементам 1 столбца прибавляется по 5, а элементы 2 столбца возводятся в квадрат
CLS
DIM f(3, 2)
LOCATE 1, 30: PRINT "Ввод массива"
FOR i = 1 TO 3
a = 24
FOR j = 1 TO 2
LOCATE i + 1, j * a - 22: PRINT "Эл-нт("; i; ","; j; ")="
LOCATE i + 1, j * a - 6: INPUT f(i, j)
NEXT j, i
LOCATE 6, 30: PRINT "Вывод нового массива"
FOR i = 1 TO 3
a = 24
FOR j = 1 TO 2
IF j = 1 THEN f(i, j) = f(i, j) + 5
IF j = 2 THEN f(i, j) = f(i, j) ^ 2
LOCATE i + 7, j * a - 22: PRINT "Эл-нт("; i; ","; j; ")="
LOCATE i + 7, j * a - 6: PRINT f(i, j)
NEXT j, i
Написать программу, выводящую по спирали все числа от 1 до 19^2 и вычисляющую площадь квадрата по его стороне.
CLS
COLOR 15
INPUT "Введите сторону квадрата"; n
DIM s(n, n), b$(n, n), cv(n, n)
c = 1
b = 1
FOR i = 1 TO n ^ 2
10 IF a = n AND c = 1 THEN c = 2
IF b = n AND c = 2 THEN c = 3
IF a = 1 AND c = 3 THEN c = 4
IF b = 1 AND c = 4 THEN c = 1
IF c = 1 THEN a = a + 1
IF c = 2 THEN b = b + 1
IF c = 3 THEN a = a - 1
IF c = 4 THEN b = b - 1
IF s(a, b) > 0 THEN
IF c = 1 THEN a = a - 1
IF c = 2 THEN b = b - 1
IF c = 3 THEN a = a + 1
IF c = 4 THEN b = b + 1
c = c + 1
IF c = 5 THEN c = 1
GOTO 10
END IF
cw = cw + 1
IF cw = 15 THEN cw = 1
cv(a, b) = cw
s(a, b) = i
NEXT
cv(a, b) = 31
FOR i = 1 TO n
FOR j = 1 TO n
b$(j, i) = STR$(s(j, i))
IF LEN(b$(j, i)) < 4 THEN
b$(j, i) = SPACE$(4 - LEN(b$(j, i))) + b$(j, i)
END IF
COLOR cv(j, i): PRINT b$(j, i);
NEXT
NEXT
COLOR 15
Графика
Нарисовать снеговика
CLS
SCREEN 12
CIRCLE (295, 154), 55, 1
CIRCLE (295, 64), 35, 1
CIRCLE (295, 284), 75, 1
CIRCLE (225, 154), 15, 1
CIRCLE (365, 154), 15, 1
CIRCLE (225, 350), 20, 1
CIRCLE (365, 350), 20, 1
PAINT (295, 154), 1
PAINT (295, 64), 1
CIRCLE (280, 59), 3, 0
PAINT (280, 59), 0
CIRCLE (305, 59), 3, 0
PAINT (307, 59), 0
PAINT (295, 284), 1
PAINT (225, 154), 1
PAINT (365, 154), 1
PAINT (225, 350), 1
PAINT (365, 350), 1
Нарисовать цветной ковер из линий
CLS
SCREEN 12
FOR i = 1 TO 15
LINE (10 + i * 35, 10)-(20 + i * 35, 450), i, BF
NEXT i
FOR i = 1 TO 15
LINE (10, 10 + i * 26)-(600, 20 + i * 26), i, BF
NEXT i
Нарисовать дом по следующим параметрам: ширина, высота дома; кол-во этажей и подъездов, высота крыши.
REM строим дом
CLS
SCREEN 12
INPUT "введите ширину дома"; h1
INPUT "введите высоту дома"; h2
INPUT "введите кол-во этажей"; k
INPUT "введите кол-во подъездов"; p
INPUT "введите высоту крыши"; l
FOR i = 1 TO k
x = 0
y = y + h2
FOR j = 1 TO p
x = x + h1
GOSUB 1
NEXT j, i
LINE (100, 400 - y)-(100 + x / 2, 400 - y - l), 5
LINE (100 + x, 400 - y)-(100 + x / 2, 400 - y - l), 5
END
1 LINE (100 + x - h1, 400 - y + h2)-(100 + x, 400 - y), 5, B
RETURN
Задать вращение линии на экране
CLS
SCREEN 12
1 c = 1
2 FOR c = 1 TO 15
FOR i = 1 TO 35
LINE (320 + i * 5, 50 + i * 5)-(320 - i * 5, 400 - i * 5), c
FOR k = 1 TO 6000: NEXT k
LINE (320 + i * 5, 50 + i * 5)-(320 - i * 5, 400 - i * 5), 0
SOUND 37 + i * 30, 1
NEXT i
FOR i = 1 TO 35
LINE (495 - i * 5, 225 + i * 5)-(145 + i * 5, 225 - i * 5), c
FOR k = 1 TO 6000: NEXT k
LINE (495 - i * 5, 225 + i * 5)-(145 + i * 5, 225 - i * 5), 0
SOUND 1200 - i * 30, 1
NEXT i
NEXT c
IF c = 15 THEN 1
GOTO 2
Нарисовать чертика с рогами, которые светятся
SCREEN 9
dx = .1
dy = .1
x1 = 350
x = 250
y = 120
LINE (1, 1)-(630, 340), 13, B
CIRCLE (300, 170), 90, 14
CIRCLE (250, 150), 10, 9
CIRCLE (250, 150), 5, 1
CIRCLE (350, 150), 10, 9
CIRCLE (350, 150), 5, 1
CIRCLE (300, 170), 20, 4
PAINT (300, 170), 4
CIRCLE (300, 210), 20, 4, , , .5
WHILE INKEY$ = ""
CIRCLE (x, y), 5, 1
x = x + dx
y = y + dy
FOR i = 1 TO 500: NEXT
IF x < 200 + 10 THEN dx = .1
IF x > 200 - 10 THEN dx = -.1
IF y < 100 + 10 THEN dy = .1
IF y > 100 - 10 THEN dy = -.1
CIRCLE (x1, y), 5, 1
x = x + dx
y = y + dy
FOR i = 1 TO 500: NEXT
IF x < 300 + 10 THEN dx = .1
IF x > 300 - 10 THEN dx = -.1
IF y < 100 + 10 THEN dy = .1
IF y > 100 - 10 THEN dy = -.1
WEND
x2 = 1
dx2 = 2
INPUT "Включить электричество"; z$
IF z$ = "да" THEN 10 ELSE 20
10 WHILE INKEY$ = ""
x2 = x2 + dx2
CIRCLE (350, 85), 10, 4
PAINT (350, 85), x2, 4
CIRCLE (250, 85), 10, 4
PAINT (250, 85), x2, 4
IF x2 >= 16 THEN x2 = 1
FOR i = 1 TO 500 STEP .1: NEXT
WEND: GOTO 30
20 CLS
30 PRINT "Ну что, пора прощаться"
Написать программу, вычерчивающую оси координат и графики различных функций.
CLS
mas = 30'Масштаб системы координат
PI = 3.141592654#
INPUT "x1:", a
INPUT "x2:", b
INPUT "Шаг:", h
IF h = 0 THEN h = .001
SCREEN 9
'Рисование системы координат
LINE (290, 310)-(290, 10), 1
LINE (10, 175)-(620, 175), 1
FOR x = 290 TO 600 STEP mas
LINE (x, 173)-(x, 177), 7
NEXT x
FOR x = 290 TO 10 STEP -mas
LINE (x, 173)-(x, 177), 7
NEXT x
FOR y = 175 TO 25 STEP -mas
LINE (288, y)-(292, y), 7
NEXT y
FOR y = 175 TO 300 STEP mas
LINE (288, y)-(292, y), 7
NEXT y
LOCATE 19, 5: COLOR 10: PRINT "y=1/x"
FOR x = a TO b STEP h
IF x <> 0 THEN
y = 1 / x
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 10
END IF
NEXT x
LOCATE 20, 5: COLOR 11: PRINT "y=arctg(x)"
FOR x = a TO b STEP h
y = ATN(x)
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 11
NEXT x
LOCATE 21, 5: COLOR 12: PRINT "y=x^2"
FOR x = a TO b STEP h
y = x ^ 2
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 12
NEXT x
LOCATE 22, 5: COLOR 9: PRINT "y=log(x)"
FOR x = a TO b STEP h
IF x > 0 THEN
y = LOG(x)
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 9
END IF
NEXT x
LOCATE 23, 5: COLOR 13: PRINT "y=sqr(x)"
FOR x = a TO b STEP h
IF x >= 0 THEN
y = SQR(x)
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 13
END IF
NEXT x
Нарисовать на экране коробку с катающимся внутри шаром.
SCREEN 12
x = 20
y = 20
CIRCLE (20, 20), 10, 5
LINE (10, 10)-(630, 430), , B
10
x = x + 1
y = y + 1
CIRCLE (20 + x1, 20 + y1), 10, 0
CIRCLE (20 + x, 20 + y), 10, 5
FOR i = 1 TO 100
NEXT i
x1 = x
y1 = y
IF x >= 600 THEN GOTO 60
IF y >= 430 THEN GOTO 40
GOTO 10
40
x = x + 1
y = y - 1
CIRCLE (20 + x1, 20 + y1), 10, 0
CIRCLE (20 + x, 20 + y), 10, 5
FOR i = 1 TO 100
NEXT i
x1 = x
y1 = y
IF x >= 600 THEN GOTO 80
IF y <= 0 THEN GOTO 10
GOTO 40
60
x = x - 1
y = y + 1
CIRCLE (20 + x1, 20 + y1), 10, 0
CIRCLE (20 + x, 20 + y), 10, 5
FOR i = 1 TO 100
NEXT i
x1 = x
y1 = y
IF x <= 0 THEN GOTO 10
IF y >= 430 THEN GOTO 80
GOTO 60
80
x = x - 1
y = y - 1
CIRCLE (20 + x1, 20 + y1), 10, 0
CIRCLE (20 + x, 20 + y), 10, 5
FOR i = 1 TO 100
NEXT i
x1 = x
y1 = y
IF x < 0 THEN GOTO 40
IF y < 0 THEN GOTO 60
GOTO 80
Написать программу, выводящую на экран n шаров, движущихся в пространстве.
INPUT n
DIM a(n, 7)
SCREEN 12
time = 100
FOR z = 1 TO n
a(z, 1) = INT(RND(1) * 600)
a(z, 2) = INT(RND(1) * 400)
a(z, 7) = INT(RND(1) * 4)
a(z, 6) = INT(RND(1) * 10)
a(z, 5) = INT(RND(1) * 20)
NEXT z
10
FOR z = 1 TO n
SELECT CASE a(z, 7)
CASE 1
a(z, 1) = a(z, 1) + 1
a(z, 2) = a(z, 2) + 1
CIRCLE (a(z, 3), a(z, 4)), a(z, 5), 0
CIRCLE (a(z, 1), a(z, 2)), a(z, 5), a(z, 6)
a(z, 3) = a(z, 1)
a(z, 4) = a(z, 2)
FOR i = 1 TO time
NEXT i
IF a(z, 1) >= 640 - a(z, 5) THEN a(z, 7) = 2
IF a(z, 2) >= 480 - a(z, 5) THEN a(z, 7) = 3
CASE 2
a(z, 1) = a(z, 1) - 1
a(z, 2) = a(z, 2) + 1
CIRCLE (a(z, 3), a(z, 4)), a(z, 5), 0
CIRCLE (a(z, 1), a(z, 2)), a(z, 5), a(z, 6)
a(z, 3) = a(z, 1)
a(z, 4) = a(z, 2)
FOR i = 1 TO time
NEXT i
IF a(z, 1) <= a(z, 5) THEN a(z, 7) = 1
IF a(z, 2) >= 480 - a(z, 5) THEN a(z, 7) = 4
CASE 3
a(z, 1) = a(z, 1) + 1
a(z, 2) = a(z, 2) - 1
CIRCLE (a(z, 3), a(z, 4)), a(z, 5), 0
CIRCLE (a(z, 1), a(z, 2)), a(z, 5), a(z, 6)
a(z, 3) = a(z, 1)
a(z, 4) = a(z, 2)
FOR i = 1 TO time
NEXT i
IF a(z, 1) >= 640 - a(z, 5) THEN a(z, 7) = 4
IF a(z, 2) <= a(z, 5) THEN a(z, 7) = 1
CASE 4
a(z, 1) = a(z, 1) - 1
a(z, 2) = a(z, 2) - 1
CIRCLE (a(z, 3), a(z, 4)), a(z, 5), 0
CIRCLE (a(z, 1), a(z, 2)), a(z, 5), a(z, 6)
a(z, 3) = a(z, 1)
a(z, 4) = a(z, 2)
FOR i = 1 TO time
NEXT i
IF a(z, 1) <= a(z, 5) THEN a(z, 7) = 3
IF a(z, 2) <= a(z, 5) THEN a(z, 7) = 2
END SELECT
NEXT z
GOTO 10
Написать программу, выводящую на экран 50 шаров, движущихся в пространстве.
n = 50
maxx = 640
maxy = 460
r = 5
c = 15
ugx = 15
ugy = 15
DIM a(n, 7)
SCREEN 12
RANDOMIZE (TIMER)
FOR i = 1 TO n
a(i, 1) = INT(RND(1) * maxx)
a(i, 2) = INT(RND(1) * maxy)
a(i, 3) = INT(RND(1) * 10)
IF a(i, 3) > 5 THEN a(i, 3) = 1 ELSE a(i, 3) = -1
a(i, 3) = a(i, 3) * INT(RND(1) * 10)
a(i, 4) = INT(RND(1) * ugx)
IF a(i, 4) > 5 THEN a(i, 4) = 1 ELSE a(i, 4) = -1
a(i, 4) = a(i, 4) * INT(RND(1) * ugy)
a(i, 6) = INT(RND(1) * c)
a(i, 7) = INT(RND(1) * r)
a(i, 7) = r
NEXT i
10
FOR z = 1 TO n
CIRCLE (a(z, 1), a(z, 2)), a(z, 7), 0
a(z, 1) = a(z, 1) + a(z, 3)
a(z, 2) = a(z, 2) + a(z, 4)
IF a(z, 1) + a(z, 7) > maxx THEN a(z, 3) = a(z, 3) * (-1)
IF a(z, 1) - a(z, 7) < 1 THEN a(z, 3) = a(z, 3) * (-1)
IF a(z, 2) + a(z, 7) > maxy THEN a(z, 4) = a(z, 4) * (-1)
IF a(z, 2) - a(z, 7) < 1 THEN a(z, 4) = a(z, 4) * (-1)
CIRCLE (a(z, 1), a(z, 2)), a(z, 7), a(z, 6)
NEXT z
GOTO 10
Написать программу, выводящую часы с 3 стрелками (час., мин., сек.) согласно текущему времени.
CONST pi = 3.141593
ro = 230
rs = ro - 10
rm = rs - 10
rc = rm - 10
xx = 320
yy = 240
SCREEN 12
CIRCLE (xx, yy), ro, 15
FOR i = 1 TO 12
rr = (i * 30) * (pi / 180)
IF i / 3 = INT(i / 3) THEN
CIRCLE (xx + COS(rr) * ro, yy + SIN(rr) * ro), 10, 14
PAINT (xx + COS(rr) * ro, yy + SIN(rr) * ro), 10, 14
ELSE
CIRCLE (xx + COS(rr) * ro, yy + SIN(rr) * ro), 5, 14
PAINT (xx + COS(rr) * ro, yy + SIN(rr) * ro), 9, 14
END IF
NEXT
WHILE INKEY$ <> " "
TIM$ = TIME$
LOCATE 1, 1: PRINT TIM$
IF VAL(MID$(TIM$, 7, 2)) <> sec THEN
LINE (xx, yy)-(xx + COS(ts) * rs, yy + SIN(ts) * rs), 0
LINE (xx, yy)-(xx + COS(tm) * rm, yy + SIN(tm) * rm), 0
LINE (xx, yy)-(xx + COS(th) * rc, yy + SIN(th) * rc), 0
sec = VAL(MID$(TIM$, 7, 2))
ts = (sec * 6 * (pi / 180))
ts = ts - pi / 2
min = VAL(MID$(TIM$, 4, 2))
tm = (min * 6 * (pi / 180)) + (.1 * sec * (pi / 180))
tm = tm - pi / 2
ch = VAL(MID$(TIM$, 1, 2))
th = (ch * 30 * (pi / 180)) + (.5 * min * (pi / 180))
th = th - pi / 2
LINE (xx, yy)-(xx + COS(th) * rc, yy + SIN(th) * rc), 14
LINE (xx, yy)-(xx + COS(tm) * rm, yy + SIN(tm) * rm), 10
LINE (xx, yy)-(xx + COS(ts) * rs, yy + SIN(ts) * rs), 11
END IF
WEND
Часы идущие в разных часовых поясах.
DECLARE SUB clock (xx!, yy!, ro!, co!, cs!, cm!, cc!, cn!, timnew$, timold$, timeclock$)
DECLARE FUNCTION newtime$ (tim$, ch!)
timeold$ = TIME$
timeclock$ = "16:12"
WHILE INKEY$ <> " "
IF timeold$ <> TIME$ THEN
LOCATE 1, 1: PRINT TIME$
CALL clock(100, 100, 70, 0, 13, 11, 10, 10, TIME$, timeold$, timeclock$)
CALL clock(250, 100, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 1), newtime$(timeold$, 1), timeclock$)
CALL clock(400, 100, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 2), newtime$(timeold$, 2), timeclock$)
CALL clock(550, 100, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 3), newtime$(timeold$, 3), timeclock$)
CALL clock(100, 250, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 4), newtime$(timeold$, 4), timeclock$)
CALL clock(250, 250, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 5), newtime$(timeold$, 5), timeclock$)
CALL clock(400, 250, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 6), newtime$(timeold$, 6), timeclock$)
CALL clock(550, 250, 70, 0, 13, 11, 10, 10, newtime$(TIME$, 7), newtime$(timeold$, 7), timeclock$)
timeold$ = TIME$
END IF
WEND
SUB clock (xx, yy, ro, co, cs, cm, cc, cn, timnew$, timold$, timeclock$)
CONST PI = 3.141592654#
rs = ro - 20
rm = rs - 10
rc = rm - 15
SCREEN 12
CIRCLE (xx, yy), ro, co
FOR i = 1 TO 12
u = i * 30 * PI / 180
CIRCLE (xx + (COS(u) * (rs + 5)), yy + (SIN(u) * (rs + 5))), 10, 12
PSET (xx + (COS(u) * (rs + 5)) - 2, yy + (SIN(u) * (rs + 5)) + 5), 0
IF i <= 9 THEN f = i + 3 ELSE f = i - 9
SELECT CASE f
CASE 1
DRAW "c" + LTRIM$(STR$(cn)) + "br3 u10 g4"
CASE 2
DRAW "c" + LTRIM$(STR$(cn)) + "br5 l5 u5 r5 u5 l5"
CASE 3
DRAW "c" + LTRIM$(STR$(cn)) + "bu10 r5 g5 r5 g5"
CASE 4
DRAW "c" + LTRIM$(STR$(cn)) + "bu10 d5 r5 u5 d10 "
CASE 5
DRAW "c" + LTRIM$(STR$(cn)) + "br5 bu10 l5 d5 r5 d5 l5"
CASE 6
DRAW "c" + LTRIM$(STR$(cn)) + "br5 bu10 g5 r5 d5 l5 u5"
CASE 7
DRAW "c" + LTRIM$(STR$(cn)) + "bu10 r5 g4 d5"
CASE 8
DRAW "c" + LTRIM$(STR$(cn)) + "bu5 u5 r5 d5 l5 d5 r5 u5"
CASE 9
DRAW "c" + LTRIM$(STR$(cn)) + "e5 u5 l5 d5 r5"
CASE 10
PSET (xx + (COS(u) * (rs + 5)) - 5, yy + (SIN(u) * (rs + 5)) + 5), 0
DRAW "c" + LTRIM$(STR$(cn)) + "br3 u10 g4 e4 d10 br3 u10 r5 d10 l5"
CASE 11
PSET (xx + (COS(u) * (rs + 5)) - 5, yy + (SIN(u) * (rs + 5)) + 5), 0
DRAW "c" + LTRIM$(STR$(cn)) + "br3 u10 g4 e4 d10 br7 u10 g4"
CASE 12
PSET (xx + (COS(u) * (rs + 5)) - 5, yy + (SIN(u) * (rs + 5)) + 5), 0
DRAW "c" + LTRIM$(STR$(cn)) + "br3 u10 g4 e4 d10 br7 l5 u5 r5 u5 l5"
END SELECT
NEXT
' “бв ®ўЄ бв५ЄЁ Ўг¤Ё«мЁЄ
ti$ = timeclock$
min = VAL(MID$(ti$, 4, 2))
um = (min * 6 * PI / 180) + (.1 * sec) * PI / 180
um = um - PI / 2
ch = VAL(MID$(ti$, 1, 2))
uc = (ch * 30 * PI / 180) + (.5 * min) * PI / 180
uc = uc - PI / 2
LINE (xx, yy)-(xx + (COS(uc) * rc), yy + (SIN(uc) * rc)), 14
IF LEFT$(timnew$, 5) = LEFT$(timeclock$, 5) THEN
SOUND 440, 10
SOUND 0, 50
SOUND 440, 10
END IF
'******************************
ti$ = timold$
sec = VAL(MID$(ti$, 7, 2))
us = sec * 6 * PI / 180
us = us - PI / 2
min = VAL(MID$(ti$, 4, 2))
um = (min * 6 * PI / 180) + (.1 * sec) * PI / 180
um = um - PI / 2
ch = VAL(MID$(ti$, 1, 2))
uc = (ch * 30 * PI / 180) + (.5 * min) * PI / 180
uc = uc - PI / 2
LINE (xx, yy)-(xx + (COS(uc) * rc), yy + (SIN(uc) * rc)), 0
LINE (xx, yy)-(xx + (COS(um) * rm), yy + (SIN(um) * rm)), 0
LINE (xx, yy)-(xx + (COS(us) * rs), yy + (SIN(us) * rs)), 0
ti$ = timnew$
sec = VAL(MID$(ti$, 7, 2))
us = sec * 6 * PI / 180
us = us - PI / 2
min = VAL(MID$(ti$, 4, 2))
um = (min * 6 * PI / 180) + (.1 * sec) * PI / 180
um = um - PI / 2
ch = VAL(MID$(ti$, 1, 2))
uc = (ch * 30 * PI / 180) + (.5 * min) * PI / 180
uc = uc - PI / 2
LINE (xx, yy)-(xx + (COS(uc) * rc), yy + (SIN(uc) * rc)), cc
LINE (xx, yy)-(xx + (COS(um) * rm), yy + (SIN(um) * rm)), cm
LINE (xx, yy)-(xx + (COS(us) * rs), yy + (SIN(us) * rs)), cs
END SUB
FUNCTION newtime$ (tim$, ch)
newtime$ = LTRIM$(STR$(VAL(LEFT$(tim$, 2)) + ch)) + RIGHT$(tim$, 6)
END FUNCTION
Написать программу, вычерчивающую оси координат и графики различных функций.
CLS
mas = 30'Масштаб системы координат
PI = 3.141592654#
INPUT "x1:", a
INPUT "x2:", b
INPUT "Шаг:", h
IF h = 0 THEN h = .001
SCREEN 9
'Рисование системы координат
LINE (290, 310)-(290, 10), 1
LINE (10, 175)-(620, 175), 1
FOR x = 290 TO 600 STEP mas
LINE (x, 173)-(x, 177), 7
NEXT x
FOR x = 290 TO 10 STEP -mas
LINE (x, 173)-(x, 177), 7
NEXT x
FOR y = 175 TO 25 STEP -mas
LINE (288, y)-(292, y), 7
NEXT y
FOR y = 175 TO 300 STEP mas
LINE (288, y)-(292, y), 7
NEXT y
LOCATE 19, 5: COLOR 10: PRINT "y=1/x"
FOR x = a TO b STEP h
IF x <> 0 THEN
y = 1 / x
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 10
END IF
NEXT x
LOCATE 20, 5: COLOR 11: PRINT "y=arctg(x)"
FOR x = a TO b STEP h
y = ATN(x)
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 11
NEXT x
LOCATE 21, 5: COLOR 12: PRINT "y=x^2"
FOR x = a TO b STEP h
y = x ^ 2
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 12
NEXT x
LOCATE 22, 5: COLOR 9: PRINT "y=log(x)"
FOR x = a TO b STEP h
IF x > 0 THEN
y = LOG(x)
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 9
END IF
NEXT x
LOCATE 23, 5: COLOR 13: PRINT "y=sqr(x)"
FOR x = a TO b STEP h
IF x >= 0 THEN
y = SQR(x)
y = y * mas
y = 175 - y
x1 = x * mas
IF x1 > 640 THEN EXIT FOR
PSET (x1 + 290, y), 13
END IF
NEXT x
Нарисовать звездное небо
CLS
o = 1
kt = 500
SCREEN 9
DIM x(kt), y(kt), t(kt), c(kt), r(kt), m(kt)
dp = 1
WHILE INKEY$ = ""
IF dp > 0 THEN
x = INT(RND * 639) + 1
y = INT(RND * 349) + 1
t = INT(RND * 70) + 1
x(dp) = x
y(dp) = y
t(dp) = t
c(dp) = INT(RND * 14) + 1
r(dp) = INT(RND * 9) + 1
m(dp) = INT(RND * 14) + 1
END IF
FOR i = 1 TO kt
IF t(i) < 1 THEN
dp = i: EXIT FOR
ELSE
dp = -1
END IF
NEXT
FOR i = 1 TO kt
IF t(i) > 0 THEN
CIRCLE (x(i), y(i)), r(i), c(i)
PAINT (x(i), y(i)), m(i), c(i)
t(i) = t(i) - 1
ELSE
CIRCLE (x(i), y(i)), r(i), 0
PAINT (x(i), y(i)), 0, 0
END IF
NEXT
WEND
Символьные величины
Сколько раз во втором слове встречается первая буква первого слова
CLS
INPUT "Введите первое слово "; a$
INPUT "Введите второе слово "; b$
FOR i = 1 TO LEN(b$)
f$ = MID$(a$, 1, 1)
c$ = MID$(b$, i, 1)
IF c$ = f$ THEN p = p + 1
NEXT i
PRINT "Встречается "; p; " раз(а)"
Программа, определяющая слова перевертыши
CLS
INPUT "Введите слово "; a$
FOR i = LEN(a$) TO 1 STEP -1
f$ = MID$(a$, i, 1)
c$ = c$ + f$
NEXT i
PRINT "Новое слово -"; c$
IF c$ = a$ THEN 1 ELSE 2
1 PRINT a$; "- это слово перевертыш!"
END
2 PRINT a$; "- это слово не перевертыш!"
Программа составляет из двух одинаковых по длине слов новое слово, где буквы чередуются - 1 буква одного слова + 1 буква второго слова и тд
CLS
INPUT "Введите слово №1"; a$
INPUT "Введите слово №2"; b$
FOR i = 1 TO LEN(a$)
f$ = MID$(a$, i, 1)
g$ = MID$(b$, i, 1)
c$ = c$ + f$ + g$
NEXT i
PRINT "Новое слово "; c$
Программа подсчета вхождения буквы "а" в данный текст
CLS
INPUT "Введите слово"; a$
FOR i = 1 TO LEN(a$)
d$ = MID$(a$, i, 1)
IF d$ = "а" THEN p = p + 1
NEXT i
PRINT "буква 'а' повторяется "; p; " раз(а)"
Выпадающие буквы
CLS
A$ = "Собака-друг человека"
FOR q = 1 TO LEN(A$): FOR J = 1 TO 2000: NEXT J
e = e + 1
FOR w = 22 TO 2 STEP -1: FOR h = 1 TO 2000: NEXT h
LOCATE w, e
PRINT MID$(A$, q, 1)
LOCATE w + 1, e
PRINT CHR$(32)
NEXT w, q
Программа, определяющая количество гласных букв в тексте
DIM a$(18)
FOR j = 1 TO 18
READ a$(j)
NEXT j
INPUT "введите текст"; d$
FOR i = 1 TO LEN(d$)
FOR j = 1 TO 18
IF MID$(d$, i, 1) = a$(j) THEN g = g + 1
NEXT j, i
PRINT "количество гласных букв в тексте ="; g
END
DATA "у","У","е","Е","ы","Ы","а","А","О","о","э","Э","я","Я","И","и","Ю","ю"
Программа замены всех букв "а" на буквы "б"
CLS
INPUT "Введите слово"; a$
FOR i = 1 TO LEN(a$)
d$ = MID$(a$, i, 1)
IF d$ = "а" THEN d$ = "б"
c$ = c$ + d$
NEXT i
PRINT "новое слово "; c$
Написать программу, которая выводит введенные переменные в зеркальном порядке.
CLS
INPUT a$
FOR i = LEN(a$) TO 1 STEP -1
b$ = MID$(a$, i, 1)
c$ = c$ + b$
NEXT
PRINT c$
Программа, определяющая кол-во гласных и согласных букв в тексте
DIM a$(9)
FOR i = 1 TO 9
READ a$(i)
NEXT i
DATA "а","у","е","ы","о","э","я","и","ю"
DIM d$(21)
FOR j = 1 TO 21
READ d$(j)
NEXT j
DATA "й","ц","к","н","г","ш","щ","з","х","ф","в","п","р","л","д","ж","ч","с","м","т","б"
INPUT "введите текст"; f$
FOR r = 1 TO LEN(f$)
FOR i = 1 TO 9
IF MID$(f$, r, 1) = a$(i) THEN g = g + 1
NEXT i, r
FOR r = 1 TO LEN(f$)
FOR j = 1 TO 21
IF MID$(f$, r, 1) = d$(j) THEN c = c + 1
NEXT j, r
PRINT "количество гласных="; g
PRINT "количество согласных="; c
Программа подсчета вхождения слова Х в слово У
CLS
INPUT "Введите слово Х"; a$
INPUT "Введите слово У"; b$
FOR i = 1 TO LEN(b$)
d$ = MID$(b$, i, LEN(a$))
IF d$ = a$ THEN h = h + 1
NEXT i
PRINT "Число вхождений слова Х в слово У ="; h; "раза"
Задачи для самостоятельной работы
Нестандартные задачи на программирование
Написать программу, которая спрашивает: «Сколько стоит один самовизг?», затем спрашивает: «Сколько у вас денег?», и получив ответы, делит одно число на другое и сообщает сколько «самовизгов» может купить пользователь.
Написать программу, которая спрашивает: «Сколько у вас бензина?», а потом сообщает, сколько километров пользователь может проехать на «Жигулях», сколько на «Запорожце», сколько на «ИЛ-62» и в конце добавляет, что на велосипеде можно проехать сколько захочется.
Кошки-мышки. Полторы кошки съедают за один час одну мышку. Сколько мышек съедят сто кошек за 50 часов?
N пиратов разделили между собой поровну К пленниц, а остаток посадили в лодку и отправили домой к родителям. Сколько пленниц поплыло домой?(Составить программу и вычислить при N=10, К=129).
На прямоугольном поле брани, длина одной стороны которого 120м, а другой — 50м, стоят наши и враги. Враги занимают четвертую часть площади, а наши — 1300 м2. На остальной площади поля брани мирно пасутся козлы — по X козлов на1м2. Сколько козлов пасется?
Составьте программу проверки: пройдет ли мяч диаметром D через прямоугольную форточку, размеры которой А и В.
Ракета запускается с точки на экваторе Земли со скоростью Vв направлении движения Земли по орбите вокруг Солнца. Составьте программу проверки результата запуска ракеты в зависимости от скорости.
Vl=7,9 км/ч — станет спутником Земли
V2=ll,2 км/ч — станет спутником Солнца
V3=16,67 км/ч — уйдет в межзвездное пространство.
Учитель решил проверить у учеников знание таблицы умножения. Помогите ему в этом, составьте программу проверки с оценкой.
Составьте программу упорядочения трех любых человек по росту.
Ване дали N-e количество денег и сказали купить 6 порций мороженного, а если денег не хватит, то две бутылки лимонада. Составьте программу, которая определит, что купил Ваня и осталась ли у него сдача.
Составьте программу игры «Угадай число от 1 до 100» (числа выбираются программой случайно)
Составьте программу игры «Ипподром». Играющий ставит на одну из трех лошадей, состязающихся на бегах, и выигрывает, если лошадь приходит первой. Скорость передвижения лошадей выбирается программой с помощью датчика случайных чисел.
Составьте программу, имитирующую гадание на ромашке:«Любит — не любит». Число лепестков на ромашке выбирается случайным образом.
Спортсмен в первый день пробежал 10 км. Каждый следующий день он увеличивал дневную норму на 10% от нормы предыдущего дня. Составьте программу, которая позволит определить: а) какой путь пробежит спортсмен в 7-й день; 6) через сколько дней спортсмен будет пробегать более 20 км.
Некоторое количество денег положили в банк под проценты. Составьте программу, определяющую, сколько денег будет по окончании N лет.
Леспромхоз ведет заготовку древесины. Ее первоначальный объем на территории леспромхоза был равен 120 000 м3. Ежегодный прирост составляет 5,5% от объема. Годовой план заготовки древесины — 9 500 м3. Какой объем древесины будет через 2,5 года; до тех пор, пока этот. объем станет меньше 23 000 м3?
Ивана Александровича Хлестакова пригласили управлять департаментом. В первый день ему прислали 1000 курьеров, а каждый последующий день присылали в два раза больше, чем в предыдущий. Иван Александрович согласился тогда, когда к нему прибыло сразу больше 30000 курьеров. На какой день это произошло?
В сказочной стране Лукоморье все тяжелые грузы перевозят на Змеях Горынычах. Они имеют бортовые номера от 1 до 100. Их грузоподъемность определяется числом их голов (3,6,9,12). Однажды грузовым Змеем Горынычем была сбита гражданка Баба Яга. Нарушитель скрылся, но свидетели показали, что бортовой номер кратен его числу голов. Помогите следователю Д.Никитичу выявить потенциальных нарушителей.
В компьютер князя Владимира поступили сведения о количестве Змеев Горынычей, заполонивших землю Киевскую, и количестве голов у каждого из них. Илья Муромец срубает 3 головы за один час. Сколько нужно таких богатырей, чтобы за одни сутки очистить от погани землю?
В компьютер заложены данные о возрасте и росте каждого игрока баскетбольной команды. Напишите программу, которая позволит определить самого молодого игрока с самым большим ростом.
Напишите программу игры «Поле чудес», которая позволит угадать слово за 10 попыток.
Напишите диалоговую программу «Эллочка — людоедка». Воспользуйтесь функцией RND(l). Словарь Эллочки:
-
Хамите.
Хо-хо!
Знаменито.
Мрачно.
Мрак.
Жуть.
Не учите меня жить.
Кр-р-расота!
У вас вся спина белая. (Шутка)
Подумаешь.
Ого!
В рисованных мультфильмах иллюзия движения создается последовательной сменой кадров, каждый из которых фиксирует очередное положение движущегося объекта. Используя этот принцип, получить мультфильм, показывающий:
а) идущего человечка;
б) приседающего человечка;
в) человечка, машущего флажком.
Для построения отдельных кадров мультфильма воспользоваться фигурками, описанными в рассказе А. Конан Доила «Пляшущие человечки».
Составьте программу, определяющую, с какой силой два соседа по парте притягивают друг друга., G=6,67 10-" Нм2/кг2.
Однажды встретились три толстяка и начали спорить: кто из них самый толстый? Составьте программу для определения этого.
Каждый будний день недели рыбак ходил ловить рыбу. Количество пойманных рыб было случайным, но не более 10 рыб в день. Составьте программу, которая моделирует этот процесс и подсчитывает сколько рыб поймал рыбак.
У бабушки спрятана банка вишневого варенья, в банке 5 кг.Внук Коля разведал, где спрятана банка и съел 1 ложку варенья. Затем осмелел и стал съедать на одну ложку больше каждый день. Сколько варенья обнаружит в банке бабушка через 20 дней, если известно, что в одной ложке помещается 20 г варенья?
Получить звуковой мультфильм «Танцующий НЛО». Координаты очередного положения НЛО на экране выбираются с помощью датчика случайных чисел. Каждый раз, когда величина координаты Y окажется кратной 12, НЛО должен издавать звуковой сигнал.