Пользователь вводит 10 чисел, из них формируется массив сначало четные затем нечетные - Pascal

Узнай цену своей работы

Формулировка задачи:

Писал программу: пользователь вводит 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 раз а нечетные вообще не печатает. Помогите довести до ума...

Решение задачи: «Пользователь вводит 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.

Объяснение кода листинга программы

  1. Объявляется переменная q как файловой переменной, a - как массив целых чисел, и n, x, i, j - как целочисленные переменные.
  2. Генерируется случайное число для переменной x от 0 до 49.
  3. Открывается файл ch.dat для записи.
  4. Пользователь вводит значение для переменной n.
  5. С помощью цикла for генерируем n случайных чисел и записываем их в файл q.
  6. Файл q переоткрывается для чтения.
  7. Происходит чтение первого числа из файла q в переменную x.
  8. Создается массив a длиной n и первому элементу присваивается значение x.
  9. Далее осуществляется чтение значений из файла q и их размещение в массиве a: четные числа добавляются в конец массива, а нечетные числа добавляются в начало массива.
  10. Файл q закрывается.
  11. Выводятся элементы массива a на экран.
  12. Программа ожидает ввода пользователя перед завершением выполнения.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы