Формальное решение на случай, если Ваш QBasic не распознаёт кириллицу(формальное, потому что отображаться будет правильно, но текст с кириллицей ввести не получится):
DIM S$, C$
CLS
INPUT "BBEDITE TEXT: ", S$
k = 0
S$ = LCASE$(S$)
FOR i = 1 TO LEN(S$)
C$ = MID$(S$, i, 1)
IF (C$ = " ") OR (C$ = "Ґ") OR (C$ = "Ё") OR (C$ = "®") OR (C$ = "г") OR (C$ = "л") OR (C$ = "н") OR (C$ = "о") OR (C$ = "п") THEN
k = k + 1
END IF
NEXT i
PRINT "k = "; k
END
Если поддерживает кириллицу:
DIM S$, C$
CLS
INPUT "BBEDITE TEXT: ", S$
k = 0
S$ = LCASE$(S$)
FOR i = 1 TO LEN(S$)
C$ = MID$(S$, i, 1)
IF (C$ = "а") OR (C$ = "е") OR (C$ = "и") OR (C$ = "о") OR (C$ = "у") OR (C$ = "ы") OR (C$ = "э") OR (C$ = "ю") OR (C$ = "я") THEN
k = k + 1
END IF
NEXT i
PRINT "k = "; k
END
1. Необходимо выбрать вид теста: с открытыми вопросами (пользователь вводит ответ сам), с закрытыми вопросами (пользователь выбирает варианты ответа), комбинированный.
2. Разработать вопросы теста и варианты ответов.
3. Разработать алгоритм программы, автоматизирующей тест.
4. Записать разработанный алгоритм на языке программирования QBasic.
5. Отладить программу.
1)
program task1;
var x,y,xq,yq,sum,pro,cha,raz:integer;
begin
write('Введите числа:');
readln(x,y);
xq:=sqr(x);
yq:=sqr(y);
sum:=xq+yq;
raz:=xq-yq;
pro:=xq*yq;
cha:=xq/yq;
write('Сумма=',sum,';Разность=',raz,';Частное=',cha,';Произведение=',pro);
end.
2)
program task2;
var a,r,rr,h,s:real;
begin
write('Введите длину стороны треугольника: ');
readln(a);
r := sqrt(3) * a / 6;
rr := 2 * r;
h := 3 * r;
s := a * h / 2;
Writeln('Радиус вписанной окружности ', r::2);
Writeln('Радиус описанной окружности ', rr::2);
Writeln('Высота треугольника ', h::2);
Writeln('Площадь треугольника ', s::2);
end.
Const
start=12; //наименьшее подходящее число
max=100; //первое число, идущее после всех двузначных
step=3; //разность между подходящими числами
var
x,i:integer;
begin
x:=start;
i:=0;
while x<max do begin
i:=i+1;
x:=x+step;
end;
writeln('Количество искомых чисел: ',i);
end.
//Pascal ABC.NET 3.1 сборка 1256
Var
s:string;
a,b:real;
begin
readln(s);
a:=strtofloat(copy(s,1,pos('X',s)-1));
b:=strtofloat(copy(s,pos('=',s)+1,length(s)-pos('=',s)));
if (a=0) and (b=0) then
begin
writeln('X-любое действительное число');
exit;
end
else
if a=0 then
begin
writeln('Нет корней');
exit;
end;
writeln(b/a);
end.
Пример ввода:
-0.1X=10
Пример вывода:
-100