Иллюстрированный самоучитель по Basic, вводный курс

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

Задача 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
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.