В процедуре удалить из исходного массива элементы с четными индексами - Turbo Pascal

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

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

- Ввести произвольную размерность одномерного массива в интервале 1..10. - Ввести данные (тип данных указан в вариантах) с клавиатуры в виде «Х[i]=», где i – индекс элемента. - После окончания ввода для контроля данных вывести на экран массив. - Обработать данные в подпрограмме (тип подпрограммы и способ обработки указан в вариантах) и вывести результат. - Ввод данных и вывод результатов на экран должны производиться в головной программе, все вычисления – в подпрограммах. Оформить подпрограммы в отдельном модуле. Подключить модуль к головной программе. - Все символьные элементы считать вводимыми только в нижнем регистре. - Если результатами вычислений являются вещественные числа, то выводить их с точностью до 1-го знака после точки. Массив символов. В процедуре удалить из исходного массива элементы с четными индексами. Первый элемент массива считать элементом с индексом 1. Размерность итогового массива должна уменьшиться. Помогите срочно, пожалуйста Не знаю на верном пути иду или нет, но вот все,что пока написано
Листинг программы
  1. Unit modulelab5;
  2. Interface
  3. implementation
  4. var
  5. mas: array [1..10] of char;
  6. i,j,n: integer;
  7. begin
  8. j:=0;
  9. n:=0;
  10. For i:= 1 to 10 do
  11. begin
  12. If (mas[i] mod 2 =0) then
  13. if (i mod 2 = 0) then
Листинг программы
  1. program lab5;
  2. uses modulelab5, crt;
  3. var
  4. a:mas;
  5. i,j, n: integer;
  6. begin
  7. writeln('Введите размерность массива (1...10):');
  8. read(n);
  9. if n>10 then writeln('Ошибка') else
  10. writeln('Введите числа');
  11. for i:=1 to n do
  12. begin
  13. write('a[',i,']=');
  14. read(a[i]);
  15. end;
  16. write('Массив=',a);
  17. for i:=1 to n do
  18. write(a[i]:3);
  19. for i:=n downto 1 do
  20. if (i mod 2 = 0) then
  21. begin
  22. for j:=i to n-1 do
  23. a[j]:=a[j+1];
  24. n:=n-1;
  25. end;
  26. writeln;
  27. for i:=1 to n do
  28. write(a[i]:3);
  29. readln;
  30. end.

Решение задачи: «В процедуре удалить из исходного массива элементы с четными индексами»

textual
Листинг программы
  1. unit lab5m;
  2. Interface
  3. type
  4.   M = array[1..10] of integer;
  5. procedure RemoveEvenIdx(var a:M; var n: integer);
  6.  
  7. implementation
  8. procedure RemoveEvenIdx(var a: M; var n: integer);
  9. var i, j: Integer;
  10. begin
  11.   i:=0; j:=0;
  12.   while j<n do begin
  13.     a[i]:=a[j]; Inc(i); Inc(j,2);
  14.   end; n:=i;
  15. end;
  16. end.

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

В данном коде описывается процедура RemoveEvenIdx, которая принимает два аргумента: переменную a типа M, представляющую исходный массив, и переменную n типа integer, представляющую количество элементов в массиве. Внутри процедуры используются две переменные i и j типа Integer. Переменная i инициализируется значением 0, а переменная j - значением 0. Затем происходит цикл while, который выполняется до тех пор, пока значение переменной j меньше значения переменной n. Внутри цикла происходит обмен элементов массива с индексами i и j. После каждого обмена значения переменных i и j инкрементируются на единицу. Значение переменной n также инкрементируется на единицу после каждого обмена. После завершения цикла значение переменной n будет равно значению переменной i, то есть количество нечетных элементов в массиве. Таким образом, данная процедура удаляет элементы с четными индексами из исходного массива.

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


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

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

14   голосов , оценка 4 из 5

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

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

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