М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Malifisen
Malifisen
18.09.2021 05:30 •  Информатика

3. Дано действительное число N (N> 1). 1 + 1/2 +… + 1/K Создайте программу, которая вычисляет минимальное количество слагаемых K, которое больше или равно числу N и суммe 1 + 1/2 +… + 1 / K.

👇
Открыть все ответы
Ответ:
dodmitry
dodmitry
18.09.2021
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.
4,6(88 оценок)
Ответ:
Предлагается хранить типы блоков в массиве. Каждый элемент - 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]

Далее рассмотрим случаи, когда TL <> TR
(TL = T0, TR = T1) или (TR = T0, TL = T1) -> W[i+1] = W[i]
(TL = T0, TR <> T1) или (TR = T0, TL <> T1) -> W[i+1] = W[i] + 1
(TL = T1, TR <> T0) или (TR = T1, TL <> T0) - > W[i+1] = W[i] - 1

Если все четыре типа не совпадают, то W[i+1] = W[i]
Если перезаписывается блок с адресом 0, считать, что тип TL не совпадает ни с одним из трех других.Аналогично при перезаписи блока с адресом , но для TR.

Вроде все?
4,6(61 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