Удалить из массива первый отрицательный элемент, если таковой имеется. - Turbo Pascal
Формулировка задачи:
Создать одномерный массив, состоящий из 5-ти элементов, вводимых с клавиатуры.
Удалить из массива первый отрицательный элемент, если таковой имеется.
Первую часть понял:
А вот как быть с удалением отрицательного элемента?
-------------------------------------------------------------------------------------------------------------------------------------
p.s.
Не удается выхватить отрицательный элемент.. =(
ход программы:
a[1]=3
a[2]=7
a[3]=-5
a[4]=8
a[5]=1
отрицательный 0
Решение задачи: «Удалить из массива первый отрицательный элемент, если таковой имеется.»
textual
Листинг программы
program z1; uses crt; const p=5; type tarray=array[1..p] of integer; var a:tarray; n,i,b:integer; begin clrscr; n:=p; for i:=1 to n do begin write ('a[',i,']='); readln(a[i]); end; {найдем 1 отрицательный} i:=1; b:=0; while(i<=n)and(b=0) do if a[i]<0 then b:=i else i:=i+1; if b=0 then write('Отрицательных элементов нет') else {если нашли} begin writeln('Первый отрицательный a[',b,']=',a[b]); if b=n then n:=n-1 {если последний, отрезаем} else {иначе} begin for i:=b to n-1 do {сдвигаем на него конец массива} a[i]:=a[i+1]; n:=n-1; {обрезаем} end; writeln ('массив после удаления') ; for i:=1 to n do write (a[i]:3, ''); end; readln; end.
Объяснение кода листинга программы
- Создается программа
z1
. - Используются стандартные библиотеки.
- Определяется константа
p
, которая равна 5. - Определяется тип данных
tarray
, который представляет собой массив целых чисел размером от 1 до p. - Создается переменная
a
типаtarray
. - Создаются переменные
n
,i
иb
типаinteger
. - Выводится сообщение
Введите элементы массива:
, и с помощью цикла for считываются элементы массива. - Находится первый отрицательный элемент в массиве. Для этого используется цикл while, который выполняется до тех пор, пока значение переменной
i
меньше значения переменнойn
и значение переменнойb
равно 0. Если значение элементаa[i]
меньше 0, то значение переменнойb
устанавливается равнымi
. - Если переменная
b
равна 0, выводится сообщениеОтрицательных элементов нет
. - Если был найден хотя бы один отрицательный элемент, выводится сообщение
Первый отрицательный a[
, значение переменнойb
,]=
, значение элементаa[b]
. - Если последний элемент массива был отрицательным, то его значение устанавливается равным значению элемента
a[b-1]
. Таким образом, массив обрезается, и его размер уменьшается на 1. - Выводится сообщение
массив после удаления
. - С помощью цикла for выводится значение каждого элемента массива.
- Программа завершается, и пользовательу предлагается ввести еще одну программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д