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