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