Презентация по информатике на тему «Языки программирования»

0
0
Материал опубликован 18 November 2016

Основные операторы языка программирования

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 20

SOUND I, 1

LOСATE 12,20:PRINT “Звуковая частота”;I

NEXT I

Случайная звуковая частота A=37:B=2000

FOR I=1 TO 100

X=(B-A)*RND (1)+A

SOUND X, 1

LOСATE 12,20:PRINT “Звуковая частота=”; X

NEXT I

Оператор «PLAY»

Играет музыкальные ноты.

Команды октавы и тона:

(О) октава - задает текущую октаву (0-6)

<или> - переходит на одну октаву вверх или вниз

AG – играет определенную ноту текущей октавы

(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>E116D

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

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

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$

PRINT

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

PRINT

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). Словарь Эллочки:

  1. Хамите.

    Хо-хо!

    Знаменито.

    Мрачно.

    Мрак.

    Жуть.

    Не учите меня жить.

    Кр-р-расота!

    У вас вся спина белая. (Шутка)

    Подумаешь.

    Ого!

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

а) идущего человечка;

б) приседающего человечка;

в) человечка, машущего флажком.

Для построения отдельных кадров мультфильма воспользоваться фигурками, описанными в рассказе А. Конан Доила «Пляшущие человечки».

Составьте программу, определяющую, с какой силой два соседа по парте притягивают друг друга., G=6,67 10-" Нм2/кг2.

Однажды встретились три толстяка и начали спорить: кто из них самый толстый? Составьте программу для определения этого.

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

У бабушки спрятана банка вишневого варенья, в банке 5 кг.Внук Коля разведал, где спрятана банка и съел 1 ложку варенья. Затем осмелел и стал съедать на одну ложку больше каждый день. Сколько варенья обнаружит в банке бабушка через 20 дней, если известно, что в одной ложке помещается 20 г варенья?

Получить звуковой мультфильм «Танцующий НЛО». Координаты очередного положения НЛО на экране выбираются с помощью датчика случайных чисел. Каждый раз, когда величина координаты Y окажется кратной 12, НЛО должен издавать звуковой сигнал.

Комментарии
Комментариев пока нет.