Определить количество различных элементов в данном массиве - Turbo Pascal
Формулировка задачи:
Дан одномерный массив ненулевых целых чисел размера N/
1.Определить количество различных элементов в данном массие, найти произведение этих элементов;
2.После каждого отрицательного элемента массива вставить элемент с нулевым значением;
3. Осуществить циклический сдвиг элементов массива вставить элемент вправо на одну позицию.
для откладки программы исходный массив сформировать с помощью генератора случайных чисел.
Решение задачи: «Определить количество различных элементов в данном массиве»
textual
Листинг программы
- var
- a: array [1..30] of integer;
- j,temp,N,i:integer;
- begin
- writeln('Введите N (N<=10)');
- readln(N);
- writeln('Значения массива А');
- for i:=1 to n do begin write('a[',i,']=');readln(A[i]); end;
- // решение
- temp:=0;
- for i:=1 to n do
- begin
- if a[i]<0 then inc(temp);
- end;
- j:=n;
- for i:=n+temp downto 1 do
- begin
- if a[j]<0 then begin a[i]:=0; dec(i); end;
- a[i]:=a[j];
- dec(j);
- end;
- n:=n+temp;
- Writeln('Ответ');
- Writeln;
- Write(' A[]: '); for i:=1 to n do Write(A[i],' ');
- end.
Объяснение кода листинга программы
- Создается переменная
a
типаarray [1..30] of integer
. Это означает, чтоa
является массивом из 30 элементов типаinteger
. - Затем определяются три переменные:
j
,temp
иN
. Переменнаяj
инициализируется значениемn
, а переменнаяtemp
инициализируется значением0
. ПеременнаяN
инициализируется значением, введенным пользователем. - Выводится сообщение
Введите N (N<=10)
. Это предложение предлагает пользователю ввести значениеN
, которое должно быть меньше или равно 10. - Выводится сообщение
Значения массива А
. Это сообщение указывает, что будет выводиться содержимое массиваA
. - Запускается цикл
for
, который начинается сi=1
и продолжается доi<=n
. Внутри цикла выводится значениеa[i]
с помощью функцииwrite
. После этого вызывается функцияreadln
, чтобы пользователь мог ввести значение дляA[i]
. - Внутри цикла
for
переменнойj
присваивается значениеn
. Это означает, чтоj
будет указывать на последний элемент массиваA
. - Запускается еще один цикл
for
, который начинается сi=n+temp
и продолжается доi>=1
. Внутри цикла проверяется, является ли значениеa[i]
отрицательным. Если это так, то значениеi
увеличивается на1
, и переменнаяa[i]
устанавливается в0
. - После завершения внутреннего цикла
for
переменнаяj
уменьшается на1
с помощью функцииdec
. - Значение
a[i]
копируется из переменнойj
в переменнуюa[i-1]
. Это означает, что значениеa[i]
заменяется значениемa[i-1]
. - Переменная
j
снова уменьшается на1
с помощью функцииdec
. - Цикл
for
завершается, и выводится сообщениеОтвет
. - Выводится пустая строка с помощью функции
writeln
. - Выводится сообщение
A[]:
с помощью функцииwrite
. - Запускается цикл
for
, который начинается сi=1
и продолжается доi<=n
. Внутри цикла выводится значениеA[i]
с помощью функцииwrite
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д