1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
uses graphABC;
var n,da,db,x1,y1,x2,y2:integer;
begin
repeat
write('Введите количество точек от 2 до 50 n=');
readln(n);
until n in [2..50];
clearwindow;
da:=(windowwidth-100)div (n-1);//расстояние между точками ввверху
db:=da div 4;//то же внизу
if odd(n) then//если n нечетное
begin
x1:=windowwidth div 2-da*(n div 2);
x2:=windowwidth div 2-db*(n div 2);
end
else //если четное
begin
x1:=windowwidth div 2-da*(n div 2-1)- da div 2;
x2:=windowwidth div 2-db*(n div 2-1)- db div 2;
end ;
y1:=50;
y2:=windowheight-50;
for var i:=0 to n-1 do
line(x1+i*da,y1,x2+i*db,y2);
line(x1,y1,x1+(n-1)*da,y1);
line(x2,y2,x2+(n-1)*db,y2);
end.
Объяснение:
Программа:
Pascal:
var
arr: array of integer;
N, i, j, pr, min, n1, k: integer;
begin
min := MAXINT; pr := 1;
write('N = '); readln(N);
setLength(arr, N);
for i := 0 to N - 1 do begin
arr[i] := random(-20, 30);
if abs(arr[i]) < min then min := abs(arr[i]);
if arr[i] mod 2 = 0 then inc(j);
end;
for i := 0 to N - 1 do
if arr[i] = 0 then begin
n1 := i; break;
end;
writeln(n1);
for i := n1 + 1 to N - 1 do begin
if arr[i] = 0 then inc(k);
if k = 0 then pr := pr * arr[i]
else if k = 1 then break;
end;
writeln('Массив: ', arr);
writeln('Минимальный элемент по модулю: ', min);
writeln('Количество чётных элементов: ', j);
if k = 0 then writeln('Не было сгенерировано нулей/сгенерирован 1 ноль')
else writeln('Произведение: ', pr);
end.