19
СЪДЪРЖАНИЕ ИЗРАЗИ В QBASIC ............................................................................................................................................................................................................................ 2 ОСНОВНИ ОПЕРАТОРИ в QBASIC ................................................................................................................................................................................................... 3 ПРОМЕНЛИВИ В QBASIC................................................................................................................................................................................................................. 4 КОМАНДИ ЗА УПРАВЛЕНИЕ НА ПРОГРАМАТА ............................................................................................................................................................................. 5 Безусловен преход ..................................................................................................................................................................................................................... 5 Условен преход .......................................................................................................................................................................................................................... 6 Множествен избор (SELECT CASE) ............................................................................................................................................................................................. 7 Цикли............................................................................................................................................................................................................................................... 8 Цикъл с параметри ..................................................................................................................................................................................................................... 8 Цикъл с предусловие ............................................................................................................................................................................................................... 11 Цикъл с постусловие ................................................................................................................................................................................................................ 12 Цикъл WHILE … WEND .............................................................................................................................................................................................................. 12 Случайни числа в QBASIC ............................................................................................................................................................................................................. 14 МАСИВИ ........................................................................................................................................................................................................................................ 15 ОСНОВНИ АЛГОРИТМИ С МАСИВИ............................................................................................................................................................................................. 16 Функции за работа с текст ........................................................................................................................................................................................................... 18

СЪДЪРЖАНИЕ - tcom-sf.org · Случайни числа в QBASIC Rnd –оператор , който връща случайно дробно число между 0 и

  • Upload
    lythu

  • View
    239

  • Download
    2

Embed Size (px)

Citation preview

СЪДЪРЖАНИЕ ИЗРАЗИ В QBASIC ............................................................................................................................................................................................................................ 2

ОСНОВНИ ОПЕРАТОРИ в QBASIC ................................................................................................................................................................................................... 3

ПРОМЕНЛИВИ В QBASIC ................................................................................................................................................................................................................. 4

КОМАНДИ ЗА УПРАВЛЕНИЕ НА ПРОГРАМАТА ............................................................................................................................................................................. 5

Безусловен преход ..................................................................................................................................................................................................................... 5

Условен преход .......................................................................................................................................................................................................................... 6

Множествен избор (SELECT CASE) ............................................................................................................................................................................................. 7

Цикли ............................................................................................................................................................................................................................................... 8

Цикъл с параметри ..................................................................................................................................................................................................................... 8

Цикъл с предусловие ............................................................................................................................................................................................................... 11

Цикъл с постусловие ................................................................................................................................................................................................................ 12

Цикъл WHILE … WEND .............................................................................................................................................................................................................. 12

Случайни числа в QBASIC ............................................................................................................................................................................................................. 14

МАСИВИ ........................................................................................................................................................................................................................................ 15

ОСНОВНИ АЛГОРИТМИ С МАСИВИ ............................................................................................................................................................................................. 16

Функции за работа с текст ........................................................................................................................................................................................................... 18

ИЗРАЗИ В QBASIC • АРИТМЕТИЧНИ;

• УСЛОВНИ;

• ЛОГИЧЕСКИ;

• ТЕКСТОВИ.

Аритметичните операции са следните:

Знак Значение Пример

^ повдигане на степен X^Y

* умножение X*Y

/ делене X/Y

+ събиране X+Y

- изваждане X-Y

\ целочислено делене X\Y; 10\4 (отговор-2)

MOD остатък от целочислено

делене

X MOD Y

10 MOD 3 (отговор-1)

х2 – х + 2 на QBASIC ( х ^ 2 – х + 2 ) / (х ^ 4+5*х^2+40)

пример:х4+5х

2+40

УСЛОВНИоператори:

= - равно;

>- по-голямо;

< - по-малко;

>= - по-голямо или равно;

<= - по-малко или равно;

<>- различно.

Условните оператори имат значение true или false. Използват се в логически изрази като:

IF k>0 THEN …

WHILE I=0

ЛОГИЧЕСКИ изразиОператорите се свързват с AND ("И", конюнкция), OR ("ИЛИ", дизюнкция), NOT (отрицание),

