Program qw; uses crt; Type Atlas=Record country,capital:string; area,people:real; end; ps=File of atlas; Var f:ps; z,t:atlas; Begin assign(f,'1.dat'); rewrite(f); z.country:='Латвия'; z.area:=67.7; z.people:=2.6; z.capital:='Рига'; write(f,z); z.country:='Литва'; z.area:=65.2; z.people:=3.4; z.capital:='Вильнюс'; write(f,z); z.country:='Польша'; z.area:=313; z.people:=34.8; z.capital:='Варшава'; write(f,z); z.country:='Украина'; z.area:=603.7; z.people:=50; z.capital:='Киев'; write(f,z); z.country:='Россия'; z.area:=17075.4; z.people:=139; z.capital:='Москва'; write(f,z); Close(f); assign(f,'1.dat'); reset(f); read(f,t); while not(eof(f)) do begin read(f,z); if t.people/t.area < z.people/z.area then t:=z; end; close(f); writeln('Cтранa с наибольшей плотностью населения:'); writeln(t.country,' (плотность населения равна ',t.people/t.area:9:6,' млн на кв.км)'); end.
Тебе нужно привести всё к двойке. 4 это 2 в квадрате, значит 2 в 510 + 2 в 255 - 2 в 8 (это будет 256, берем больше чтобы заполнить всё число, а теперь вычитаем то, что нам не надо) 2 в нулевой (будет 1, т.е 256-1=255) 2 в 510 + 2 в 255 - 2 в 8 +2 в 0
бывает так, что наши "квадраты" стоят не в порядке убывания, тогда расставляем их в порядке убывания. например если бы было 255 +510 -8 мы бы сделали 510+255-8
ну а теперь считаем единицы: первая цифра всегда считается как единица, минус мы считаем 255 - 8 = 247 единиц и одна единица в конце 2в 0 итого получаем первое число всегда единица 1 + минус получился 247 + единица в конце +1 = 249
Program qw;
uses crt;
Type
Atlas=Record
country,capital:string;
area,people:real;
end;
ps=File of atlas;
Var f:ps;
z,t:atlas;
Begin
assign(f,'1.dat');
rewrite(f);
z.country:='Латвия'; z.area:=67.7;
z.people:=2.6; z.capital:='Рига';
write(f,z);
z.country:='Литва'; z.area:=65.2;
z.people:=3.4; z.capital:='Вильнюс';
write(f,z);
z.country:='Польша'; z.area:=313;
z.people:=34.8; z.capital:='Варшава';
write(f,z);
z.country:='Украина'; z.area:=603.7;
z.people:=50; z.capital:='Киев';
write(f,z);
z.country:='Россия'; z.area:=17075.4;
z.people:=139; z.capital:='Москва';
write(f,z);
Close(f);
assign(f,'1.dat');
reset(f);
read(f,t);
while not(eof(f)) do
begin
read(f,z);
if t.people/t.area < z.people/z.area then t:=z;
end;
close(f);
writeln('Cтранa с наибольшей плотностью населения:');
writeln(t.country,' (плотность населения равна ',t.people/t.area:9:6,' млн на кв.км)');
end.
4 это 2 в квадрате, значит 2 в 510 + 2 в 255 - 2 в 8 (это будет 256, берем больше чтобы заполнить всё число, а теперь вычитаем то, что нам не надо) 2 в нулевой (будет 1, т.е 256-1=255)
2 в 510 + 2 в 255 - 2 в 8 +2 в 0
бывает так, что наши "квадраты" стоят не в порядке убывания, тогда расставляем их в порядке убывания. например если бы было 255 +510 -8 мы бы сделали 510+255-8
ну а теперь считаем единицы: первая цифра всегда считается как единица, минус мы считаем
255 - 8 = 247 единиц
и одна единица в конце 2в 0
итого получаем первое число всегда единица 1 +
минус получился 247 +
единица в конце +1 = 249