Вводится длина вектора, состоящего из целых чисел, и его элементы. Удалить все элементы, кроме имеющих заданное произведение цифр
Категория: Delphi/Pascal
2012-02-23 21:27:38
code: #pascal
program lb1; var m:array [1..100] of integer; i,j,n,zc:integer; function mul (n:integer):integer; { функция, определяющая ПРОИЗВЕДЕНИЕ цифр числа} var c,err,i,sum:integer; s:string; begin str(n,s); sum:=1; for i:=1 to length(s) do begin val(s[i],c,err);sum:=sum*c; end; mul:=sum; end; {*****************конец функции*************} Procedure Deletion (K:integer); {процедура удаляющая элементы массива} var i:integer; begin For i:=k+1 to n do m[i-1]:=m[i]; end; {*****************конец проседуры*************} begin write('Vvedite N (razmer massiva): '); readln(n); {считываем размер массива} for i:=1 to n do begin write('M[',i,']='); readln(m[i]); end; {считываем сам масссив} writeln; for i:=1 to n do write(m[i],' '); {показываем на экране этот масссив} writeln;writeln; write('Vvedite zadannoe CISLO "zadannoe proizvedenie tsifr": '); readln(zc); { считываем число с экрана "Значение"} for i:=1 to n do {проходим по масссиву} if mul(m[i]) <> zc then {смотрим числа не равные произведению введённого} begin Deletion(i); dec(n); end; {удаляем такие элементы с массива} writeln('Massiv posle ydalenia: '); for i:=1 to n do write(m[i],' '); {показываем на экране ИСХОДНЫЙ масссив} readln; end.
Поделиться: