Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

Формат:

DEF FN <имя функции>(<список формальных параметров>)=<выражение>

Обращение к функции пользователя осуществляется

FN <имя функции>(<список фактических параметров>)

Имя определяемой функции должно быть уникально: оно не может повторять имя другой процедуры, переменной или функции.

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

DEF FNKT(X)=COS(X)/SIN(X)

DEF FNP(A, B)=A/B*100

X, A,B – формальные параметры

Между формальными и фактическими параметрами и их типами существует однозначное позиционное соответствие слева направо. Примеры обращения:

FNKT(X)

FNP(C, D)

X, C,D - фактические параметры

Имена формальных и фактических параметров могут не совпадать.

С помощью оператора DEF FN можно описать более сложную функцию, занимающую несколько строк

Формат:

DEF FN <имя функции>(<список аргументов>)

<блок команд>

FN<имя функции>=<выражение>

END DEF

В строке FN<имя функции>=записывается выражение, значение которого функция возвращает.

Пример1. Отрезки заданы координатами концов. Сравнить эти отрезки.

DEF FNL(x1,x2,y1,y2)=SQR((x1-x2)^2+(y1-y2)^2) ‘функция нахождения длины отрезка

INPUT “введите координаты первого отрезка”,x1,x2,y1,y2

L1=FNL(x1,x2,y1,y2)

INPUT “введите координаты второго отрезка”,x1,x2,y1,y2

L2=FNL(x1,x2,y1,y2)

IF L1>L2 THEN

? “длина первого отрезка больше”

НЕ нашли? Не то? Что вы ищете?

ELSEIF L2>L1 THEN

? “длина второго отрезка больше

ELSE

? “отрезки равны”

END IF

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

K=½(1+m^2)/cos(1-m)½–5*Ö½(c+d^2)/cos(c-d)½+tg½(x+y^2)/cos(x-y)½

DEF FNT(a, b)=abs((a+b^2)/cos(a-b))

INPUT “Введите 5 значений”,m, c,d, x,y

K=FNT(1,m)-5*sqr(FNT(c, d))+tan(FNT(x, y))

? “K=”;K

Пример 3. Вычислить сумму N членов ряда. Факториал вычислять с помощью функции пользователя.

S=1!/4!+4!/5!+9!/6!+16!/7!+…+(n^2)!/(n+3)!

DEF FNFACT(M)

P=1

FOR I=1 TO M

P=P*I

NEXT I

FNFACT=P

END DEF

INPUT “Введите n”;N

S=0

FOR J=1 TO N

S=S+FNFACT(J^2)/FNFACT(J+3)

NEXT J

? “S=”;S

Задание:

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

C=Ö(d+½e½)/tg(de)+(x+½y½)/tg(xy)-(z+½t½)/tg(zt)

2. Вычислить функцию: C = m! n!/(m-n)!. Для вычисления факториала использовать определяемую функцию.

Практическое занятие с использованием подпрограмм и функций пользователя

1 вариант

Дан массив с оценками учащихся. Найти средний балл учащихся. Подсчитать количество 5 и 4. Заполнение массива, подсчет среднего балла и подсчет количества оценок оформить отдельными подпрограммами. Задана матрица W(5,6). Отрицательные элементы матрицы заменить на 0. измененный массив вывести на экран. Обработку элементов массива оформить в подпрограмме.

2 вариант

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

Найти произведение элементов массива R(7,5) в строках с четными номерами. Обработку элементов массива оформить в подпрограмме.

Работа со строковыми типами данных

Оператор LINE INPUT

Оператор LINE INPUT позволяет ввести с клавиатуры строку длиной до 255 символов

Формат:

LINE INPUTкомментарии”,T$

T$ - строковая переменная.

Выполнение команды LINE INPUT проводится аналогично команде INPUT с той лишь разницей, что:

·  Вводится обязательно строковое и только одно значение;

·  За поясняющим сообщением нет знака вопроса;

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

Например:

LINE INPUT”введите фамилии”,T$

<набираем: Иванов, Петров, Николаев >

после этого T$ будет содержать: Иванов, Петров, Николаев

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

Со строковыми данными возможна одна операция конкатенация – объединение двух строковых последовательностей в одну.

Формат:

A$ + B$

Например:

A$=”Графический”

D$=” редактор”

T$=A$+B$

PRINT T$

<На экране появится: Графический редактор>

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

Функция LEN предназначена для определения длины символьного выражения

Формат:

LEN (текст)

