Здесь пришлось учитывать положительные и отрицательные числа, т.к. длина строки с отрицательным числом включает в себя и знак минус. Поэтому в некоторых местах программы я добавлю пояснение.
var n,p:integer; s: string; begin write ('Введите число: '); readln (n); if n<0 then n:=-n; // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе str(n,s); // преобразуем число в строку, чтобы узнать длину числа (количество цифр) if (length(s) mod 2)=0 then n:=n div 10; // проверяем длину числа на четность. так как нам нужны цифры с НЕЧЕТНЫХ мест, убираем из числа последнюю цифру, которая стоит на ЧЕТНОМ месте: p:=1; while n>=1 do begin // организуем цикл ПОКА число не станет меньше единицы (в цикле мы будем отрезать от него по две цифры) p:=p*(n mod 10); // произведение умножаем на последнюю цифру числа (остаток от деления числа на 10) n:=n div 100; // отрезаем от числа 2 последние цифры. (в последней итерации цикла оно примет вид 0,0х, т.е. будет больше 0, но меньше 1) end; writeln; writeln ('Произведение цифр,которые расположены на нечётных позициях, = ',p); end.
Проимер:
Введите число: -2323 Произведение цифр,которые расположены на нечётных позициях, = 4
Описание: Рабочие тетради для 2-4 классов (каждый класс в 2-х частях) входят в состав УМК по информатике и ИКТ для начальной школы (2-4). УМК обеспечивают пропедевтическое обучение информатике, цель которого - сформировать представление учащихся об основных понятиях информатики на основе их личного опыта и знаний, полученных при изучении других школьных дисциплин, а также развить начальные навыки работы на персональном компьютере.
6) const n=10; var a: array[1..n] of integer; i,max,min : integer; begin Randomize; writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(21); write(a[i]:3); end; writeln; max:=a[1]; min:=a[1]; for i:=2 to n do begin if a[i] > max then max:=a[i]; if a[i] < min then min:=a[i]; end; writeln('L = ',max-min); end.
9) const n=10; var a: array[1..n] of real; i,k1,k2 : integer; begin Randomize; writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=10*random-5; write(a[i]:5:2); end; writeln; k1:=0; k2:=0; for i:=1 to n do if a[i]>0 then k1:=k1+1 else if a[i]<0 then k2:=k2+1; writeln('Положительных: ',k1,', отрицательных: ',k2,' нулевых: ',n-k1-k2); end.
16) const n=10; var a: array[1..n] of real; i : integer; begin for i:=1 to n div 2 do begin a[i]:=i; a[n div 2+i]:=sin(a[i]); end; for i:=1 to n div 2 do writeln(a[i]:4:1,a[n div 2+i]:6:2); end.
19) const n=10; var a: array[1..n] of integer; i: integer; begin Randomize; writeln('Исходный массив:'); for i:=1 to n do begin a[i]:=random(51); write(a[i]:5); end; writeln; writeln('Выбранные элементы:'); i:=1; while i<=n do begin write(a[i],' '); i:=2*i; end; end.
var
n,p:integer;
s: string;
begin
write ('Введите число: ');
readln (n);
if n<0 then n:=-n; // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе
str(n,s); // преобразуем число в строку, чтобы узнать длину числа (количество цифр)
if (length(s) mod 2)=0 then n:=n div 10; // проверяем длину числа на четность. так как нам нужны цифры с НЕЧЕТНЫХ мест, убираем из числа последнюю цифру, которая стоит на ЧЕТНОМ месте:
p:=1;
while n>=1 do begin // организуем цикл ПОКА число не станет меньше единицы (в цикле мы будем отрезать от него по две цифры)
p:=p*(n mod 10); // произведение умножаем на последнюю цифру числа (остаток от деления числа на 10)
n:=n div 100; // отрезаем от числа 2 последние цифры. (в последней итерации цикла оно примет вид 0,0х, т.е. будет больше 0, но меньше 1)
end;
writeln;
writeln ('Произведение цифр,которые расположены на нечётных позициях, = ',p);
end.
Проимер:
Введите число: -2323
Произведение цифр,которые расположены на нечётных позициях, = 4