вторник, 22 ноября 2011 г.

Работа с одномерными массивами.

Пример № 1: В массиве действительных чисел b1, b2, …,bn поменяйте местами максимальный и минимальный элементы.
Решение:

10 CLS
20 Input “Введите размерность массива”; N
30 Dim a(N)
40 For i=1 TO N
50 Input a(i)
60 Next i
70 min=a(1)
80 i1=1
90 max=a(1)
100 i2=1
110 For i=1 TO N
120 If a(i)<=min THEN min=a(i) : i1=i
130 If a(i)>=max THEN max=a(i) : i2=i
140 Next i
150 Print “max=”; max, “Инд=”; i2
160 Print “min=”; min, “Инд=”; i1
170 Swap a(i1), a(i2)
180 Print “a(min)=”; a(i1)
190 Print “a(max)=”; a(i2)
200 End

Пример № 2В массиве A(m) хранятся различные вещественные числа. Найдите сумму квадратов отрицательных элементов и сумму положительных. Подсчитайте количество положительных, отрицательных и нулевых элементов.
Решение:
10 CLS
20 INPUT "Vvedite m"; m
30 DIM A(m)
40 FOR i = 1 TO m
50 PRINT "Vvedite A("; i; ")="
60 INPUT A(i)
70 NEXT i
80 SP = 0: SO = 0
90 FOR i = 1 TO m
100 IF A(i) > 0 THEN
110    SP = SP + A(i)
120 ELSE
130    SO = SO + A(i)
140 END IF
150 NEXT i
160 PRINT "SСумма положительных элементов="; SP; "Сумма отрицательных элементов="; SO
170 END

Пример № 3: Дан массив С(N) натуральных чисел. Найдите сумму элементов, кратных данному числу k.
Решение:
10 CLS
20 Input “Введите размерность массива:”; N
30 Input “Введите число K:”; K
40 Dim C(N)
50 Sum=0
60 For i=1 to N
70 Input “Введите элемент массива A(i)”; A(i)
80 If A(i) MOD K=0 Then
90 Sum=Sum+A(i)
100 End IF
110 Next i
120 Print “Сумма элементов =”; Sum, “кратных числу”; K
130 End

Пример № 4: Дана последовательность чисел a1, a2,…,an. Укажите наименьшую длину числовой оси, содержащую все эти числа.


Решение:
10 cls
20 Input “n=”; n
30 Dim a(n)
40 For i=0 to n
50 Print “a(“;i;”)=”; “”
60 Input a(i)
70 If i=0 then min=a(i)
80 max=a(i)
90 If a(i)<min then min=a(i)
100 If a(i)>max then max=a(i)
110 Next i
120 Print “Наименьшая длина числовой оси:” ma0x-min
130 End

Пример № 5: Дано четное число n, действительные числа а1, а2, а3,…, аn. Найдите сумму элементов, расположенных правее последнего отрицательного элемента.
Решение:
10 CLS
20 INPUT n
30 lasti = 0
40 FOR i = 1 TO n
50  INPUT a(i)
60  IF a(i) < 0 THEN lasti = i
70 NEXT i
80 IF lasti > 0 AND lasti < n THEN
90  FOR i = lasti + 1 TO n
100   a(i) = 0
110  NEXT i
120 END IF
130 FOR i = 1 TO n
140  PRINT a(i)
150 NEXT i
160 END

Пример № 5:  Селекционер вывел новый сорт зерновой культуры и сеял с опытной делянки k  кг семян. Посеяв 1 кг семян, можно за сезон собрать p кг семян. Через сколько лет селекционер сможет засеять новой культурой поле площадью S га, если норма высева n кг/га?
Решение:

10 CLS
20 INPUT "N="; n
30 INPUT "S="; S
40 INPUT "k="; k
50 INPUT "p="; p
60 God = LOG(S * n / k) / LOG(p)
70 PRINT "Vremaj="; God
80 END

