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