например:

a+b>c AND d<>8

NOT(a>b)

ОСНОВНИ ОПЕРАТОРИ в QBASIC ОПЕРАТОР пример Изход на екрана

Оператор за печат:

Print

Print “tekst”;4*5 Print “tekst”,4*5

tekst 20 tekst 20

Оператор за изчистване на екрана:

Cls

Cls Print 4 Cls Print 6

6

Динамично въвеждане на данни: INPUT "Съобщение", списък променливи

CLS

INPUT "What is your name"; name$

PRINT "Hello, "; name$; "! ";

INPUT "How old are you"; age

PRINT "The user, "; name$; " is "; age; " years

old"

What is your name?Ina

Hello, INA!

How old are you? 23

The user, INA is 23 age years

old

Статично въвеждане на данни

DATAсписък константи

READсписък променливи

RESTOREномер на ред или

отметка

10 DATA 5,25,19.6,30,12,"ABC"

20 DATA "BASIC","Pascal",25.9

READ vk%, s%

RESTORE 20

READ z1$, z2$

vk%, s% присвояват значения

5 и 25, а променливите z1$, z2$ -

значения "BASIC" и "Pascal".

Ако липсваRESTORE се присвояват

5, 25,19.6 и 30

Коментари REM или ‘

REM program to input

' произволен текст

Не извежда текста, защото е

коментар

Позиционира следващия оператор на n- тия ред и m-тата позиция

locate n,m

CLS

LOCATE 14, 34 'position the left eye

PRINT "<=>" 'draw the left eye

LOCATE 14, 43 'position the right eye

PRINT "<=>" 'draw the right eye

LOCATE 16, 39 'position the nose

PRINT "o|o" 'draw the nose

LOCATE 18, 36 'position the mouth

PRINT "\_______/" 'draw the mouth

LOCATE 19, 42 'the bottom

PRINT "The Face by QBasic"

ПРОМЕНЛИВИ В QBASIC Променливата е величина, която може да се променя по време на програмата.

Името и е произволен набор от символи от 1 до 40 символа. Първият символ е латинска буква, а останалите произволни

латински букви или цифри. Буквите могат да бъдат главни и малки. Накрая на променливата може да се сложи символ за разпознаване

на типа на променливата.Типовете дании са следните:

A%=12

Z$=”Planina”

n!=-54.2

Променливи

символни (A$)

Дробни с двойна точност (A#)

Дробни (A!, A) Използват се по подразбиране

Цели с двойна точност (A&)

цели (A%)

REM PROGRAM TO INPUT DAYS AND CONVERT INTO YEARS, MONTHS AND DAYS

CLS

INPUT “ENTER DAYS”; D

Y = D \ 365

MO = D MOD 365

M = MO \ 30

D = MO MOD 30

PRINT Y; “YEARS ” ; M; “MONTHS”; D; “DAYS”

КОМАНДИ ЗА УПРАВЛЕНИЕ НА ПРОГРАМАТА

.

1. Команди за безусловен преход;

2. Команди за условен преход;

3. Команди за цикъл.

Безусловен преход

Формат:

GOTOномер на ред или отметка

Управлението предава командандването на указания ред или отметка

Например:

GOTOW

W: PRINT"Решение получено"

Условен преход

Условния оператор може да се запише в една от две форми: линейна ( на един ред) и блокова (на няколко реда).

Линейна форма:

IFлогически изразTHEN<блок оператори 1> [ELSE<блок оператори 2>]

Блокова форма:

IFлогически изразTHEN

<блок оператори 1>

[ELSE <блок оператори 2>]

ENDIF

Rem visokosna li e

Input year

If (year>0) then

If (year mod 400=0) or (year mod 4=0) then

Print ”godinata”, year, ” e visokosna”

Else

Print ”godinata”, year,” e nevisokosna”

Endif

Endif

Rem chetnoilinechetno e chisloto

INPUT "vavedetechislo?"; X

A$ = "chetno"

IF X MOD 2 <> 0 THEN A$ = "ne" + A$

PRINT "vavedenotochislo e ", A$

REMenter any three numbers and display the middle number.

CLS

INPUT “ENTER ANY THREE NUMBERS”; A, B, C

IF A > B AND A < C OR A < B AND A > C THEN

PRINT A; “IS MIDDLE NUMBER”

ELSEIF B > A AND B < C OR B < A AND B > C THEN

PRINT B; “IS MIDDLE NUMBER”

ELSE

PRINT C; “IS MIDDLE NUMBER”

END IF

Rem izbor s goto

PRINT "Press 1 to clear the screen, or 2 to say 'Hello'!"

INPUT "What do you want to do"; choice

IF choice = 1 THEN GOTO clrscr

IF choice = 2 THEN GOTO hello

clrscr: CLS

PRINT "Done."

END

hello: PRINT "Hello, hello, hello!"

Множествен избор (SELECT CASE) Формат

SELECTCASEаритметичен израз или символен израз

CASE условие 1

<блок оператори 1>

CASE условие 2

<блок оператори 2>

……………….

[CASE ELSE

<блокопертори n>]

END SELECT

Оператора CASEможе да се укаже в три форми:

1) CASE константа 1, константа 2, …

