Пользователь вводит 10 чисел, из них формируется массив сначало четные затем нечетные - Pascal
Формулировка задачи:
Писал программу: пользователь вводит 10 чисел, из них формируется массив сначало четные затем нечетные.
В итоге печатает четные причем каждое по 10 раз а нечетные вообще не печатает. Помогите довести до ума...
program Project1; {$APPTYPE CONSOLE} uses SysUtils; var x,i:integer; q:file of integer; a:array[0..9] of integer; begin assign(q,'ch.dat'); rewrite(q); for I := 0 to 9 do begin readln(x); write(q,x); end; reset(q); writeln('mas=' ); while not eof(q) do begin read(q,x); for I := 0 to 9 do begin if x mod 2 =0 then begin a[i]:=x ; write(a[i]); end; end; i:=i+1; end; close(q); readln; end.
Решение задачи: «Пользователь вводит 10 чисел, из них формируется массив сначало четные затем нечетные»
textual
Листинг программы
var q:file of integer; a:array of integer; n,x,i,j:integer; begin randomize; assignfile(q,'ch.dat'); rewrite(q); write('n='); readln(n); for i:=1 to n do begin x:=random(50); write(q,x); end; reset(q); writeln('mas=' ); read(q,x); n:=1; setlength(a,n); a[n-1]:=x; while not eof(q) do begin read(q,x); n:=n+1; setlength(a,n); if odd(x)then a[n-1]:=x else begin for j:=n-1 downto 1 do a[j]:=a[j-1]; a[0]:=x; end; end; closefile(q); for i:=0 to n-1 do write(a[i]:4); readln end.
Объяснение кода листинга программы
- Объявляется переменная
q
как файловой переменной,a
- как массив целых чисел, иn
,x
,i
,j
- как целочисленные переменные. - Генерируется случайное число для переменной
x
от 0 до 49. - Открывается файл
ch.dat
для записи. - Пользователь вводит значение для переменной
n
. - С помощью цикла for генерируем
n
случайных чисел и записываем их в файлq
. - Файл
q
переоткрывается для чтения. - Происходит чтение первого числа из файла
q
в переменнуюx
. - Создается массив
a
длинойn
и первому элементу присваивается значениеx
. - Далее осуществляется чтение значений из файла
q
и их размещение в массивеa
: четные числа добавляются в конец массива, а нечетные числа добавляются в начало массива. - Файл
q
закрывается. - Выводятся элементы массива
a
на экран. - Программа ожидает ввода пользователя перед завершением выполнения.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д