Алгоритм такой:
1. Если массив закончился, завершить программу. Иначе к п.2
2. Освободить дырку справа
3. Найти правую границу массива, поставить там метку и вернуться к левой границе массива из оставшихся точек.
4. Вернуться к п. 1.
1)
uses crt;
var x,y,pr:integer;
begin
read(y,x);
pr:=1;
repeat
pr:=pr*y;
x:=x-1;
until x=0;
write(pr);
end.
2)
uses crt;
var
a:array[1..10] of integer;
pr,i,k:integer;
begin
for i:=1 to 10 do
read(a[i]);
clrscr;
pr:=1;
for i:=1 to 10 do
begin
if a[i]<0 then k:=k+1;
if a[i]>0 then pr:=pr*a[i];
end;
writeln('Исходный массив: ');
for i:=1 to 10 do
write(a[i],' ');
writeln;
if k<>0 then writeln('Отрицательных элементов: ',k) else writeln('Отрицательных элементов нет');
write('Произведение положительных элементов равно: ',pr);
end.
Не обязательно
пользователь сам подключает внешние накопители, если ему не хватает встроенной памяти компьютера)
На целостность данных она не влияет, первый вариант.
40 строк *60 символов = 2400 символов на одной странице
8 бит = 1 байт
16 Гб= 16* 1024 Мб= 16*1024*1024 кб=16*1024*1024*1024 байт = 17179869184 байта
17179869184 / 2400 = 715878,8 страниц
715878,8 /100 =71583 см
Кажется, так.
Подробнее - на Znanija.com - znanija.com/task/8906879#readmore