Найти наибольший отрицательный и наименьший положительный элементы массива (Pascal -> VB) - VB

Формулировка задачи:

В заданном векторе (одномерном массиве) найти: наибольший отрицательный и наименьший положительные элементы.
const
  nmax=50;
var
  a: array[1..nmax] of integer;
  n,i,min,max: integer;
begin
  randomize;
  repeat
    write('Введите размер массива (n<50):');
    readln(n);
  until n in[1..50];
  min:=-1;
  max:=1;
  writeln('Исходный массив:');
  for i:=1 to n do
  begin
    a[i]:=-99+random(199);
    write(a[i]:4);
    if a[i]<0 then  max:=a[i]
    else if a[i]>0 then min:=a[i];
  end;
  writeln;
  if min=-1 then writeln('Положительных элементов нет')
  else
   begin
    for i:=1 to n do
    if (a[i]>0)and(a[i]<min) then min:=a[i];
    writeln('Минимальный положительный=',min);
   end;
  if max=1 then writeln('Отрицательных элементов нет')
  else
   begin
    for i:=1 to n do
    if (a[i]<0)and(a[i]>max) then max:=a[i];
    writeln('Максимальный отрицательный=',max);
   end;
end.

Код к задаче: «Найти наибольший отрицательный и наименьший положительный элементы массива (Pascal -> VB) - VB»

textual
Option Explicit
Const N = 15
Const A = 100
 
Private Sub Form_click()
    Dim Vec(N)  ' числовой массив Vec
    Dim i As Integer, Max As Integer, Min As Integer
    Randomize
    Cls
    Print "Массив Vec" ' Печать на Форме - Массив Vec
    
    For i = 0 To N
        Vec(i) = Int(Rnd * A) - 50 ' формирование массива случайных чисел от-50 до+50
        Print Vec(i); ' вывод массива в строку на форму
    Next
    Print
    Min = A: Max = Vec(0)
    For i = 0 To N
        If Vec(i) < 0 And Abs(Vec(i)) < Abs(Max) Then
            Max = Vec(i)
        ElseIf Vec(i) >= 0 And Vec(i) < Min Then
            Min = Vec(i)
        End If
    Next
    Print Max, Min;
End Sub

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

12   голосов, оценка 3.833 из 5


СОХРАНИТЬ ССЫЛКУ