2) CASEISзнак за отношение константа

3) CASE константа 1 TO константа

Пример

INPUT "Въведете значение ",A SELECT CASE A CASE 1,5 PRINT "А = 1 или А= 5" CASE IS >5 PRINT "А е по-голямо от 5" CASE -8 TO 2.5 PRINT "А е не по-малко от -8, но не по-голямо от 2.5" CASE else PRINT "Нито едно не е изпълнено" END SELECT

Цикли

В езикаQbasic са предвидени два основни способа за организиране на цикли:

Повторение на блок от команди зададено количество пъти(цикъл с параметри);

Циклично повторение на блок от команди докато се изпълнява или не се изпълнява някакво условие.

Цикъл с параметри FOR I = IN TO IK [STEP H]

<оператори на тялото на цикъла>

NEXT I

I – име на променлива, която се явява параметър на цикъла;

IN - началната стойност на I

IK - крайна стойност на I

H – стъпка на изменение на I. По подразбиранеH=1.

при H> 0 IN<IK;

при H< 0 IN>IK.

Например: 1) FOR X=10 TO 100 STEP 2

Y=SQR (X)

PRINT X,Y

NEXT X

2) FOR X=10 TO 1 STEP – 1

Y=X - 2

PRINT X,Y

NEXTX

Ограничения при исползованe наоператора на цикъла FOR … NEXT:

1. Не изменяйте значението на параметъра на цикъла вътре в цикъла.

FOR I=1 TO 5

I=I+1 ' неправилно

NEXTI

2. Никога не предавайте управлението вътре в цикъла.

GOTO 10 ' неправилно

FOR I=1 TO 5

10 INPUT A

S=S+A

NEXTI

Преждевременен изход от цикъла

За цикълаFORе предвидена възможност за безусловен изход от цикъла ( преди завършването му). Управлението се предава на

оператора след NEXT.

Формат:

EXIT FOR

Например:

FOR I=1 TO 10

INPUT "Въведете значение";F

IF F=100 THEN EXIT FOR

S=S+F

NEXT I

PRINT "значение "; S

Ако трябва да сметнем:

Сума Количество Произведение

S=0 K=0 P=1

S=S+A K=K+1 P=P*A

Пример : Да сметнем броя на положителните и произведението на отрицателните числа от N въведеничисла:

INPUT “въведи брой ”;N

К=0

P=1

FOR I=1 TO N

INPUT "въведи значението на променливата";A

IF A>0 THEN K=K+1

IF A<0 THEN P=P*A

NEXTI

PRINT"броя на положителните числа =";K

PRINT"произведението на отрицателните числа е =";P

Задача за богатия дядо

Дядо ми дава на всеки рожден ден толкова долара,колкото години навършвами ми ги спестяват. Колко

долара ще имам спестени на N-тиями рожден ден?

cls

К=0 „ спестени пари в началото

