Дана последовательность чисел.Сформировать массив положительных чисел из исходной последовательности и найти максимальное из них- QBasic(Бейсик)

 DEFINT A-Z
Again: CLS              ' Чистим экран
 INPUT "Vvedite kol-vo chisel: ", n    '
 IF n < 3 GOTO Again    ' В массиве из 1 числа нет смысла
 FOR i = 1 TO n
   PRINT "  Vvedite chislo №" + LTRIM$(STR$(i)); ": ";
   INPUT "", c
   IF c > 0 THEN k = k + 1
   IF c > max THEN max = c
      ' Промежуточный буфер(мб файл или память)
      ' Я выбрал строку, т.к. с ней просто работать
      ' и её размер динамически меняется.
   Buf$ = Buf$ + LTRIM$(STR$(c)) + "_"
 NEXT
   PRINT STRING$(40, 196)
 IF k > 0 THEN     ' Если положительные числа есть
  DIM A(k)    ' Заведём массив
  FOR i = 1 TO n
   st1$ = LEFT$(Buf$, INSTR(Buf$, "_") - 1)
   Buf$ = RIGHT$(Buf$, LEN(Buf$) - INSTR(Buf$, "_"))
   z = VAL(st1$): IF z > 0 THEN f = f + 1: A(f) = z
  NEXT: PRINT "Posledovatelnost :"
  FOR i = 1 TO k
  PRINT A(i);
  NEXT: PRINT
  PRINT "MAX ="; max
 ELSE              ' Если положительных чисел нет
  PRINT "Pologitelnyh chisel v posledovatelnosti net!!!"
 END IF

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

Leave a Comment