Basic - вводный курс

         

Оператор присваивания

Задача 23

Нет. Нет знака равенства.

Задача 28

Да.

Задача 29

Нет. Переменные связаны двумя знаками равенства.

Задача 30

Нет. Слева от знака равенства стоит арифметическое выражение.

Задача 35

R=-R

Задача 36

Х=6, Y=6

Задача 37

Необходимо ввести вспомогательную переменную д.

А=Х
X=Y
Y=A

Задача 38

W = K/100 + (К MOD 100) /10 + (К MOD 100) MOD 10

Задача 39

S=3*1СГ 5*365*24*60*60


Выводим результаты

Задача 45

PRINT ((3^(1/4)+2)Л(1/3))^.5

Задача 46

PRINT 6^ (1/4)/((5-8~.5)л(1/3))

Задача 48

PRINT (( (3^.5+3)".5+3)^.5+3)^.5

Задача 51

Решение для последнего варианта:

CLS: PRINT "Результат равен"; 2*3*4*5*6

Задача 52

CLS: PRINT "Печать":PRINT: PRINT "через":PRINT:PRINT "строку"


Стандартные функции Бейсика

Задача 59

(Х"7+7^Х)"(1/7)

Задача 60

(A+SIN (В^2) Л3) / (COS (25) +ABS (I/TAN (60) ) )


Вывод данных в заданном месте экрана

Задача 67

CLS
LOCATE 10, 35: ?"СУММА КУБОВ"
LOCATE 12, 38: ? 2"3+3Л3+4"3+5"3

Задача 68

CLS
LOCATE 11, 35: ? "*******+*"
LOCATE 12, 35: ? "^СЕРЕДИНА*"
LOCATE 13, 35: ? "*********"


Вводим данные

Задача 70

CLS
INPUT "Введите, пожалуйста, Ваш год рождения"; YEAR1
INPUT "Введите, пожалуйста, год рождения Вашей мамы"; YEAR2
? "Ваша мама родила Вас, когда ей было"; YEAR2 - YEAR1; "лет"

Задача 72

CLS
INPUT "Введите три стороны треугольника"; А, В, С
Р=(А+В+С)/2
S=SQR(P*(P-A)*(Р-В)*(Р-С))
? "Площадь данного треугольника равна"; S


Операторы DATA и READ

Задача 74

' Исходные данные для прямоугольников
' В каждом DATA координаты диагоналей и цвет
DATA 30, 50, 130, 150, 1
DATA 160, 100, 280, 170, 4
DATA 300, 180, 450, 270, 14
1 Считывание данных и построение прямоугольников
SCREEN 9
READ XI, Yl, X2, Y2, С
LINE (Xl, Y1)-(X2, Y2), С, BF
READ XI, Yl, X2, Y2, С
LINE (XI, Y1)-(X2, Y2), C, BF
READ XI, Yl, X2, Y2, С
LINE (XI, Y1)-(X2, Y2), C, BF
END


Линейный алгоритм

Задача 76

1 Полет к ближайшей звезде CLS
' Длина светового года S = 3*10л5*365*24*60*60 9 Количество секунд полета NSEC = S/100
' Количество часов полета NHOUR = NSEC/3600 ' Количество суток полета NDAYS = NHOUR/24 ' Количество лет полета NYEARS = NDAYS/365 ' Вывод результата LOCATE 25, 12
?"С такой скоростью звездолет долетит до звезды за"; NYEARS;
"лет"
END

Задача 80

Информационный объем книги
CLS
1 Количество символов в книге
N = 450*60*80
' Перевод в Мегабайты
М = N/1024/1024
' Количество дискет
DISCS = INT(M/1.44)+1
' Вывод результата
?"Для записи книги понадобится"; DISCS; "дискет"
END

Задача 85

1 Деньги в банке
CLS
М=22000
N1=M+M*.01 ' Первый месяц
N2=N1+N1*.O1 ' Второй месяц
N3=N2+N2*.O1 ' Третий месяц
N4=N3+N3*.O1 ' Четвертый месяц
N5=N4+N4*.O1 ' Пятый месяц
N6=N5+N5*.O1 ' Шестой месяц
N7=N6+N6*.O1 ' Седьмой месяц
N8=N7+N7*.O1 ' Восьмой месяц
N9=N8+N8*.O1 ' Девятый месяц
N10=N9+N9*.01 ' Десятый месяц
Nll=N10+N10*.01 ' Одиннадцатый месяц
N12=N11+N11*.O1 ' Двенадцатый месяц ' Вывод результата
PRINT "Через год у меня на счету будет"; N12; "$" END
Конечно, красивее было бы решение с циклами. Когда их изучите, решите эту задачу снова.


Графика в Бейсике

Задача 90

' Российский флаг
CLS
SCREEN 9
' Белая полоса
LINE (100, 50)-(500, 130), 15, BF
' Синяя полоса
LINE (100, 130)-(500, 210), 1, BF
' Красная полоса
LINE (100, 210)-(500, 290), 4, BF
END

Задача 97

' Летающая тарелка
SCREEN 9
' Основа тарелки
CIRCLE (320, 175), 200, 2, , , .3
1 Рубка
CIRCLE (320, 70), 100, 2, , , .2
LINE (198, 125)-(220, 70), 2
LINE (420, 70)-(440, 125), 2
' Иллюминаторы
CIRCLE (150, 175), 10, 4
CIRCLE (490, 175), 10, 4
CIRCLE (200, 200), 10, 4
CIRCLE (440, 200), 10, 4
CIRCLE (320, 220), 10, 4
1 Ноги
LINE (320, 235)-(320, 280), 2
LINE (197, 223)-(165, 310), 2
LINE (443, 223)-(475, 310), 2
END

Задача 101

1 Гистерезис
SCREEN 9
' Горизонтальные составляющие
LINE (300, 126)-(500, 126), 13 #
LINE (100, 274)-(300, 274), 13
' Левая верхняя четверть дуги
CIRCLE (300, 200), 100, 13, 1.57, 3.14
' Левая нижняя четверть дуги
CIRCLE (100, 200), 100, 13, 4.71, 0
' Правая верхняя четверть дуги
CIRCLE (500, 200), 100, 13, 1.57, 3.14
1 Правая нижняя четверть дуги
CIRCLE (300, 200), 100, 13, 4.71, 0
1 Закраска
PAINT (300, 200), 14, 13
END

Задача 109

' Елочка
SCREEN 9
PRESET (320, 300)
DRAW "С2 L60 Е26 L25 Е26 L25 Е55 F55 L25 F26 L25 F26 L60"
' Закраска
PAINT (320, 250), 2
' Ствол
LINE (300, 300)-(340, 340), 6, BF
END


Разветвляющийся алгоритм

Задача 111

1 Бегущий узор 1 : PRINT "***" PRINT " *******
PRINT " *н PRINT " *"
PRINT " *"
PRINT " *******" PRINT "***" GOTO 1 END


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

Задача 117

1 Чет-нечет
CLS
INPUT "Введите целое число"; N
IF N MOD 2=0 THEN LOCATE 12, 35: PRINT "Это число четное"
ELSE LOCATE 12, 35: PRINT "Это число нечетное"
END

Задача 120

Переменная X примет следующие значения

х=1 Х=2 Х=0

Задача 123

S=6

Задача 135

Старояпонский календарь CLS
' Запрос года INPUT "Введите год"; YEAR ' Вычисление номера цвета и животного С =( (9910-YEAR) MOD 60)\12 К =(YEAR-3) MOD 12 ' Определение по номеру цвета года SELECT CASE С CASE 0
PRINT "ЗЕЛЕНЫЙ"; CASE I
PRINT "КРАСНЫЙ"; CASE 2
PRINT "ЖЕЛТЫЙ"; CASE 3
PRINT "БЕЛЫЙ"; CASE A
PRINT "ЧЕРНЫЙ"; END SELECT
' Определение по номеру животного года SELECT CASE К CASE 0
PRINT " КАБАН" CASE 1
PRINT " КРЫСА" CASE 2
PRINT " БЫК" CASE 3
PRINT " ТИГР" CASE 4
PRINT " КОТ" CASE 5
PRINT " ДРАКОН" CASE 6
PRINT " ЗМЕЯ" CASE 7
PRINT " ЛОШАДЬ"
CASE 8
PRINT " ОВЦА" CASE 9
PRINT " ОБЕЗЬЯНА" CASE 10
PRINT " ПЕТУХ" CASE 11
PRINT " СОБАКА" END SELECT PRINT "УДАЧИ ВАМ!" END


Циклический алгоритм

Задача 140

' Пешеходный переход "зебра" FOR Y = 10 ТО 320 STEP 30
LINE (200, У)-(400, Y+20), 15, BF NEXT Y

Задача 143

1 Воздушный шарик
SCREEN 9
' Изменение цвета фона
COLOR , 1
FOR I = 1 ТО 201
' Рисование окружности изменяющегося радиуса
CIRCLE (320, 175), I, 14
' Пауза
FOR T = 1 ТО 2000: NEXT T
' Стирание окружности изменяющегося радиуса
CIRCLE (320, 175), I, 1 NEXT I

Задача 146

F=l
Цикл вообще не будет ни разу исполняться, т. к. начальное значение параметра больше конечного, а шаг по умолчанию принят +1.


Задача 147

1 Да ты крут!
CLS
INPUT "Введи свой возраст"; N
FOR J = 1 ТО N
PRINT "ДА ТЫ КРУТ! "
FOR T = 1 ТО 5000: NEXT T
NEXT J
END

Задача 148

' Таблица умножения
1:INPUT "Введите целое число от 2 до 9"; N
IF N<2 OR N>9 THEN ?"От 2 ДО 9!": GOTO 1
? "Таблица умножения на "; N
FOR I = 2 ТО N
? I; "*"; N; "="; I*N NEXT I END

Задача 151

1 Электронный секундомер FOR T = 1 TO 3600
LOCATE 12, 38:? T NEXT T END

Задача 152

' Орнамент с полукольцами
SCREEN 9
' Задание радиусов окружностей
R1 = 20: R2 = 10
FOR X = 50 ТО 600 STEP 4*R1 ' Первое полукольцо CIRCLE (X, 175), Rl, 14, 0, 3.14 CIRCLE (X, 175), R2, 14, 0, 3.14 LINE (X - Rl, 175)-(X - R2, 175), 14 LINE (X + Rl, 175)-(X + R2, 175), 14
PAINT (X, 162), 2, 14
' Второе полукольцо
CIRCLE (X + 2 * Rl, 175), Rl, 14, 3.14, 0
CIRCLE (X + 2 * Rl, 175), R2, 14, 3.14, 0
LINE (X + Rl, 175)-(X + Rl + R2, 175), 14
LINE (X + 2 * Rl + R2, 175)-(X + 3 * Rl, 175), 14
PAINT (X + 2 * Rl, 188), 4, 14
NEXT X
END

Задача 156

Правильно, если переменные r, s и н ранее получили значения. Правильно. Правильно. Неправильно. Отсутствует ключевое слово то. Правильно. Неправильно. Цикл выполняться не будет, т. к. начальное значение параметра больше конечного, а шаг неотрицателен.
Неправильно, т. к. оператор wend не должен содержать параметр.

Задача 157

WAR WAR WAR
SUNDAY PEACE
Так как после окончания цикла параметр имеет значение большее конечного значения параметра, то проверяемое условие r=w ложно, следовательно выполняется следующий оператор печати слова "SUNDAY", а затем "PEACE".

Задача 169

Будут бесконечно печататься нули. Значение s не меняется, поэтому цикл будет длиться бесконечно.

Задача 173

X=INT(RND(1)*ll)+10

Задача 175

X =-INT(RND(l)*101)+65

Задача 179

1 Маленький взрыв RANDOMIZE TIMER SCREEN 9 FOR 1=1 TO 100
X=INT(RND(1)*200)+220
Y=INT(RND(1)*200)+75
C=INT(RND(1)*15)+1
LINE (X, Y)-(320, 175), С NEXT I END

Задача 188

Rem ось абсцисс Rem ось ординат
' Построение графика Y=SQR{X)
SCREEN 9
LINE (0, 175)-(640, 175), 15
LINE (320, 0)-(320, 350), 15
DEF FNY(X)=SQR(X)
FOR X = 320 TO 640
Y = 175-30*FNY*((X-320J/30)
PSET (X, Y), 15 NEXT X END

Пояснение: корень квадратный извлекается только из неотрицательных чисел, следовательно, аргумент функции (х-320)/30) не должен быть меньше нуля, что и достигается его начальным значением 320.

Задача 190

' Поверхность вращения функции у = 1/1+х"
SCREEN 9
LINE (0, 175) - (640, 175), 15 Rem ось абсцисс
LINE (320, 0) - (320, 350), 15 Rem ось ординат
DEF FNY(X) = 1/(1+хл2)
FOR X = 320 ТО 640 STEP 5
Y = 175 - 30*FNY((X - 320)/30)
CIRCLE (X, 175), 175 - Y, 15,,,3 NEXT X END

Задача 196

1 Лестница 1
SCREEN 9
FOR X = 0 TO 64 0 STEP 4 0
LINE(X, X*35/64)-(X + 40, (X + 40)*35/64),15,В NEXT X END

Так как экран представляет собой не квадрат, а прямоугольник, то, чтобы серия прямоугольников располагалась вдоль диагонали, приходится вводить коэффициент соотношения сторон экрана 350/640 или 35/64.

Задача 197

' Пирамида. Вид сверху
SCREEN 9
FOR X = 20 ТО 220 STEP 10
LINE (X, X)-(220-Х, 220-Х),15, В NEXT X END

Задача 200

1 Лоскутный ковер
SCREEN 9
RANDOMIZE TIMER
FOR X = 0 TO 640 STEP 10
FOR Y = О ТО 350 STEP 10
' Выбор случайного цвета для закраски кв. лоскута
С = INT(RNDd) *15) + 1
' Рис.ание закрашенного квадратика
LINE (X, Y)-(X + 10, Y + 10), С, BF
' Обводка квадратика белым контуром
LINE (X, Y)-(X + 10, Y + 10), 15, В NEXT Y NEXT X END

Задача 205

1 Хронометр CLS
1 Цикл для часов FOR HOURS = 0 to 23 ' Цикл для минут FOR MINUTES = 0 to 59 ' Цикл для секунд FOR SECONDS = 0 to 59 LOCATE 12, 35
? HOURS; ":"; MINUTES; ":"; SECONDS SLEEP 1 NEXT SECONDS NEXT MINUTES NEXT HOURS

Задача 208

' Вычисление числа Пи методом Монте-Карло
CLS : RANDOMIZE TIMER
LOCATE 3, 20
PRINT " Вычисление числа Пи методом Монте-Карло"
SCREEN 9
' Рис.ание квадрата со стороной 200
LINE (100, 100)-(300, 300), 14, В
' Рис.ание вписанной в квадрат окружности радиусом
100CIRCLE (200, 200), 100, 0, , , 1.01
' Задание общего количества песчинок N
' и обнуление счетчика попавших в круг KN=5000: K=0
FOR 1=1 ТО N
X=INT(RND(1)*200)+100
Y=INT(RND(1)*200)+100 ' Вычисление расстояния от выпавшей точки до центра
S =SQR((X-200)Л2+(У-200)"2) ' Проверка условия, попала ли точка в круг 1 и изображение ее красным или белым цветами IF S<=100 THEN K=K+1: PSET (X, Y) , 4 ELSE PSET (X, Y) , 15 ' Вывод на экран счетчиков песчинок LOCATE 5, 20: PRINT "Выпала песчинка №"; I
LOCATE 6, 20: PRINT "В круг уже попало"; К; "песчинок" NEXT I
1 Вычисление и вывод на экран значения числа Пи LOCATE 23, 15: PRINT "Число ПИ для"; N; "точек ="; 4*K/N END

Задача 212

1 Сумматор
CLS
' Запрос с клавиатуры количества суммируемых чисел
INPUT "Сколько чисел будем складывать"; N
' Обнуление переменной для накапливания суммы
S = 0
FOR 1=1 ТО 5
? "Введите"; I; "число"; INPUT A S=S+A NEXT I
' Вывод результата на экран ?"Сумма ваших"; N; "чисел равна"; S END

Задача 215

1 Нахождение суммы ряда
CLS
' Запрос значений переменных А и В
INPUT "Введите значения А и В"; А, В
' Обнуление переменной для накапливания суммы
S=0
1 = 0
WHILE (A+I)OB
S=S+1/(1+(A+I)Л2)
1 = 1 + 1 WEND
' Вывод результата на экран ?"Сумма ряда равна"; S END

Задача 216

1 Соприкасающиеся окружности
1 Занесение значений радиусов
DATA 50, 20, 10, 25, 40, 15, 60
SCREEN 9
' Задание начальной координаты X
Х=0
FOR 1=1 ТО 7
READ R
CIRCLE (X+R, 175), R, 14
X=X+2*R NEXT I END

Задача 220

1 Разноцветные окружности. Вариант 1
' Программа с циклом DO...LOOP WHILE
SCREEN 9
' Задание значения первого цвета
ч^— 1
DO
' Определение координаты X центра окружности
Х=10+40*С
CIRCLE (X, X), 30, 15
PAINT (X, X) , С, 15
С=С+1
LOOP WHILE C<7 END
' Разноцветные окружности. Вариант 2
' Программа с циклом DO...LOOP UNTIL
SCREEN 9
' Задание значения первого цвета
С=1
DO
' Определение координаты X центра окружности
Х=10+40*С
CIRCLE (X, X), 30, 15
PAINT (X, X), С, 15
С=С+1 LOOP UNTIL C=7


Символы и строки

Задача 222

1 Шифровка
CLS
' Запрос количества букв в шифруемом слове
INPUT "Сколько букв в слове"; N
1 Объявление массива для зашифрованного слова
DIM D$ (N)
FOR 1=1 TO N
' Побуквенный запрос исходного слова
PRINT "Введите"; I; "букву";
INPUT C$
' Побуквенная шифровка
D$ (I)=CHR$(ASC(C$)+1) NEXT I
' Вывод на экран зашифрованного слова FOR I = 1 ТО N
PRINT D$(I); NEXT I END
Обратите внимание, что при введении буквы z в результате получается не буква, а символ квадратной скобки. Как избежать этого? Подумайте сами.

Задача 229

' Палиндром
CLS
' Запрос слова с клавиатуры
INPUT "Введите ваше слово"; W$
' Определение длины введенного слова
N=LEN(W$): Wl$=""
' Цикл переворачивания исходного слова задом наперед
FOR I=N TO 1 STEP -I
W1$=W1$+MID$(W$, I, 1) NEXT I
' Вывод исходного и получившегося слов PRINT "Исходное слово - "; W$
PRINT "Исходное слово наоборот - "; Wl$
' Вывод на экран результата
IF W$=W1$ THEN PRINT "Да, это палиндром" ELSE PRINT "Нет, это
не палиндром"
END
Обратите внимание, что программа для фразы "А РОЗА УПАЛА НА ЛАПУ АЗОРА" не сработает. Разберитесь, почему и внесите необходимые поправки.

Задача 231

1 10 слов
DATA STUFF, CAR, SKI, QOIKE, SUN
DATA CARD, PRESS, POOH, GULI, COP
CLS
PRINT "Все слова исходного списка"
FOR 1=1 TO 10
READ W$
PRINT W$; " "; NEXT I
PRINT : PRINT RESTORE
PRINT "Слова списка, отличные от слова SUN" FOR 1=1 ТО 10
READ W$
IF W$O"SUN" THEN PRINT W$; " "; NEXT I
PRINT : PRINT RESTORE
' Определение слова, ближайшего к началу алфавита READ W$ ALFA$=W$ FOR 1=1 TO 9
READ W$
IF W$<ALFA$ THEN ALFA$=W$ NEXT I
PRINT "Слово в списке, ближайшее к началу алфавита - "; PRINT RESTORE
' Определение слова, составленного из последних букв ' всех слов списка

ALFA$
FOR 1=1 ТО 10
READ W$
R$=R$+RIGHT$(WS, 1) NEXT I
PRINT "Слово, составленное из последних букв всех слов списка - "; R$ PRINT RESTORE
PRINT "Все трехбуквенные слова из списка" FOR 1=1 ТО 10
READ W$
IF LEN(W$)=3 THEN PRINT W$; " "; ¦ NEXT I END

Задача 235

' Замена буквосочетаний DATA PHOTO, GRAPH, PHILOPHON, COPHE CLS
FOR 1=1 TO 4 READ W$ FOR J=l TO LEN(W$)
P$=MID$(W$, J, 1): H$=MID$(W$, J + 1, 1)
IF P$o"P" THEN PRINT P$; ELSE IF H$o"H" THEN PRINT H$; ELSE
PRINT "F"; : J=J+1
NEXT J
PRINT NEXT I END

Задача 236

'Столбиковая интерпретация массива
CLS : RANDOMIZE TIMER
INPUT "Сколько чисел будет в массиве"; N
DIM S(N)
' Формирование массива
FOR 1=1 ТО N
S(I)=INT(RND(l)*150)+50
NEXT I
' Графическая интерпретация массива
SCREEN 9
Х=100
FOR 1=1 ТО 10
' Столбик, интерпретирующий элемент массива LINE (X, 300)-(Х+10, 300-S(D), 2, BF ' Белая рамка, обрамляющая столбик LINE (X, 300)-{Х+10, 300-S(I)), 15, В Х=Х+10
NEXT I
' Вывод элементов массива на экран
FOR 1=1 ТО N PRINT S(I) ;
NEXT I
END

Задача 239

1 Вычисление среднего квадратичного элементов
' заданного массива .
DATA 31, 19, 52, 65, 6, 8, 13, 16, 97, 33
CLS
DIM S(10)
' Формирование массива и вывод его элементов на экран
FOR 1=1 ТО 10
READ S(I)
? S(I); NEXT I
' Вычисление среднего арифметического элементов массива Т=0 FOR 1=1 ТО N
T=T+S(I) NEXT I TR=T/N
1 Вычисление среднего квадратичного элементов массива Т=0 FOR 1=1 ТО N
T=T+(S(I)-TR)A2 NEXT I SRKV=S/N
? "Среднее арифметическое элементов массива = "; TR ? "Среднее квадратичное элементов массива = "; SRKV END

Задача 240

' Вывод на экран элементов массива по заданному критерию
CLS: RANDOMIZE TIMER
INPUT "Сколько чисел будет в массиве"; N
DIM S(N)
' Формирование массива и вывод его на экран
FOR 1=1 ТО N
S(I)=INT(RND(1)*21)+2 ? S(I); NEXT I
FOR 1=1 TO INT(SQR(N))
? "Значение элемента массива №"; 1Л2; "равно"; 3(1Л2) NEXT I END

Задача 242

' Вывод массива в строки по 6 элементов, начиная с последнего
CLS: RANDOMIZE TIMER
INPUT "Сколько чисел будет в массиве"; N
DIM S(N)
' Формирование массива и вывод его на экран
FOR 1=1 ТО N
S(I)=INT(RND(1)*90)+10
? 3(1); NEXT I ?: ?
9 Вывод массива в строки по 6 элементов, начиная с последнего I = N WHILE IO6
FOR I=N TO N-5 STEP -1 ? S(I);
NEXT I
N=N-6
9
WEND END

Задача 245

'Столбиковая интерпретация массива, его максимума и минимума
CLS : RANDOMIZE TIMER
' Объявление и формирование массива
INPUT "Сколько чисел будет в массиве"; N
DIM S(N)
FOR 1=1 ТО N
S(I)=INT(RND(1)*150)+50 NEXT I
'Поиск максимального элемента массива и его индекса MAX=S(1): NMAX=1 FOR 1=2 ТО N
IF S(I)>MAX THEN MAX=S(I): NMAX=I NEXT I
'Поиск минимального элемента массива и его индекса MIN=S(1): NMIN=1 FOR 1=2 ТО N
IF S{I)<MIN THEN MIN=S(I): NMIN=I NEXT I
' Графическая интерпретация массива» SCREEN 9 X=100 FOR 1=1 TO 10
LINE (X, 300)-(X+10, 300-S(I)), 14, BF
IF I = NMAX THEN LINE (X, 300)-(X+10, 300-S(I)), 4, BF
IF I = NMIN THEN LINE (X, 300)-(X+10, 300-S(D), 2, BF
LINE (X, 300)-(X+10, 300-S(I)), 15, В
X=X+10 NEXT I
' Вывод на экран элементов массива, его максимума и минимума FOR 1=1 ТО N
PRINT S(I) ; NEXT I PRINT
PRINT "Максимальный элемент массива - "; MAX; "Его индекс -"; NMAX
PRINT "Минимальный элемент массива - "; MIN; "Его индекс - "; NMIN
END

Задача 247

62 55 29
1 Формула Герона
DATA 13, 48, 35, 90,
DATA 35, 40, 20, 71,
DATA 27, 68, 41, 54,
CLS
DIM A(5), B(5), C(5), P(5), S(5)
FOR 1=1 TO 5: READ A(I): NEXT I
FOR 1=1 TO 5: READ B(I): NEXT I
FOR 1=1 TO 5: READ С(I): NEXT I
FOR 1=1 TO 5
PP=P(I)/2
S(I)=SQR (PP*(PP-A(I))*(PP-B(I))*(PP-C(I)))
? "Периметр"; I; "треугольника равен"; Р(1); "см"
? "Площадь"; I; "треугольника равна"; S(I); "кв.см"
NEXT I END

Задача 251

' Расстояния между точками
DATA 120, 58, 280, 440, 157, 99, 350, 290, 500,159
DATA 271, 279, 35, 100, 160, 234, 45, 170, 200, 66
DATA 271, 279, 35, 100, 360, 234, 545, 170, 200, 266
DATA 120, 58, 280, 240, 157, 99, 150, 290, 50, 159
SCREEN 9
1 Объявление и формирование массивов
DIM XI(10), Yl(10), X2(10), Y2(10)
FOR 1=1 TO 10: READ XI (I) : NEXT I
FOR 1=1 TO 10: READ Y1(I): NEXT I
FOR 1=1 TO 10: READ X2(I): NEXT I
FOR 1=1 TO 10: READ Y2(I): NEXT I
' Формирование массива расстояний между точками
FOR 1=1 ТО 10
S(I)=SQR((X1(I)-X2(I))Л2+(У1(I)-Y2(I))Л2) NEXT I
' Поиск максимальной и минимальной длины MAX=S(1): NMAX=1
FOR 1=2 TO 10
IF S{I)>MAX THEN MAX=S(I): NMAX=I NEXT I
MIN=S(1): NMIN=1 FOR 1=2 TO 10
IF S(I)<MIN THEN MIN=S(I): NMIN=I NEXT I
' Графическая интерпретация FOR 1=1 TO 10
LINE (XI (I), Yl (I) )- (X2 (I) , Y2(I)), 15
IF I=NMAX THEN LINE (XI (I) , Yl (I) ) - (X2 (I) , Y2(U), 4
IF I=NMIN THEN LINE (X1(I), Yl (I) ) - (X2 (I) , Y2(D), 2 NEXT I END

Задача 256

1 Сборщики компьютеров
1 Понедельник
DATA 37, 14, 48, 24, 80, 60, 56
' Вторник .
DATA 77, 34, 45, 23, 45, 39, 51
' Среда
DATA 58, 65, 49, 49, 56, 45, 38
' Четверг
DATA 61, 57, 55, 89, 33, 52, 60
' Пятница
DATA 80, 67, 77, 70, 55, 76, 81
CLS
' Объявление и формирование массивов для каждого сборщика DIMA(5), B(5), C(5), D(5), E(5), F(5), G(5), S(7), SR(5) FOR 1=1 TO 5
READA(I), B(I), C(I), D(I), E(I), F(I), G(I) NEXT I
' Общее количество компьютеров за неделю для каждого сборщика
FOR J=l TO 7: S(J)=0: NEXT J
J-l: FOR 1=1 TO 5: S (J) =S (J)+A (I) : NEXT I
J=2: FOR 1=1 TO 5: S (J) =S (J)+B (I) : NEXT I
J=3: FOR 1=1 TO 5: S (J) =S (J)+C (I) : NEXT I
J=4: FOR 1=1 TO 5: S(J)=S(J)+D(I): NEXT I
J=5: FOR 1=1 ТО 5: S(J)=S(J)+E(I): NEXT I
J=6: FOR 1=1 TO 5: S(J)=S(J)+F(I): NEXT I
J=7: FOR 1=1 TO 5: S (J) =S (J)+G (I) : NEXT I
' Максимальное количество за неделю одним сборщиком
MAX=S(1): К=1
FOR J=2 TO 7
IF S(J) > MAX THEN MAX=S(J): K=J NEXT J
PRINT "Максимальное количество компьютеров за неделю: PRINT "собрал рабочий №"; К PRINT
' Среднее количество за каждый день недели FOR 1=1 ТО 5
; МАХ
PRINT "В"; I; "день в среднем собрано"; SR(I); "компьютеров" NEXT I PRINT
' Лучший результат за один день, номер сборщика и день недели RESTORE READ DAY MX=DAY: K=l FOR 1=2 TO 35
READ DAY
IF DAY>MX THEN MX=DAY: K=I NEXT I
PRINT "Максимальное количество компьютеров за один день: " ;
MX
N=K MOD 7
Nl=K/7
IF N1<=1 AND Nl>0 THEN 0$="Понедельник"
IF Nl<=2 AND N1>1 THEN 0$="Вторник"
IF Nl<=3 AND Nl>2 THEN D$="Cpefla"
IF Nl<=4 AND Nl>3 THEN D$="4eTBepr"
IF Nl<=5 AND Nl>4 THEN О$="Пятница"
PRINT "собрал рабочий №"; N
PRINT "Это был день недели "; D$
END

Задача 267

' Сортировка выбором
CLS : RANDOMIZE TIMER
INPUT "Сколько чисел будет в массиве"; N
' Объявление, формирование массива и вывод его на экран
DIM S(N)
FOR 1=1 ТО N
S(I)=INT(RND{1)*150)+50
PRINT S(I) ; NEXT I PRINT
1 Сортировка с использованием вложенных циклов FOR 1=1 ТО N-1
MIN=S(N)
K=N
FOR J=N TO I STEP -1
IF S(J)<MIN THEN MIN=S(J): K=J
NEXT J
SWAP S(K), S(I) NEXT I
' Вывод отсортированного массива FOR 1=1 TO N
PRINT S (I); NEXT I END

Задача 269

' Сортировка методом "пузырька"
CLS
DATA Q,W,E,R,T,Y,U,I,O,P
DATA A, S, D, F, G, H, J, K, L, Z
DATA X,C,V,B,N,M
' Объявление, формирование и вывод исходного массива на экран
N=26: DIM ENG$(N)
PRINT "Исходный массив"
FOR 1=1 ТО N
READ ENG$(I)
PRINT ENG$(I); " ";
NEXT I
PRINT
FOR 1=1 TO N-l
FOR J=l TO N-l
IF ENG$(J)>ENG$(J+1) THEN SWAP ENG$(J), ENG$(J+1)
NEXT J NEXT I PRINT
' Вывод отсортированного массива PRINT "Отсортированный массив" FOR 1=1 ТО N
PRINT ENG$(I); " "; NEXT I END