1. Если буквально по тексту задания, то число должно быть должно быть однозначным, тогда число будет соответствовать цифре.
2. Если имелось ввиду, что вводится символ и надо выяснить является ли введенный символ цифрой, то можно применить функцию StrToInt от введенного символа, если в результате получится цифра, то вводили символ - цифру.
Для первого варианта можно попробовать такое решение:
Var a :integer; Begin writeln('Введите цифру '); readln(a); case a of 0 : writeln ('ноль'); 1 : writeln ('один'); 2 : writeln ('два'); 3 : writeln ('три'); 4 : writeln ('четыре'); 5 : writeln ('пять'); 6 : writeln ('шесть'); 7 : writeln ('семь'); 8 : writeln ('восемь'); 9 : writeln ('девять') else writeln ('Это число не цифра'); end; end.
Кристина910
31.10.2022
См. картинку во вложении. ответ: 1
Такие задания решаются с трассировочной таблицы. Выписываешь все переменные, которые есть в программе (если массив, то отдельно выписываешь каждую ячейку). Сколько переменных - столько столбцов в таблице. Потом притворяешься компьютером и выполняешь программу команда за командой, при этом записывая все изменения значений переменных по такому правилу: 1) если значение переменной ещё не определено, ничего не пишешь (оставляешь пустые клетки); 2) если значение переменной изменилось в ходе выполнения команды - пишешь новое значение (в моей таблице выделены жёлтым); 3) если значение переменной НЕ изменилось в ходе выполнения команды - пишешь старое значение (то есть переписываешь его из клетки, которая на одну выше). В конце смотришь, значение какой переменной должен напечатать компьютер - это и есть ответ.
ibarskova1542
31.10.2022
1-задача var A:array[1..5] of integer; s,P,K,i,c :integer; begin for I:=1 to 5 do begin write('ведите число '); readln(A[i]); end; S:=0; c:=0; P:=1; K:=0; for I:=1 to 5 do begin if a[i]>0 then begin S:=S+A[i]; c:=c+1; end; if (a[i] mod 12)<>0 then P:=P*A[i]; if (a[i]mod 2)=0 then K:=K+1; end; writeln('средняя сумма положительных чисел= ',S/c) ; writeln('произведение чисел не кратных 12= ',P) ; writeln('количество чётных чисел= ',k) ; end. можно сделать и с одним циклом. если надо - отпишись.
задача 2 расчёт с учётом того что у сотрудников разная ЗП тоже можно сделать с одним циклом. var A:array[1..5] of integer; i,zp:integer; begin for I:=1 to 5 do begin write('ведите зарплату сотрудника ',i,': '); readln(A[i]); end; ZP:=0; for I:=1 to 5 do ZP:=ZP+A[i]; write('общая сумма=',ZP); end. задача 3 var A:array[1..20] of integer; i,P,S,summ:integer; begin for I:=1 to 20 do begin write('ведите число '); readln(A[i]); end; P:=1; S:=0;Summ:=0; for I:=1 to 20 do begin if A[i]>8 then begin P:=P*a[i];S:=S+1; end; if (A[i]mod 15)<>0 then summ:=summ+A[i]; end; writeln('среднее произведение чисел больше 8= ',P/S); write('семма чисел не кратных 15= ',summ); end.
2. Если имелось ввиду, что вводится символ и надо выяснить является ли введенный символ цифрой, то можно применить функцию StrToInt от введенного символа, если в результате получится цифра, то вводили символ - цифру.
Для первого варианта можно попробовать такое решение:
Var
a :integer;
Begin
writeln('Введите цифру ');
readln(a);
case a of
0 : writeln ('ноль');
1 : writeln ('один');
2 : writeln ('два');
3 : writeln ('три');
4 : writeln ('четыре');
5 : writeln ('пять');
6 : writeln ('шесть');
7 : writeln ('семь');
8 : writeln ('восемь');
9 : writeln ('девять')
else writeln ('Это число не цифра');
end;
end.