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

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

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

Писал программу: пользователь вводит 10 чисел, из них формируется массив сначало четные затем нечетные.
Листинг программы
  1. program Project1;
  2. {$APPTYPE CONSOLE}
  3. uses
  4. SysUtils;
  5. var x,i:integer; q:file of integer;
  6. a:array[0..9] of integer;
  7. begin
  8. assign(q,'ch.dat');
  9. rewrite(q);
  10. for I := 0 to 9 do begin
  11. readln(x);
  12. write(q,x);
  13. end;
  14. reset(q);
  15. writeln('mas=' );
  16. while not eof(q) do begin
  17. read(q,x);
  18. for I := 0 to 9 do begin
  19. if x mod 2 =0 then begin
  20. a[i]:=x ;
  21. write(a[i]);
  22. end;
  23. end;
  24. i:=i+1;
  25. end;
  26. close(q);
  27. readln;
  28. end.
В итоге печатает четные причем каждое по 10 раз а нечетные вообще не печатает. Помогите довести до ума...

Решение задачи: «Пользователь вводит 10 чисел, из них формируется массив сначало четные затем нечетные»

textual
Листинг программы
  1. var q:file of integer;
  2.     a:array of integer;
  3.     n,x,i,j:integer;
  4. begin
  5. randomize;
  6. assignfile(q,'ch.dat');
  7. rewrite(q);
  8. write('n=');
  9. readln(n);
  10. for i:=1 to n do
  11.  begin
  12.   x:=random(50);
  13.   write(q,x);
  14.  end;
  15. reset(q);
  16. writeln('mas=' );
  17. read(q,x);
  18. n:=1;
  19. setlength(a,n);
  20. a[n-1]:=x;
  21. while not eof(q) do
  22.  begin
  23.   read(q,x);
  24.   n:=n+1;
  25.   setlength(a,n);
  26.   if odd(x)then a[n-1]:=x
  27.   else
  28.    begin
  29.     for j:=n-1 downto 1 do
  30.     a[j]:=a[j-1];
  31.     a[0]:=x;
  32.    end;
  33.  end;
  34. closefile(q);
  35. for i:=0 to n-1 do
  36. write(a[i]:4);
  37. readln
  38. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы