-----------------------------------------------------------------------------------------------
REM Определить
порядковый
номер даты с
начала года
DIM A(31)
1 INPUT
"введите число: "; N1: IF N1 > 31 THEN 1
2 INPUT "введите номер месяца: "; N2: IF N2 > 12 THEN 2
INPUT "введите год: "; N3
DATA 31,28,31,30,31,30,31,31,30,31,30,31
FOR I = 1 TO
N2
READ A(I)
IF N3
= INT(N3 / 4) * 4 THEN A(2) = 29
NEXT
FOR I = 1 TO N2 -
1
s = s + A(I)
NEXT
PRINT "порядковый номер ="; s + N1
-----------------------------------------------------------------------------------------------
REM
распечатать
двумерный
массив и
найти сумму
его
элементов
CLS
RANDOMIZE TIMER
DIM a(9, 6)
FOR x = 1 TO 9
FOR y = 1 TO 6
a(x, y) = INT(RND(1) * 10)
LOCATE x, y
* 3: PRINT a(x, y)
s = s +
a(x, y)
NEXT
NEXT
PRINT "сумма всех элементов таблицы равна"; s
END
-----------------------------------------------------------------------------------------------
REM
задача:
распечатать
все делители
данного
натурального
числа
CLS
INPUT "введите натуральное число"; m
i = 1
1 IF i
<= m THEN 3 ELSE END
3 IF
m / i = m \ i THEN PRINT i; ELSE 5
5 i = i + 1
GOTO 1
-----------------------------------------------------------------------------------------------
REM Дана
таблица. Подсчитать
наиб.число
одинаковых
идущих в ней
подряд
элементов
INPUT "длина массива"; N
RANDOMIZE TIMER
DIM A(N)
FOR I = 1 TO N
A(I)
= INT(RND(1) * 10)
PRINT A(I);
NEXT
S = 1: K = 1
FOR I = 2 TO N
IF A(I)
<> A(I - 1) THEN 1 ELSE 2
1 IF K > S THEN S = K
K = 1
2 K = K + 1
NEXT
PRINT " S="; S - 1
-----------------------------------------------------------------------------------------------
REM
подсчитайте
количество
различных
чисел, встречающихся
в табл.
Повторяющиеся
числа
учитывать
один раз.
INPUT "длина массива"; n
RANDOMIZE TIMER
DIM a(n
* 2)
FOR i
= 1 TO n
a(i) = INT(RND(1) * 10)
PRINT a(i);
NEXT
FOR i
= 2 TO n
d$ =
"нет повторения"
j = 1
WHILE j <= i - 1 AND d$ = "нет повторения"
IF a(j)
= a(i) THEN d$ = "есть повторения" ELSE j = j + 1
WEND
IF d$ = "нет повторения" THEN s = s + 1
NEXT
PRINT "таких элементов"; s + 1
-----------------------------------------------------------------------------------------------
Задача о
магическом
квадрате
CLS
LOCATE 14, 1: INPUT "размеры таблицы"; n: LOCATE 14, 1: PRINT
" "
DIM a(n,
n)
FOR i
= 1 TO n
LOCATE 13, 1:
PRINT "ввод "; i; " - ой строки "
FOR j = 1 TO n
LOCATE 14, 1: INPUT a(i,
j): LOCATE 14, 1: PRINT
"
"
LOCATE i,
j * 3: PRINT a(i, j)
NEXT j
NEXT i
FOR i
= 1 TO n
FOR j = 1 TO n
s(i) = s(i)
+ a(i, j)
NEXT
IF s(i) <> s(1) THEN PRINT "это не магический квадрат" ELSE 11
GOTO 500
11 NEXT
PRINT
FOR j = 1 TO n
FOR i
= 1 TO n
q(j) = q(j) + a(i, j)
NEXT
IF q(j) <> s(1) THEN PRINT "это не магический квадрат" ELSE 22
GOTO 500
22 NEXT
PRINT
FOR i = 1 TO n
FOR j = 1 TO n
NEXT
IF i = j THEN r = r + a(i, j) ELSE 1
1 NEXT
FOR j = 1
TO n
FOR i
= 1 TO n
IF j = n +
1 - i THEN t = t + a(i, j) ELSE 21
21 NEXT
NEXT
IF r <> s(1) AND t <> s(1) THEN PRINT "это не магический квадрат" ELSE PRINT "магический"
500 END
-----------------------------------------------------------------------------------------------
REM
задача 1:
Найти все
положительные
четырехзначные
числа abcd(а<=3),
для которых
выполняются
следующие
условия: a,b,c,d
- разные
цифры; ac-cd=a+b+c+d(здесь
ab,cd -
двузначные
числа)
(Районная
олимпиада по ИиВТ,2002)
CLS
FOR a = 1 TO 3
FOR b = 0 TO 9
FOR c = 0 TO 9
FOR d = 0 TO 9
IF a
<> b AND a <> c AND a <> d AND b <> d AND b <> c
AND c <> d AND a * 10 + b - (c * 10 + d) = a + b + c + d THEN PRINT a, b,
c, d
NEXT
NEXT
NEXT
NEXT
END
-----------------------------------------------------------------------------------------------
REM* В
таблице N x
N,где N<13
клетки
заполнены
некоторым
образом цифрами
'
от 0 до
9.Написать
программу
поиска маршрута
из клетки
А(1,1) в клетку
'
А(N,N). Маршрут
должен
удовлетворять
следующим
требованиям:1)он
состоит
'
из
отрезков;2)длина
маршрута
минимально
возможна;3)сумма
чисел в клетках
' максимальна
CLS
LOCATE 14, 1: INPUT "размеры таблицы"; N: LOCATE 14, 1: PRINT
"
"
DIM a(N,
N)
FOR i
= 1 TO N
FOR j = 1 TO N
LOCATE 14,
1: a(i, j) =
INT(RND(1) * 10)
LOCATE i, j * 2: PRINT a(i, j)
NEXT j
NEXT i
PRINT
i =
1: j = 1: s = a(1, 1)
LOCATE 1, 3: PRINT "
"
16 IF
a(i + 1, j) > a(i, j +
1) THEN 17 ELSE 19
17 i = i + 1
GOTO 20
19 j = j + 1
20 s = s + a(i, j)
LOCATE i, j * 2 + 1: PRINT " "
FOR g = 1 TO 990000:
NEXT
'задержка
k = k + 1: IF k = N * 2
- 2 THEN PRINT "s="; s ELSE 27
END
27 IF
i = N THEN 19
IF j = N THEN 17 ELSE
16
-----------------------------------------------------------------------------------------------
REM Программа
нахождения
наименьшего
(наибольшего)
элемента
массива
CLS
INPUT "введите количество элементов массива"; n
DIM a(n)
RANDOMIZE TIMER
FOR i
= 1 TO n
a(i) = INT(RND(1) * 1000) / 10
PRINT a(i);
NEXT
min
= a(1)
FOR i
= 1 TO n
IF a(i) <= min THEN min = a(i) ELSE
1
nom = i
1 NEXT
PRINT "минимальный элемент этого массива"; min
PRINT "его номер"; nom
END
-----------------------------------------------------------------------------------------------
10 REM программа вычисления наибольшего общего делителя двух натуральных чисел
20 INPUT "введите два натуральных числа(через запятую)"; X, Y
30 a = X: b = Y
40 IF a = b THEN 70
50 IF a > b THEN a = a - b ELSE b
= b - a
60 GOTO 40
70 PRINT "НОД(";
X; ","; Y; ")="; a
80 END
-----------------------------------------------------------------------------------------------
REM ЗАДАЧА:Проверить является ли данное слово "ПЕРЕВЕРТЫШЕМ"
INPUT "введите Ваше слово"; d$
FOR i = 1
TO LEN(d$)
k$
= MID$(d$, i, 1) + k$
NEXT
IF k$ = d$ THEN PRINT "данное слово является ПЕРЕВЕРТЫШЕМ" ELSE PRINT "данное слово HE является ПЕРЕВЕРТЫШЕМ"
END
-----------------------------------------------------------------------------------------------
CLS
REM Программа определяет простое или составное натуральное число
INPUT "введите нат.число"; n
IF n = 1 THEN PRINT "разделение натуральных чисел на простые и составные начинается с числа 2" ELSE 1
END
1 f = 0
FOR i = 2 TO n / 2
IF n MOD i = 0 THEN f = 1
NEXT
IF f = 0
THEN PRINT "простое" ELSE PRINT "не простое т.е.составное"
END
-----------------------------------------------------------------------------------------------
REM задача: распечатать все простые числа от 5000 до 6000, чтобы они все размещались на экране
CLS
FOR n = 5000 TO 6000
s = 0
FOR i = 1
TO n
IF n / i =
n \ i THEN s = s + 1
NEXT
IF s = 2 THEN PRINT n;
NEXT
REM ******** ДОПОЛНИТЕЛЬНЫЕ ЗАДАНИЯ: **********
REM 1.подсчитать их количество
REM 2.сколько чисел оканчивается на цифру 7
REM 3.образовать массив из всех таких чисел,чтобы сумма квадратов его цифр равнялась 500
-----------------------------------------------------------------------------------------------
REM программа
перевода
чисел из
одной системы
счисления в
другую
20 INPUT "введите число"; n$
30 INPUT "введите входную систему счисления-"; si
40 INPUT "введите выходную систему счисления-"; so
50 IF si =
10 THEN d = VAL(n$): GOTO 130
60 d
= 0: k$ = ""
70 FOR
i = 1 TO LEN(n$)
80 q
= ASC(MID$(n$, i, 1))
90 IF
q > 64 THEN r = q - 55: GOTO 110
100 r = VAL(MID$(n$,
i, 1))
110 d
= d + r * si ^ (LEN(n$) - 1)
120 NEXT
125 IF
so = 10 THEN k$ = STR$(d): GOTO 180
130 IF d = 0 THEN PRINT "ошибка": GOTO 180
140 r = d - INT(d
/ so) * so + .5
150 IF INT(r) > 9 THEN q = INT(r)
+ 55: k$ = CHR$(q) + k$: GOTO 170
160 k$ = STR$(INT(r)) + k$
170 IF d >= so THEN d = INT(d / so): GOTO 140
180 PRINT "результат : "; k$
190 END
-----------------------------------------------------------------------------------------------
REM программа вычисления совершенных чисел: натуральное число называют совершенным, если оно равно сумме своих делителей, не считая его самого, например,число 6 совершенное,т.к 6=1+2=3
CLS
1 FOR n = 1 TO 1000
2 M = n
3 i
= 1
4 IF i < M THEN 5 ELSE 9
5 IF
M / i = M \ i THEN
ELSE 7
6 s =
s + i
7 i = i + 1
8 GOTO 4
9 IF s = n THEN PRINT n; "данное число совершенное"
10 s = 0
11 NEXT
12 END
-----------------------------------------------------------------------------------------------
REM программа: сумма цифр данного числа
CLS
INPUT "введите число"; z
h$ = STR$(z) '*************переведит введенное число в литерную величину***
n = LEN(h$) 'определяет длину лит.величины,т.е.кол-во цифр
s = 0
FOR i = 2 TO n
b$ = MID$(h$, i, 1) 'вырезает из литерной величины i-ый символ
r = VAL(b$) 'переводит из литерной величины в целый тип
PRINT r
s = s + r
NEXT
PRINT "сумма цифр"; s
-----------------------------------------------------------------------------------------------
REM упорядочение элементов массива по возрастанию(убыванию)
INPUT "введите длину одномерного массива(таблицы)"; N
DIM A(N)
CLS :
RANDOMIZE TIMER
PRINT "данный массив:"
FOR I = 1 TO N
A(I)
= INT(RND(1) * 100)
PRINT A(I);
NEXT
FOR J = 1 TO N
MIN = A(J)
FOR I = J
TO N
IF A(I) < MIN THEN MIN = A(I) ELSE 1
R = A(I)
A(I) = A(J)
A(J) = R
1 NEXT
NEXT
PRINT
PRINT "
упорядоченный по возрастанию"
FOR I = 1 TO N
PRINT A(I);
NEXT
-----------------------------------------------------------------------------------------------
REM составить программу вычисления факториала: n!=1*2*3*...*(n-1)*n
INPUT " введите натуральное число"; n
k = 1
FOR i = 1
TO n
k = k * i
NEXT
PRINT "факториал равен "; k
END
-----------------------------------------------------------------------------------------------
REM Данная программа выделяет цифры натурального числа
CLS
INPUT "введите исследуемое число:", z
m = z
DO WHILE m > 0
C = m
MOD 10
m = m
\ 10
T = T
+ 1
C(T) = C
LOOP
m = C
PRINT
FOR I = T TO 1 STEP -1
K(I)
= C(I)
PRINT K(I);
NEXT
-----------------------------------------------------------------------------------------------
Задача Определить, является ли данное число ДРУЖЕСТВЕННЫМ
INPUT n
INPUT m
i = 2
3 IF i
<= n THEN 4 ELSE 7
4 IF n / i
= n \ i THEN s1 = s1 + n / i
ELSE 5
PRINT "делители первого числа"; n \ i
5 i = i + 1
GOTO 3
PRINT
"
"
7 i = 2
8 IF i
<= m THEN 9 ELSE 12
9 IF m
/ i = m \ i THEN s2 = s2 +
m / i ELSE 10
PRINT "делители второо числа"; m \ i
10 i = i + 1
GOTO 8
12 IF s1 = m AND s2 = n
THEN PRINT дружественные" ELSE PRINT "недружественные"
PRINT s1, s2
-----------------------------------------------------------------------------------------------
REM Число Армстронга
FOR z = 1 TO 10000
h$ = STR$(z)
n = LEN(h$)
s = 0
FOR i = 2
TO n
b$ = MID$(h$, i,
1)
r = VAL(b$)
s = s + r ^ 4
IF s = z THEN PRINT "============";
z
IF s = z THEN t = t + 1
NEXT i
NEXT z
PRINT " таких чисел в указанном промежутке"; t
-----------------------------------------------------------------------------------------------
REM cумма чисел Фибоначчи
DIM x(20)
x(1) = 1
x(2) = 1
FOR n = 3 TO 20
x(n) = x(n - 1) + x(n - 2)
NEXT
FOR n = 1 TO 10
s = s + x(n)
NEXT n
PRINT " Сумма равна:"; s
END
-----------------------------------------------------------------------------------------------
REM составить программу вычисления факториала: n!=1*2*3*...*(n-1)*n
INPUT " введите натуральное число"; n
k = 1
FOR i = 1
TO n
k = k * i
NEXT
PRINT "факториал равен "; k
END
-----------------------------------------------------------------------------------------------
' программа
вычисления
СОВЕРШЕННЫХ
чисел:
натуральное
число
называют
'
совершенным,
если оно
равно сумме
своих делителей,
не считая его
самого,
'
например,
число 6
совершенное,
т.к числа
1,2,3 делители
числа 6 и 6=1+2+3
CLS
1 FOR n = 1 TO 1000
2 M = n
3 i
= 1
4 IF i < M THEN 5 ELSE 9
5 IF
M / i = M \ i THEN
ELSE 7
6 s =
s + i
7 i = i + 1
8 GOTO 4
9 IF s = n THEN PRINT n; "данное число совершенное"
10 s = 0
11 NEXT
12 END
-----------------------------------------------------------------------------------------------
CLS приближенное решение уравнения
INPUT "задать х1"; x1
INPUT "задать х2"; x2
INPUT "укажите точность"; pogr
PRINT
1 x0 = (x1 + x2) / 2
f1 = (LOG(x1)) ^ 2 / (x1) - 3
* x1
f0 = (LOG(x0)) ^ 2 / (x0) - 3
* x0
PRINT x0
IF x2 - x1 < pogr THEN PRINT "корень уравнения с указанной точностью равен "; x0 ELSE 2
END
2 IF f1 * f0 < 0 THEN x2 = x0
ELSE x1 = x0
GOTO 1
-----------------------------------------------------------------------------------------------
Задача
Дано целое
число k и
последовательность
цифр в
которой
выписаны все
подряд
трехзначные
числа. Какая
цифра стоит
на k-ом месте?
Input k
For i = 100 To 999
d = d + Str(i)
Next
Print d, Len(d)
For i = 1
To Len(d)
If Mid(d, i, 1) <> " " Then q = q + Mid(d, i, 1)
Next
Print q, Len(q)
Print Mid(q,
k, 1)
На каком месте в этой последовательности находится первая цифра 9
For i = 1
To Len(q)
If Mid(q, i, 1) = 9 And l < 1 Then g = i
Else GoTo 1
l = l + 1
1 Next
Print g
-----------------------------------------------------------------------------------------------
Задача
из ЕГЭ по
информатике
1 112 1121123 112112311211234 Какая
цифра на 113 ом
месте
Input k
Dim a(9)
f = ""
For i = 1
To 9
a(i) = i
Next
For i = 1
To 9
f = f + f + Str(a(i))
Print f, Len(f)
Next
For i
= 1 To Len(f)
If Mid(f, i, 1) <> " " Then ff = ff + Mid(f, i, 1)
Next
Print Mid(ff,
k, 1)
-----------------------------------------------------------------------------------------------
Программа
рисования
звезды
вписанной в
окружность
pi = 3.141592
k = 2.5
input x0, y0,r x0,y0 центр окружности, к радиус окружности
for i = 0 To 2 * pi Step
pi / k
line (x0 + r * cos(i), y0 + r * sin(i))-(x0 + r * cos(i + k), y0 + r * sin(i + k))
circle (x0, y0), r
next-----------------------------------------------------------------------------------------------
В
данном
натуральном
числе
переставить
цифры таким
образом,
чтобы
получилось
наибольшее
число,
записанное
теми же
цифрами
(например,
если N=10513, то
ОТВЕТ: 53110)
Input n
f$ = Str$(n)
d = Len(f$) 1
Dim
A(d)
For i = d To 1 Step -1
A(i) = Int(n / 10 ^ (i - 1))
n = n - A(i) * 10 ^ (i - 1)
Next
For i = 1 To d
For j
= i + 1 To d
If a(j) > a(i) Then t = a(j) Else GoTo 1
a(j)
= a(i)
a(i) = t
1
Next
Next
For i = 1 To d
Print a(i);
Next