DIM str1(200) AS STRING DIM g(99) AS INTEGER DIM k(99) AS INTEGER INPUT "Общее количество всех учеников", N FOR i = 1 TO 99 g(i) = i k(i) = 0 NEXT i FOR i = 1 TO N INPUT str1(i) FOR j = 1 TO 99 IF j = VAL(MID$(str1(i), LEN(str1(i)) - 1, 2)) THEN k(j) = k(j) + 1 END IF NEXT j NEXT i FOR s = 1 TO 99 FOR d = s TO 99 IF k(d) < k(s) THEN c = k(d): k(d) = k(s): k(s) = c: c1 = g(d): g(d) = g(s): g(s) = c1: NEXT d NEXT s FOR i = 1 TO 99 IF k(i) > 0 AND k1 < 3 THEN k1 = k1 + 1 PRINT g(i); END IF NEXT i
Оценки находятся в конце записи str(i). Если длина всей строки k, то оценки находятся на k-4, k-2 и k местах. С помощью функции MID находим символы на k-4, k-2 и k местах и переводим их в числа с помощью команды VAL)
Вывести нужно только фамилию и имя. Если длина всей строки k, то имя заканчивается на k-5 символе)
CLS DIM str(100) AS STRING DIM s AS STRING DIM a(100) AS LONG INPUT "Введите количество учащихся", n FOR i = 1 TO n INPUT str(i) k = LEN(str(i)) a(i) = VAL(MID$(str(i), k - 4, 1)) + VAL(MID$(str(i), k - 2, 1)) + VAL(MID$(str(i), k, 1)) NEXT i min = 15 FOR i = 1 TO n IF a(i) < min THEN min = a(i) NEXT i PRINT "Последнее место" FOR i = 1 TO n IF a(i) = min THEN PRINT MID$(str(i), 1, LEN(str(i)) - 5); " " a(i) = 20 END IF NEXT i min = 15 FOR i = 1 TO n IF a(i) < min THEN min = a(i) NEXT i PRINT "Предпоследнее место" FOR i = 1 TO n IF a(i) = min THEN PRINT MID$(str(i), 1, LEN(str(i)) - 5); " " a(i) = 20 END IF NEXT i min = 15 FOR i = 1 TO n IF a(i) < min THEN min = a(i) NEXT i PRINT "Пред пред последнее место" FOR i = 1 TO n IF a(i) = min THEN PRINT MID$(str(i), 1, LEN(str(i)) - 5); " " a(i) = 20 END IF NEXT i