Сформировать массив 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
- процедура завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д