Программирование алгоритмов циклической структуры


Пример № 1: Для заданных значений n и x вычислите: S=sin x+ sin x sin x+…+ sin x sin xsin x.
Решение:
10 CLS
20 INPUT N
30 INPUT x
40 S = 0
50 FOR i = 1 TO N
60 x = SIN(x)
70  S = S + x
80 NEXT i
90 PRINT S
100 END

Пример № 2: На промежутке [1;1,9] с шагом 0,1 вычислите значения функции и количество отрицательных значений функции.
Решение:
10 CLS
20 COUNT = 0
30 FOR i = 1 TO 19 STEP .1
40  PRINT "x="; i; " y= "; LOG(2 * i)
50  IF LOG(2 * i) < 0 THEN COUNT = COUNT + 1
60 NEXT i
70 PRINT "Количество отрицательных значений"; COUNT
80 END

Пример № 3: Вычислить значение суммы S, с точность ε = 0,001 
10 CLS
20 S=0
30 E=0.001
40 n=1
50 L=n
60 While L>E
70 n=n+1
80 L=1/n^2
90 S=S+L
100 WEND
110 Print “S=”; S

Пример № 4: Вычислить сумму положительных и сумму отрицательных значений функции z=cos(kx+a)*sin(kx-a), где k=1,2,3,…m; x и a – заданные числа.
Решение:
10 CLS
20 INPUT "m="; m
30 INPUT "x"; x
40 INPUT "a="; a
50 k = 1: S = 0: Sot = 0
60 FOR i = 1 TO m
70 k = k + i
80 z = COS(k * x + a) * SIN(k * x - a)
90 IF z > 0 THEN S = S + z ELSE Sot = Sot + z
100 NEXT i
110 PRINT "S="; S; "Sot="; Sot
120 END    

Пример № 5: Дано натуральное число n, действительное число х. Вычислить: 
10 CLS
20 INPUT "n="; n
30 INPUT "x="; x
40 z = 1: P = 1
50 FOR k = 1 TO n
60 z = z * k
70 P = P * (1 + ((SIN(k * x)) / z))
80 NEXT k
90 PRINT "Произведение ="; P;
100 END





Программирование алгоритмов разветвляющейся структуры

Пример №1: Найдите корни биквадратного уравнения ax2+bх2+c=0. Если корней нет, то должно быть выведено текстовое сообщение об этом, иначе должны быть выведены два или четыре корня.
Решение:
10 CLS
20 INPUT a, b, c
30 D = b ^ 2 - 4 * a * c
40 IF D < 0 THEN
50  PRINT "Корней нет"
60 ELSE
70  IF D = 0 THEN
80 x1= SQR(-b / (2 * a))
90   PRINT "x1= -",x1
100 x2= SQR(-b / (2 * a))
120  PRINT "x2="; x2
130 ELSE
140 t1 = (-b - SQR(D1)) / (2 * a)
150 t2 = (SQR(D1) - b) / (2 * a)
160  IF t1 > 0 THEN
170  Z= SQR(t1)
180   PRINT "+-"; Z
190   END IF
200   IF t2 > 0 THEN
210   K= SQR(t2)
200    PRINT "+-", K
210   END IF
220   IF t1 = 0 THEN PRINT "0"
230   IF t2 = 0 THEN PRINT "0"
240   IF t1 < 0 AND t2 < 0 THEN PRINT "Корней нет"
250  END IF
230 END IF
240 END

Пример № 2: Даны три числа a,b,c. Отрицательные числа заменить их модулем, положительные оставить без изменения.
Решение:
10 cls
20 Input “a,b,c”; a,b,c
30 If a<0 then a=ABS(a)
40 If b<0 then b=ABS(b)
50 It c<0 then c=ABS(c)
60 Print “a=”; a; “b=”;b;  “c=”;c
70 End

Пример № 3: Даны a и b, (ab). Меньшее из этих чисел замените их полусуммой, а большее  - их удвоенным произведением.
Решение:
10 CLS
20 Input “a=”; a
30 Input “b=”; b
40 If  a <> b then goto 50 else goto 20
50 if a<b then goto 60 else 80
60 a1=(a+b)/2
70 b1=(a*b)^2
80 if  b<a then
90 b1=(a+b)/2
100 a1=(a*b)^2
110 End If
120 a=a1
130 b=b1
140 Print “a=”; a, “b=”; b
150 End

Пример № 4: Даны три числа a,b,c. Удвоить каждое из данных чисел, если abc, и заменить числа их модулями в противном случае.
Решение:
10 CLS
20 INPUT "a="; a
30 INPUT "b="; b
40 INPUT "c="; c
50 IF a >= b AND b >= c THEN
60     a = a * 2
70     b = b * 2
80     c = c * 2
90 ELSE
100     a = ABS(a)
110     b = ABS(b)
120     c = ABS(c)
130 END IF
140 PRINT "a="; a; "b="; b; "c="; c
150 END

Пример № 5: Дано x. Вычислить y, если:


10 CLS
20 Input “x=”; x
30 If x < = -2 and x > = 2 then y = x ^ 2 else y = x ^ 2 + 4 * x + 5
40 Print “y=”; y
50 End


Пример № 6: Даны числа x и y. Выясните, принадлежит ли точка M(x,y) “грибу”
Решение:

10 CLS
20 INPUT "x="; X
30 INPUT "y="; Y
40 IF Y < 0 THEN
50  IF ABS(X) <= 1 AND Y >= -2 THEN PRINT "Принадлежит"
60  ELSE PRINT "Не принадлежит"
70 ELSE
80 Z= X ^2 + Y^2
90  IF Z<= 4 THEN PRINT "Принадлежит"
100 ELSE PRINT "Не принадлежит"
110 END IF
120 END    


понедельник, 21 ноября 2011 г.

Основные операторы языка BASIC


Операторы
Примеры записи
Пояснения
LET
LET A=2
Переменной А присваивается значение 2
DIM
DIM A(7)
Задание одномерного массива с максимальным номером 7
DIM A(3,4)
Задание матрицы размерности 3*4
DATA
DATA 5,7,9
Ввод чисел 5,7,9
READ
READ A,B,C
 Присвоение переменным A,B,C численных значений, заданных оператором DATA
RESTORE
RECTORE
Поворот стека данных
INPUT
INPUT A
Ввод значения A с клавиатуры
INPUT ‘n=’ n
Ввод значения n после печати появления n=
PRINT
PRINT C
Вывод на экран значения C
PRINT ‘X=’ X
Вывод на экран значения после комментария
PRINT USING
PRINT USING ‘####.##’; A(I)
Форматный вывод на экран
GOTO
GOTO n
Безусловный переход к строке с номером
If Условие Then
Оператор 1
Else
Оператор 2
End If
IF X<=10 THEN Y=X^3 ELSE Y=1/(X^2+1)
Вычислить Y=X3, если X≤10, иначе Y=1/(X2+1)
For Счетчик = Начальное Значение To Конечное значение
Действия
Next Счетчик
FOR X-4 TO 4 STEP 0.2
……..NEXT X
Организация цикла с параметром X, меняющимся от -4 до 4 с шагом 0,2
Select Case Переменная или выражение
Case Значение 1
Действие
Case Значение 1
Действие
...
Case Else Действие в случае несовпадения End Select 
Select Case sDayOfWeek
Case "Понедельник"
MsgBox "Салат из шпината"
Case "Вторник"
MsgBox "Салат из морской капусты"
Case Else
MsgBox "На этот день у нас ничего не предусмотрено"
End Select
Оператор Select Case идеально подходят для проверки одного и того же значения, которое нужно много раз сравнить с разными выражениями. 
WHILE <условие>
<операторы>
WEND
WHILE 1/X>E
S=S+1/X: X=X+H
WEND
Организация итерационного цикла  (с предусловием)
GOSUB
GOSUB N
Обращение к подпрограмме, начинающейся со строки n
RETURN
RETURN
Возврат из программы
REM
REM ‘’
Печать комментария при выводе листинга программы
STOP
STOP
Остановка вычислений в любом месте программы
SCREEN  N
SCREEN 7
Переход в графический режим
END
END
Конец программы
DEF FN(Y)
DEF FN Y(X)=SIN(X)/X
Задание функций

