Задачи (часть 2)

Разбор задач с примерами оценки

Вариант 1

Вариант 2

Программа 2004-С5:

CLS

DIM i, imax, c, a(26) AS INTEGER

OPEN "TEXT.DAT" FOR INPUT AS #2

S$ = "1"

DO WHILE NOT (S$ = ".")

S$ = INPUT$(1, #2)

c = ASC(UCASE$(S$))

IF c >= ASC("A") AND c <= ASC("Z") THEN

c = c - ASC("A") + 1

a(c) = a(c) + 1

END IF

LOOP

FOR i = 1 TO 26

IF a(i) > 0 THEN PRINT CHR$(i + 64); " = "; a(i); " ";

NEXT i

imax = 1

FOR i = 2 TO 26

IF a(i) > a(imax) THEN imax = i

NEXT i

PRINT : PRINT CHR$(imax + 64), a(imax)

CLOSE #2

А вот пример программы на Бейсике (2005-С5), которая работает с результатами измерения температуры (366 дней):

DIM temp(12) AS INTEGER

DIM mm(12) AS DOUBLE

DATA 31,28,31,30,31,30,30,31,30,31,30,31

CLS : PRINT

OPEN "dat.txt" FOR INPUT AS #1

DO UNTIL EOF(1)

INPUT #1, c$

month = VAL(MID$(c$, 4, 2))

temp(month - 1) = temp(month - 1) + VAL(MID$(c$, 6))

LOOP

CLOSE #1

s = 0

FOR i = 1 TO 12

READ mm(i - 1)

mm(i - 1) = temp(i - 1) / mm(i - 1)

s = s + mm(i - 1)

NEXT i

s = s / 12

PRINT "srednegod: "; s: PRINT

otkl = 0

FOR i = 1 TO 12

IF i <= 9 THEN PRINT "0";

PRINT LTRIM$(STR$(i)); ": ";

PRINT USING "##.##"; mm(i - 1);

PRINT "; otklon: ";

curOtkl = ABS(s - mm(i - 1))

PRINT USING "##.##"; curOtkl

IF curOtkl >= otkl THEN otkl = curOtkl: mOtkl = i

NEXT i

PRINT

PRINT "Maksim otkl v mesyaze: "; mOtkl