Input“на колко години си“;N

For X=1 to N

К= К + X

Nextx

Print “за “;N;”години натрупахте “; К ;” долара”

Задача за амебата

Едноклетъчна амеба на всеки 3 часа се дели на 2 клетки. Определете колко клетки ще има амебата след

Nдена (по 24 часа на ден)

cls

Input“въведете броя дни”; N

S=1

у=N*24

For x=3 to у Step 3

S=S*2

Nextx

print“след ”;N;“броя дни амебата ще има ”;S;“клетки”

Цикъл с предусловие

DO WHILE условие

Тяло на цикъла LOOP

- Изпълнява се докато се изпълнява условието

DO UNTIL условие Тяло на цикла LOOP

- Изпълнява се докато не се изпълнява условието

Цикъл с постусловие

DO

Тяло на цикъла LOOP WHILE условие DO

Тяло на цикъла LOOP UNTIL условие

REM печата числата по-малки от 10 a=0 chislo=10 DO WHILE a<chislo PRINT a a=a+1

LOOP

REMброи четните числа, които делят на 7 CLS a = 1 c=0 DO WHILE a <> 0

INPUT "vavedete chislo ili 0 za izhod:"; a IF a MOD 2 = 0 AND a MOD 7 = 0 AND a <> 0 THEN c = c + 1 END IF

LOOP PRINT "broj->"; c

REM сума от цифрите на числото DIM a, chislo, s AS INTEGER INPUT "въведете число: ", chislo a=chislo DO s=s+a MOD 10

a=a/10 a=INT(a) LOOP UNTIL a=0 PRINT "сума от цифрите на ",chislo ," =: ", s

Цикъл WHILE … WEND Формат:

WHILEлогически израз

Блок от команди

WEND

Пример:

WHILEPAS$<>"Петя"

INPUT"Введите пароль";PAS$

WEND

PRINT"здравей"; PAS$ Rem exit do

Count% = 0

Total% = 0 DO READ Name$, amount% IF Name$ = "XXX" THEN EXIT DO PRINT Name$, amount%

Count% = Count% + 1 Total% = Total% + amount% LOOP PRINT "THERE WERE "; Count%; "PEOPLE IN THE FILE." PRINT "THE SUM OF THEIR DONATIONS WAS: $"; Total%

PRINT "the average is: "; Total% / Count% DATA JIM,500,SUE,100,RICK,50,ADAM,450

DATA ENRICA,600,KIM,400,TOM,500,PAM,200 DATA MARIO,400,CARLA,900,XXX,0

Случайни числа в QBASIC

Rnd –оператор , който връща случайно дробно число между 0 и 1; int-връща цялата част на числото RANDOMIZE TIMER - генерира различна поредица от числа при повторно пускане на програмата

CLS FOR x = 1 TO 5 PRINT RND NEXT

.7055475

.0533424

.5795186

.2895625

.901948

CLS FOR x = 1 TO 5 PRINT RND * 10 NEXT

7.055475 0.533424 5.795186 2.895625 9.01948

CLS FOR x = 1 TO 5 PRINT INT(RND * 10) NEXT

7 0 5 2 9

CLS RANDOMIZE TIMER num = INT(RND * 5) + 1

FOR count = 1 TO 5

INPUT "Pick a number between 1 and 5: ", answer IF answer = num THEN PRINT "You win after"; count; "guesses!": END NEXT PRINT "You lose"

RANDOMIZE TIMER

FOR i = 1 TO 100 nstr = INT(25 * RND) + 1 npos = INT(80 * RND) + 1

cv = INT(RND * 15 + 1) COLOR cv LOCATE nstr, npos: PRINT "*"; NEXT i

МАСИВИ

Масивът е поредица от еднотипни елементи с общо име и различен индекс. Обявяване на масив:

DIM име_масив (максимален_индекс)

DIM X(50) ' обявява едномерен масив с 50 числа

DIM V$(12) 'обявява едномерен масив с 12 символни елемента

Запълване на масив

1) статистическо – с операторите DATA, READ и оператора за присвояване;

