var mas:array[0..9] of integer; i,max,min,k:integer; arifm:real; begin k:=0; arifm:=0; Randomize; for i:=0 to 9 do mas[i]:=Random(15); for i:=0 to 9 do write(mas[i],' '); {poisk max} max:=mas[0]; for i:=1 to 9 do if max<mas[i] then max:=mas[i]; {poisk min} min:=mas[0]; for i:=1 to 9 do if min>mas[i] then min:=mas[i]; arifm:=(max+min)/2; writeln('max: ',max); writeln('min: ',min); writeln('arifm: ',arifm:0:3); for i:=0 to 9 do if mas[i]<arifm then inc(k); writeln('k: ',k); readln; end.
1. Опишем циклическое состояние светофора от начала часа 0 ≤ T < 3 ⇒ зеленый 3 ≤ T < 4 ⇒ желтый 4 ≤ T < 6 ⇒ красный 2. Замечаем, что цикл смены состояний светофора составляет 6 секунд, т.е. взяв остаток от деления заданного T на 6, мы сведем задачу к состоянию, описанному в п.1 3. Операция "Взятие остатка от деления вещественного числа" в QBASIC отсутствует, поэтому будем получать некое k - целочисленное частное от деления T на 6, а потом переопределять T = T - 6*k
'Microsoft QBASIC 1.0 DIM T AS DOUBLE INPUT "Введите T", T T = T - 6 * INT(T / 6) SELECT CASE T CASE IS <= 3 PRINT "Зеленый" CASE IS <= 4 PRINT "Желтый" CASE ELSE PRINT "Красный" END SELECT