Программирование алгоритмов линейной структуры

Стандартные алгебраические функции

Функция
Описание
Пример
Результат
ABS
Возвращает абсолютную величину (модуль) аргумента
ABS(-2.56)
2,56
SQR
Возвращает квадратный корень из аргумента
SQR (9)
3
SIN
Возвращает значение синуса аргумента (аргумент ука­зывается в радианах)
SIN(3)
0,14112
COS
. Возвращает значение косинуса аргумента (аргумент указывается в радианах)
COS(3)
0,98992599
TAN
Возвращает значение тангенса аргумента (аргумент указывается в радианах)
TAN(3)
-0,1425465
EXP
Находит значение показательной функции ех;, где х — аргумент, а е — основание '.' натурального логарифма, равное 2,718...
EXP(l)
2,718282
LOG
Возвращает логарифм по основанию е
LOGO)
1,09861229
INT
Возвращает целую часть аргумента (от англ. INTeger — целый)
INT(30,l)
30
SGN
"Возвращает 1, если аргумент больше нуля; 0, если аргумент равен нулю;-1,если аргумент меньше нуля (от англ. SiGN — знак)
SGN (3)
SGN(O) 
SGN(-3)  
1
0
-1





Пример № 1: Задана длина пути S в милях (1 миля=1,603 км) и время t в часах. Определите скорость V в км/час
Решение

10 CLS
20 Input “Введите длину пути в милях S”; S
30 Input “Введите время t”; t
40 S=S*1,603
50 V= S/t
60 Printer “Скорость V в км/час =”; V
70 End

Пример № 2: Вычислить
при а=0,27, b=0,38, x=0,73

Решение:
10 CLS
20 a = 0.27
30 b = 0.38
40 x = 0.73
50 y = 1 / (a ^ 1 / 3 - b * (ABS(x - a * b) ^ 1 / 2)) * (x - ABS(b / a) *ATN(-ABS(b / a * x - EXP(x) * tg(x))))
60 PRINT "y="; y
70 END

Пример № 3: Даны два положительных числа. Вычислить среднее арифметическое и среднее геометрическое чисел.

Решение:
10 CLS
20 Input “Введите x1”; x1
30 Input “Введите x2”; x2
40 If x1>0 and x2>0 then goto 50
50 a=(x1*x2)^1/2
60 b=(x1+x2)/2
70 Print “Среднее арифметическое = “; a
80 Print “Среднее геометрическое = “; b
90 End


Пример № 4: Даны два натуральных числа m и n. Найдите остаток от деления числа m на число n.

Решение:
10 cls
20 Input “m=”; m
30 Input “n=”; n
40 If n<>0 then Ost=m mod n
40 Else Input “Деление невозможно”
50 Print “Остаток =”; Ost
60 End

Пример № 5: Селекционер вывел новый сорт зерновой культуры и сеял с опытной делянки k  кг семян. Посеяв 1 кг семян, можно за сезон собрать p кг семян. Через сколько лет селекционер сможет засеять новой культурой поле площадью S га, если норма высева n кг/га?

Решение:
10 CLS
20 INPUT "N="; n
30 INPUT "S="; S
40 INPUT "k="; k
50 INPUT "p="; p
60 God = LOG(S * n / k) / LOG(p)
70 PRINT "Vremaj="; God
80 END