В массиве А(118) найти отрицательные, положительные и нулевые значения элементов, их количество и сумму. Из найденных элементов сформировать отдельные массивы и распечатать их- QBasic(Бейсик)

DIM A(118), EL(-1 TO 1)
CLS
   ' Заполним массив и на экран его
   RANDOMIZE TIMER
  FOR i = 1 TO 118
  A(i) = INT(RND * 51) - 25
  PRINT A(i);
  NEXT: PRINT STRING$(2, 13)
   ' Ищем
  FOR i = 1 TO 118
    EL(SGN(A(i))) = EL(SGN(A(i))) + 1
  NEXT
  PRINT "Otricatelnyh : "; EL(-1)
  PRINT "Nulevyh      : "; EL(0)
  PRINT "Pologitelnyh : "; EL(1)
  PRINT
   ' Формируем
  DIM B(EL(-1)), C(EL(0)), D(EL(1))
  FOR i = 1 TO 118
    SELECT CASE SGN(A(i))
     CASE -1: s1 = s1 + 1: B(s1) = A(i)
     CASE 0: s2 = s2 + 1: C(s2) = A(i)
     CASE ELSE: s3 = s3 + 1: D(s3) = A(i)
    END SELECT
  NEXT
   ' Убиваем ненужный массив
  ERASE A
   ' Распечатываем
  FOR i = 1 TO s1: PRINT B(i); : NEXT: PRINT : PRINT
  FOR i = 1 TO s2: PRINT C(i); : NEXT: PRINT : PRINT
  FOR i = 1 TO s3: PRINT D(i); : NEXT: PRINT : PRINT

Тестирование выполнено в программе QB64 ( Скачать )

Leave a Comment