Функция определяет длину значения строкового выражения.

Например:

T$=”Москва”

K=LEN(T$)

PRINT “длина текста = “;K

<На экране появится: длина текста = 6>

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

Функция LEFT$ возвращает строку символов из n левых символов

Формат:

LEFT$ (текст, n)

Например:

T$=”контрабас”

A$=LEFT$(T$,6)

? A$

<На экране появится: контра>

Функция RIGHT$ возвращает строку символов из n правых символов

Формат:

RIGHT$ (текст, n)

Например:

T$=”контрабас”

A$=RIGHT$(T$,3)

? A$

<На экране появится: бас>

Если число n больше длины текста, то обе функции возвращают весь исходный текст.

Функция MID$ (возвращает фрагмент из текста: n символов, начиная с k-го символа.

Формат:

MID$ (текст, k,[n])

К – порядковый номер символа.

N – количество символов, подлежащих обработке.

Например:

T$=”информатика”

A$=MID(T$,3,5)

? A$

<На экране появится: форма>

Если n не указано, то функция возвращает символы начиная с к-го и до конца текста.

Например:

T$=”Москва, Париж и Лондон”

A$=MID(T$,9)

? A$

<На экране появится: Париж и Лондон>

Пример 1. Задан текст. Подсчитать каких букв в тексте больше “а” или “о” и на сколько.

LINE INPUT “введите текст”;T$

L=LEN(T$)

KA=0 : KO=0

FOR I=1 TO L

IF MID$(T$,I,1)=”A” OR MID$(T$,I,1)=”a” THEN KA=KA+1

IF MID$(T$,I,1)=”O” OR MID$(T$,I,1)=”o” THEN KO=KO+1

NEXT I

IF KA>KO THEN PRINT “Букв а больше, чем о на “;KA-KO

IF KO>KA THEN PRINT “Букв o больше, чем a на “;KO-KA

IF KA=KO THEN PRINT “Букв а и о равное количество “

Пример 2. Задан текст. Подсчитать сколько предложений в тексте.

LINE INPUT “введите текст”;T$

L=LEN(T$)

К=0

FOR I=1 TO L

IF MID$(T$,I,1)=”.” OR MID$(T$,I,1)=”!” OR MID$(T$,I,1)=”?” THEN K=K+1

NEXT I

PRINT “В тексте “;K;” предложений”

Пример 3. Дано слово “информатика”. Составить из букв этого слова 3 новых слова.

T$=”информатика”

T1$=MID$(T$,3,3)+MID$(T$,7,1)

T2$=MID$(T$,5,1)+LEFT$(T$,1)+MID$(T$,3,1)+MID$(T$,6,2)

T3$=MID$(T$,2,1)+MID$(T$,4,2)+RIGHT$(T$,2)

PRINT T1$;”, “;T2$;”, “;T3$

<на экране появится: фора, рифма, норка>

Пример 4. Дано слово. Выяснить является ли это слово перевертышем, то есть читается слева направо и наоборот одинаково. Например “казак”.

LINE INPUT “Введите слово”;T$

M$=””

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

M$=M$+MID$(T$,I,1)

NEXT I

IF T$=M$ THEN PRINT “Да является” ELSE PRINT “Нет не является”

Для самостоятельного решения:

Задание1:

Задано слово “энциклопедия”. Кто составит больше слов из букв этого слова и кто составит самое длинное слово

Задание 2:

Задано слово. Напечатать это слово в обратном порядке.

Задание 3:

Задан текст. Напечатать каждое предложение этого текста с новой строки.

Функция INSTR ищет подстроку в строке начиная с позиции n. Если n не задано, то поиск осуществляется с первой позиции. Функция INSRT дает номер позиции, начиная с которой заданная подстрока появляется в исходной строке. Функция возвращает 0, если подстрока не найдена в строке.

Формат:

INSTR ([n],текст, подстрока)

Например:

T$=”информатика”

A$=”форма”

N=INSTR(1,T$,A$)

? N

<На экране появится: 3>

Пример 1. Задан текст. Подсчитать сколько раз в тексте встречается словосочетание “кот”.

1 способ:

LINE INPUT “Введите текст”;T$

L=LEN(T$)

FOR I=1 TO L

IF MID(T$,I,3)=”кот” THEN K=K+1

NEXT I

? “Количество словосочетаний кот = ”;K

2 способ:

LINE INPUT “Введите текст”;T$

T=INSTR(1,T$,”кот”)

WHILE T<>0

K=K+1

T=INSTR(T+1,T$,”кот”)

WEND

? “Количество словосочетаний кот = ”;K

Пример 2. Задан текст, в котором есть несколько двоеточий. Напечатать текст между первыми двумя двоеточиями.

LINE INPUT “Введите текст”;T$

T1=INSTR(1,T$,”:”)

T2=INSTR(T1+1,T$,”:”)

PRINT MID$(T$,T1+1,T2-T1-1)

Пример 3. Задан текст. Подсчитать количество слов в первом предложении. Слова разделены пробелом.

1 способ

LINE INPUT “Введите текст”;T$

K=1

PT=INSTR(T$,”.”)

FOR I=1 TO PT

IF MID$(T$,I,1)=” “ THEN K=K+1

NEXT I

PRINT”Количество слов в первом предложении=”;K

2 способ

LINE INPUT “Введите текст”;T$

K=1

I=1

WHILE MID$(T$,I,1)<>”.”

IF MID$(T$,I,1)=” “ THEN K=K+1

I=I+1

WEND

PRINT”Количество слов в первом предложении = ”;K

Пример 4. Задан текст. Подсчитать количество слов «ученик» в последнем предложении.

LINE INPUT “Введите текст”;T$

K=0

I= Len(T$)-1

WHILE MID$(T$,I,1)<>”.”

B$= MID$(T$,I,8)

IF B$=” ученик “ OR B$=” Ученик “ THEN K=K+1

I=I-1

WEND

PRINT”Количество слов ученик в последнем предложении = ”;K

Оператор MID$ замещает часть строковой переменной другой строкой.

MID$(строк_переменная$,k[,n])=строк_выражение$

строк_выражение$ - строка, из которой функция MID$ возвращает подстроку, или строка замещения, используемая в операторе MID$. Может быть любым строковым выражением.

K - позиция первого возвращаемого или замещаемого символа в строке.

N - число символов в подстроке. Если длина опущена, MID$ возвращает или замещает все символы справа от начальной позиции.

строк_переменная$ - строковая переменная, изменяемая оператором MID$.

Пример:

Text$ = "Париж, Франция"

PRINT Text$ 'Вывод: Париж, Франция

MID$(Text$, 8) = "Сиэтл "

PRINT Text$ 'Вывод: Париж, Сиэтл

Функция INKEY$ или как получить власть над клавиатурой

Функция INKEY$ предназначена для поддержки интерфейса между программой и клавиатурой. Предположим, необходимо создать паузу ожидания в определенном месте программы. Чтобы организовать такую паузу, нужно использовать условный цикл, в котором проверяется значение, возвращаемое функцией INKEY$.

Например:

PRINT “Нажмите любую клавишу

WHILE INKEY$ = “”

WEND

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

Например:

PRINT “Нажмите ‘ESC’ “

WHILE INKEY$ <> CHR$(27)

WEND

(27 – код ASCII для клавиши ‘ESC’)

Каждая клавиша имеет свой код ASCII. Обращаясь к функции INKEY$, нельзя забывать, что она используется только вместе с условным циклом.

Графическая обработка данных

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

Оператор SCREEN

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

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

Формат:

SCREEN номер режима

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

Например: этот рисунок демонстрирует параметры графического режима SCREEN 2.

(0,0) 640

(320,100)

 

200

200

(639,

 

(639,199)

Таблица. Режимы экрана для адаптера VGA

Номер режима

Число точек

цвета

0

Текстовый режим

16

1

320 х 200

4

2

640 х 200

2

7

320 х 200

16

8

640 х 200

16

9

640 х 350

16

10

640 х 350

2

11

640 х 480

2

12

640 х 480

16

13

320 х 200

256

Оператор COLOR

Способность вашего монитора воспроизводить 16 цветов позволяет выбрать цвет символов и цвет фона.

Формат:

COLOR [C] [,F]

С-цвет символов

F-цвет фона

Таблица 2. Коды и соответствующие цвета.

К о д

Ц в е т

0

Черный

1

Синий

2

Зеленый

3

Голубой

4

Красный

5

Пурпурный

6

Коричневый

7

Светло-серый

8

Темно-серый

9

Светло-синий

10

Светло-зеленый

11

Светло-голубой

12

Светло-красный

13

Светло-пурпурный

14

Желтый

15

Белый

Операторы PSET, PRESET

Отдельный пиксель можно “зажечь” заданным цветом любой из двух универсальных команд графического режима:

PRESET (X, Y)[,C]

PSET (X, Y)[,C]

Формат команд одинаков: сначала указываются координаты точки, а затем, если необходимо – номер цвета точки. Если цвет указан, действие команд совершенно одинаково: точка окрашивается цветом С. Если цвет опущен, PSET окрашивает точку текущим цветом символов, а PRESET – текущим цветом фона (она будет невидимой).

Пример 1. Изобразить на экране бегуший отрезок.

SCREEN 12

COLOR 4,3

FOR X=1 TO 640

PSET (X,240)

PRESET (X-10,240)

NEXT X

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

SCREEN 12

COLOR 14,3

Y=210

FOR X=310 TO 330

PSET(X, Y)

PSET(640-X, Y)

Y=Y+1

NEXT X

Операторы PSET и PRESET могут иметь еще следующие формы:

PSET STEP (X, Y)

PRESET STEP (X, Y)

STEP в этих операторах указывает на смещение точки относительно координат последней точки.

Прямые линии – отрезки

Оператор LINE предназначен для рисования отрезка, соединяющего две произвольные точки экрана.

Формат:

LINE[(X1,Y1)]-(X2,Y2)[,C]

X1,Y1 - координаты начала отрезка.

X2,Y2 - координаты конца отрезка.

С - цвет.

Если координаты начала отрезка опущены, то отрезок будет начинаться с координат последней точки.

В операторе LINE можно использовать относительные координаты для начала и/или конца отрезка. Например:

LINE STEP (10,10)-(100,165) будет нарисован отрезок от точки с координатами последней точки + 10,10 до точки с координатами 100,165.

LINE (115,120) – STEP(-10,15) будет нарисован отрезок от точки с координатами 115,120 до точки с координатами 105,135.

LINE STEP(-5,5) – STEP(5,-5) будет нарисован отрезок от точки с координатами последней точки -5,5 до точки с приращением +5,-5.

Рисование прямоугольников

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

Формат:

LINE(X1,Y1)-(X2,Y2)[,C],B

LINE(X1,Y1)-(X2,Y2)[,C],BF

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

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

X1,Y1 – координаты верхнего левого угла прямоугольника.

X2,Y2 – координаты правого нижнего угла прямоугольника.

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

При рисовании прямоугольника также как при рисовании отрезка можно использовать относительные координаты.

Пример 1. Нарисовать несколько вложенных прямоугольников.

SCREEN 12

COLOR 14,3

PSET 10,10

FOR I=1 TO 5

LINE STEP(10,10)-(200-I*10,200-I*10)

NEXT I

Результатом выполнения программы будет:

 

Задания:

1.  Нарисовать домик;

2.  Нарисовать елочку;

3.  Нарисовать робота;

4.  Нарисовать собачку;

5.  Нарисовать пятиконечную звезду;

Оператор CIRCLE

С помощью оператора CIRCLE можно нарисовать окружность.

Формат:

CIRCLE(X, Y),R[,C]

CIRCLE STEP (X, Y),R[,C]

X, Y – координаты или смещение центра окружности

R – радиус окружности

Чтобы нарисовать дугу, эллипс или сектор окружности необходимо добавить новые параметры в оператор CIRCLE.

Формат:

CIRCLE(X, Y),R, C,N, K,A

X, Y – координаты центра окружности;

R – радиус окружности;

C – цвет;

N – начальная точка дуги, заданная в радианах;

K – конечная точка дуги, заданная в радианах;

A – отношение значений Y - радиуса и Х - радиуса.

Для рисования окружности используются только параметры X, Y и радиус.

Для рисования дуги необходимо добавить значения параметров начальной и конечной точек. Значения параметров начальной и конечной точек задаются в радианах и должны иметь значения между 0 и 2π радиан (2π =6.28). При рисовании дуги отсчет идет от начальной точки дуги до конечной в направлении против часовой стрелки.

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

Пример:

REM рисование окружности, дуги и сектора.

SCREEN 2

CLS

CIRCLE (100,100) , 30

CIRCLE(180,100) , 30 , 3 , 1 , 2

CIRCLE(260,100) , 30 , 3 , -2 , -1

END

Результатом выполнения программы будет:

 

Для рисования эллипса нужно ввести в оператор CIRCLE коэффициент отношения радиусов по осям Y и X. Этот параметр определяет степень сжатия эллипса и может иметь любое положительное значение.

Пример:

REM рисование эллипсов

SCREEN 2

CLS

CIRCLE (100,100) , 30

CIRCLE(180,100) , 30 , , 0.3

CIRCLE(260,100), 30 , , 1.5

END

Результатом выполнения программы будет.

 

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

REM Рисование мордашки

SCREEN 1

CLS

CIRCLE (100,100) , 70 ‘лицо

CIRCLE (75,75) , 10 , , .2 ‘глаза

CIRCLE (125,75) , 10 , , .2

CIRCLE (100,100) , 5 , , 2 ‘нос

LINE (100,40) – (90,60) ‘волосы

LINE (100,40) – (110,60)

LINE (100,40) – (100,60)

CIRCLE (100,110) , 20 , , 3.14 , 0 ‘улыбка

END

Результатом выполнения программы будет:

 

Оператор PAINT

С помощью оператора PAINT можно закрасить замкнутую область в заданный цвет.

Формат:

PAINT (X, Y) , C1 , C2

X, Y – координаты любой точки из замкнутой области.

С1 – цвет, в который надо закрасить область.

С2 – цвет, которым нарисована граница области.

Если цвет области совпадает с цветом границы, то С2 можно не указывать. Закрашиваемая область должна быть замкнутой. Если в контуре (на границе) области окажется разрыв, краска С1 “вытечет” из контура и заполнит весь экран.

Задания:

1.  Нарисовать гриб;

2.  Нарисовать зонтик;

3.  Нарисовать натюрморт из фруктов и овошей;

4.  Нарисовать снежную бабу;

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

Вывод текста в графическом режиме

В графическом режиме можно выводить текст командой PRINT. Каждый видеорежим имеет собственное деление экрана на строки и столбцы. Например, в режиме 9 экран делится на 25 строк и 80 столбцов (как бы имитация текстового режима). Матрица символа имеет размеры 8х14 – восемь столбцов и 14 строк (640/80 и 350/25). Координаты выводимого текста можно указать с помощью обычной команды LOCATE, например:

А=48

LOCATE 12,44

PRINT “A = “;A;

На экране будет: А = 48

Текст выводится текущим цветом символов, который указан в последней выданной команде COLOR.

Графическое “перо” DRAW

Оператор DRAW позволяет управлять движением “пера” с помощью графических команд.

Формат:

DRAW строка символов

В строке символов записывается последовательность графических команд, причем каждая команда обозначена латинской буквой и целым числом (например, Е10, С2 и т. д.). Движение пера начинается с текущей позиции курсора, а эту позицию можно установить оператором PSET или PRESET.

Следующая таблица содержит команды, необходимые для рисования.

К о м а н д а

Выполняемое действие

Un

Переместить вверх

Dn

Переместить вниз

Ln

Переместить влево

Rn

Переместить вправо

En

Переместить вверх и право по диагонали

Fn

Переместить вниз и право по диагонали

Gn

Переместить вниз и влево по диагонали

Hn

Переместить вверх и влево по диагонали

Mx, y

Переместить в точку с координатами (x, y)

B

Переместить, но не рисовать

N

Переместить, затем вернуться в начальное положение

An

Задать угол поворота

Tan

Задать угол направления

Cn

Задать цвет

Sn

Задать масштаб (n может иметь значения от 1 до 225)

P n, m

Закрасить область (n-цвет области, m - цвет контура)

Пример:

SCREEN 1

CLS

‘ рисование буквы “Q”

DRAW “BM 100,100 F10 R10 E10 U30 H10 L10 G10 D30”

DRAW “BM+10,+0 R10 U30 L10 D30”

DRAW “BM+10,+0 NM125,112 N M135,110 BM125,112 M 135,110”

' рисование буквы “B”

DRAW “BM+10,+0 R20 E10 U10 H5 E5 U10 H10 L20 D50”

DRAW “BM+10,-10 R10 U10 L10 D10”

DRAW “BM+0,-20 R10 U10 L10 D10”

END

 

Команда An вращает изображение на угол, кратный 90 градусам, где n равно 0, 1, 2 или 3.

Например, конструкция DRAW “A2” повернет нарисованное изображение на угол 180 градусов.

Команда Tan позволяет поворачивать изображение на произвольный угол: n может иметь любое значение от –360 до +360. Отрицательное значение угла означает поворот изображения по часовой стрелке, положительное значение n определяет поворот против часовой стрелки.

Задания:

1.  Нарисовать свои инициалы;

2.  Нарисовать забор;

3.  Нарисовать дом;

4.  Нарисовать стол;

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3