Дан одномерный массив, заполненный целыми случайными числами из отрезка [- 10, 10]. Найти наибольшее значение в первой половине массива и наименьшее значение во второй половине.
Турбо Паскаля нет, вставьте первым оператором Uses CRT
const n = 20;
var x: array[1..n] of real; i: integer; sp, sn: real;
begin Randomize; Write('Элементы массива: '); sp := 0; sn := 0; for i := 1 to n do begin x[i] := (Random(101) - 50) / 1.33; Write(x[i]:0:5, ' '); if x[i] > 0 then sp := sp + x[i] else if x[i] < 0 then sn := sn + x[i]{нули тоже сюда, они не мешают} end; Writeln(#13#10, 'Сумма положительных=', sp:0:5, ', отрицательных=', sn:0:5) end.
begin Write('Введите размер оплаты труда: '); Readln(z); Write('Лицензия первичная (1) или повторная (2)? '); Readln(p); Writeln('На сколько лет выдается лицензия?'); Writeln('0 - до года, 1 - 1-2 года, 2 - 2-3 года,'); Write('3 - 3-4 года, 4 - 4-5 лет: '); Readln(n); case n of 0: s := 0.3 * z; 1: s := 0.4 * z; 2: s := 0.5 * z; 3: s := 0.6 * z; 4: s := 0.7 * z; else s := 1e9 end; if p = 2 then s := 0.2 * s; Writeln('Сумма лицензионного сбора составит ', s:0:2) end.
Тестовое решение:
Введите размер оплаты труда: 26400 Лицензия первичная (1) или повторная (2)? 1 На сколько лет выдается лицензия? 0 - до года, 1 - 1-2 года, 2 - 2-3 года, 3 - 3-4 года, 4 - 4-5 лет: 2 Сумма лицензионного сбора составит 13200.00
const
n = 20;
var
x: array[1..n] of real;
i: integer;
sp, sn: real;
begin
Randomize;
Write('Элементы массива: ');
sp := 0; sn := 0;
for i := 1 to n do
begin
x[i] := (Random(101) - 50) / 1.33;
Write(x[i]:0:5, ' ');
if x[i] > 0 then sp := sp + x[i]
else if x[i] < 0 then sn := sn + x[i]{нули тоже сюда, они не мешают}
end;
Writeln(#13#10, 'Сумма положительных=', sp:0:5, ', отрицательных=', sn:0:5)
end.
Тестовое решение:
Элементы массива: 3.75940 21.80451 -16.54135 9.77444 10.52632 -7.51880 32.33083 -23.30827 12.03008 -3.00752 25.56391 24.81203 24.06015 -9.02256 -11.27820 34.58647 25.56391 9.02256 -27.06767 6.01504
Сумма положительных=239.84962, отрицательных=-97.74436
z, s: real;
n, p: integer;
begin
Write('Введите размер оплаты труда: ');
Readln(z);
Write('Лицензия первичная (1) или повторная (2)? ');
Readln(p);
Writeln('На сколько лет выдается лицензия?');
Writeln('0 - до года, 1 - 1-2 года, 2 - 2-3 года,');
Write('3 - 3-4 года, 4 - 4-5 лет: ');
Readln(n);
case n of
0: s := 0.3 * z;
1: s := 0.4 * z;
2: s := 0.5 * z;
3: s := 0.6 * z;
4: s := 0.7 * z;
else s := 1e9
end;
if p = 2 then s := 0.2 * s;
Writeln('Сумма лицензионного сбора составит ', s:0:2)
end.
Тестовое решение:
Введите размер оплаты труда: 26400
Лицензия первичная (1) или повторная (2)? 1
На сколько лет выдается лицензия?
0 - до года, 1 - 1-2 года, 2 - 2-3 года,
3 - 3-4 года, 4 - 4-5 лет: 2
Сумма лицензионного сбора составит 13200.00