2)динамично с оператора INPUT и функцията RND

1. Пример на

статистисческо запълване

на масива.

DATA “sliva”,”ananas”,”limon”

DATA “portokal”,”kivi”,”grozde”

DIM A$(6)

FOR I=1 TO 6

READ A$(I)

PRINT A$(i)

NEXT I

2. Пример с оператори с

присвояване

DIM A (5) A(0)=4: A(I)=-2.5

А(3)=10: A(4)=0 A(5)=6: A(2)=3

3. Пример на запълване на

масива с функцията RND

DIM V(12)

FOR I=1 TO 12

V(I)=INT(RND(1)*10)

PRINT V(I);

NEXT J

4. Пример на

динамично запълване

INPUT "N= ";N

DIM A(N)

FOR I=1 TO N

INPUT A(I)

NEXT I

ОСНОВНИ АЛГОРИТМИ С МАСИВИ

1. Сума DIM A (9) S=0 FOR I=1 TO 9

А(I)=INT(RND(1)*10)

FOR N=0 TO 9

S=S+A(N)

NEXT N

PRINT сумата=;S

2. Намиране на минималния елемент по неговия индекс DIM L (5)

L(0)=4: L(I)=-2.5 : L(2)=-33:L(3)=10: L(4)=-6: L(5)=6:

MIN=L(0): K=0

FOR i=1 TO 9

IF MIN>L(i THEN K=i

NEXT I

PRINT “мин=”; L(k)

3. This program records the names of your kids. CLS

INPUT "How many kids do you have "; N

DIM kid$(1 TO N)

FOR I = 1 TO N

PRINT "What is the name of kid #"; I;

INPUT kid$(I)

NEXT I

PRINT

PRINT "These are the names you entered : "

PRINT

FOR I = 1 TO N

PRINT kid$(I)

NEXT I

4. This program averages a list of numbers input by the user. CLS

INPUT "How many numbers are in your list "; N

DIM num(1 TO N)

FOR I = 1 TO N

PRINT "What is the value of number #"; I;

INPUT num(I)

NEXT I

PRINT

sum = 0

FOR I = 1 TO N

sum = sum + num(I)

NEXT I

PRINT

PRINT "The average of your numbers is"; sum / N

PRINT : PRINT "Bye"

DIM A(8)

DATA 15,3,-2,0,4,1,8,9

FOR I = 1 TO 8

READ A(I)

PRINT A(I)

NEXT I

FOR I = 1 TO 8

S = S + A(I)

NEXT I

S = S / 8

PRINT S

Функции за работа с текст

функция описание пример LEN(„текст“) определя

дължината на текста

INPUT A$ | Привет!

PRINT LEN(A$) | 7

LEFT$(<име на текстова променлива >, <брой символи>)

Изрязва броя символи отляво

A$ = «Информационни технологии» B$ = LEFT$(A$, 6) PRINT B$ | Информ

RIGHT$(<име на текстова променлива >, <брой символи>)

Изрязва броя символи отдясно

A$ = «Информационни технологии» C$ = RIGHT$(A$, 10) PRINT C$ | технологии

MID$(< име на текстова променлива >, <позиция на първия избран символ>, <количество избрани символи>).

Изрязва от текстовата променлива зададеното количество символи, като започва от посочената позиция

A$ = «Информационни технологии»

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

PRINT D$ | форма

* MID$(A$, 3, 2)=“**“

|Ин**рмационнитехнологии

STR$(<число>). Преобразува числото в текст

F = 1365 |

F$ = STR$(F)

VAL(<текст>). Пробразува текст в число

PRINT 2*VAL(“2”) | 4

PRINT VAL(“ПРИВЕТ!”) |0

Пример: Сумирацифритена числото

CLS

INPUT "Vavedetetricifrenochislo Х:"; Х%

A$ = STR$(X%)

A1$ = MID$(A$, 1, 1)

A2$ = MID$(A$, 2, 1)

A3$ = RIGHT$(A$, 1)

Y% = VAL(A1$) + VAL(A2$) + VAL(A3$)

PRINT "S = "; Y%

END