Сформировать массив B из элементов массива A, индексы которых являются делителями числа C - Pascal
Формулировка задачи:
народ, помогите с присваиванием значений одного массива другому и правильного вывода .
вот условие: Дан линейный массив, содержащий N целых чисел.
Выделить те элементы этого массива в массив B, индексы которых являются делителями числа C.
Замечание Считается, что первый элемент массива имеет индекс 1
ввод из файла с=3 , n=10 , Массив= 11 21 31 45 61 74 98 48 64 6
вывод 31 74 64 [/B]Замечание: При выводе в файл 0-й нету , при выводе на экран они есть. Буду благодарен за помощть
var
a,b: array[1..1000] of integer; {мы не знаем заранее N, поэтому берем с запасом.}
N,i,c,d: integer;
f:text;
begin
writeln('Ввод данных из файла Inlet.in');
assign(f,'Inlet.in'); {связать переменную f с файлом на диске}
reset(f); {открыть файл для чтения}
readln(f,c);{прочитать значение переменной c из файла}
writeln('C:=',c);
readln(f,N);
writeln('N:=',n);
for i := 1 to N do begin
read(f,a[i]);
write(a[i]:5);
end; {Начинаем выбирать числа делящееся на c}
writeln;
close(f);
for i := 1 to N do
begin
if i mod c=0 then {записать в файл результат}
begin
assign(f,'Outlet.out');
rewrite(f); {пересоздать файл}
b[i]:=a[i];
write(f,b[i],' ');
end;
write(b[i]:5);
end;
writeln;
close(f);
writeln ('Запись данных в Outlet.out');
end.Решение задачи: «Сформировать массив B из элементов массива A, индексы которых являются делителями числа C»
textual
Листинг программы
if n>High(a) then begin
WriteLn('Аварийный останов: Слишком большое N: ',n,'.');
Close(f); Halt;
end;
Объяснение кода листинга программы
n- это переменная, предположительно содержащая значение типа integer.High(a)- функция, возвращающая индекс последнего элемента в массивеa.WriteLn- процедура вывода данных на экран.Close(f)- процедура закрытия файла.Halt- процедура завершения программы.