3. Дано действительное число N (N> 1). 1 + 1/2 +… + 1/K Создайте программу, которая вычисляет минимальное количество слагаемых K, которое больше или равно числу N и суммe 1 + 1/2 +… + 1 / K.
1) Program n1; var n,i:integer; t:array[1..100] of real; a,b:real; begin readln(n); readln(a); readln(b); for i:=1 to n do begin t[i]:=(b-a)/n; write(t[i],' '); end; end. 2) Program n1; var a:array[1..100] of integer; n,i:integer; k:real; begin read(n); k:=0; for i:=1 to n do read(a[i]); for i:=1 to n do if a[i] mod 2 <> 0 then k:=k+1; writeln; writeln('кол-во нечет. чисел равно ',k,''); end. 6) Program n1; var a:array[1..100] of real; i,n:integer; s,sr:real; begin read(n); for i:=1 to n do read(a[i]); s:=0; sr:=0; for i:=1 to n do s:=s+a[i]; sr:=s/n; writeln('сред. арифметическое равно ',sr,''); end. 7) Program n1; var a:array[1..100] of real; i,n:integer; min,max:real; begin read(n); for i:=1 to n do read(a[i]); min:=a[1]; for i:=2 to n do if a[i]<min then min:=a[i]; max:=a[1]; for i:=2 to n do if a[i]>max then max:=a[i]; writeln('максимальный элемент равен ',max,''); writeln('минимальный элемент равен ',min,''); end. 8) Program n1; var a:array[1..100] of real; i,n:integer; min,max,nom1,nom2:real; begin read(n); for i:=1 to n do read(a[i]); min:=a[1]; nom1:=1; for i:=2 to n do if a[i]<min then begin min:=a[i]; nom1:=i; end; max:=a[1]; nom2:=1; for i:=2 to n do if a[i]>max then begin max:=a[i]; nom2:=i; end; writeln('максимальный элемент равен ',max,', его номер ',nom2,''); writeln('минимальный элемент равен ',min,', его номер ',nom1,''); end. 9) Program n1; var a:array[1..100] of real; i,n:integer; min,max,s,sr:real; begin read(n); randomize; for i:=1 to n do begin a[i]:=random(100)+1; write(a[i],' '); end; writeln; s:=0; sr:=0; for i:=1 to n do s:=s+a[i]; sr:=s/n; writeln('ср. арифм. = ',sr,''); min:=a[1]; for i:=2 to n do if a[i]<min then min:=a[i]; max:=a[1]; for i:=2 to n do if a[i]>max then max:=a[i]; writeln('максимальный элемент равен ',max,''); writeln('минимальный элемент равен ',min,''); end.
Предлагается хранить типы блоков в массиве. Каждый элемент - 2Б, количество элементов - 2^20 => всего требуется 2МБ.
При перезаписи блока и очередной переоценке необходимо учитывать типы данных в блоке до перезаписи (T0), после перезаписи (T1) и в соседних блоках (TL, TR).
Если T0 = T1, то количество кусков данных не изменяется, т.е. W[i+1] = W[i] TL = T0 = TR <> T1 -> W[i+1] = W[i] + 2 TL = T1 = TR <> T0 -> W[i+1] = W[i] - 2 TL = TR, T0 <> TL, T1 <> TL -> W[i+1] = W[i]
Если все четыре типа не совпадают, то W[i+1] = W[i] Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.
var n,i:integer;
t:array[1..100] of real;
a,b:real;
begin
readln(n);
readln(a);
readln(b);
for i:=1 to n do
begin
t[i]:=(b-a)/n;
write(t[i],' ');
end;
end.
2) Program n1;
var a:array[1..100] of integer;
n,i:integer;
k:real;
begin
read(n);
k:=0;
for i:=1 to n do
read(a[i]);
for i:=1 to n do
if a[i] mod 2 <> 0 then
k:=k+1;
writeln;
writeln('кол-во нечет. чисел равно ',k,'');
end.
6) Program n1;
var a:array[1..100] of real;
i,n:integer;
s,sr:real;
begin
read(n);
for i:=1 to n do
read(a[i]);
s:=0;
sr:=0;
for i:=1 to n do
s:=s+a[i];
sr:=s/n;
writeln('сред. арифметическое равно ',sr,'');
end.
7) Program n1;
var a:array[1..100] of real;
i,n:integer;
min,max:real;
begin
read(n);
for i:=1 to n do
read(a[i]);
min:=a[1];
for i:=2 to n do
if a[i]<min then
min:=a[i];
max:=a[1];
for i:=2 to n do
if a[i]>max then
max:=a[i];
writeln('максимальный элемент равен ',max,'');
writeln('минимальный элемент равен ',min,'');
end.
8) Program n1; var a:array[1..100] of real; i,n:integer; min,max,nom1,nom2:real; begin read(n); for i:=1 to n do read(a[i]); min:=a[1]; nom1:=1; for i:=2 to n do if a[i]<min then begin min:=a[i]; nom1:=i; end; max:=a[1]; nom2:=1; for i:=2 to n do if a[i]>max then begin max:=a[i]; nom2:=i; end; writeln('максимальный элемент равен ',max,', его номер ',nom2,''); writeln('минимальный элемент равен ',min,', его номер ',nom1,''); end.
9) Program n1; var a:array[1..100] of real; i,n:integer; min,max,s,sr:real; begin read(n); randomize; for i:=1 to n do begin a[i]:=random(100)+1; write(a[i],' '); end; writeln; s:=0; sr:=0; for i:=1 to n do s:=s+a[i]; sr:=s/n; writeln('ср. арифм. = ',sr,''); min:=a[1]; for i:=2 to n do if a[i]<min then min:=a[i]; max:=a[1]; for i:=2 to n do if a[i]>max then max:=a[i]; writeln('максимальный элемент равен ',max,''); writeln('минимальный элемент равен ',min,''); end.