Задание 12 Параграф 1.4 ГДЗ Босова 9 класс 2023 (Информатика)
Сортировка массива плотности населения производится методом «пузырька». Сортировка происходит по двум массивам: плотности населения и по данным этой сортировки меняется соответственно и массив названий стран.
const
N = 10;
var
name: array [1..N] of string = (‘Китай’, ‘Индия’, ‘Россия’, ‘Бразилия’, ‘Индонезия’, ‘Нигерия’, ‘Пакистан’, ‘США’, ‘Мексика’, ‘Бангладеш’);
k: array [1..N] of longint = (1411750000, 1414843757, 146424729, 215000000, 277329163, 214568727, 222903998, 301693000, 129150971, 165775000);//численность
s: array[1..N] of longint = (9598960, 3287590, 17075000, 8511970, 1919440, 1267000, 803940, 9363000, 1972550, 130170); // площадь
plt: array[1..N] of real; // плотность начеления
i, j: integer;
c: real;
st: string;
begin
for i := 1 to 10 do
plt[i] := k[i] / s[i];//формирование массива плотности населения
for i := 1 to 10 do //сортировка по плотности
for j := i + 1 to 10 do
if plt[i] > plt[j] then
begin
c := plt[j]; plt[j] := plt[i]; plt[i] := c;
st := name[j]; name[j] := name[i]; name[i] := st;
end;
for i := 1 to 10 do writeln(name[i]:10, ‘ ‘, plt[i]:15:2);
end.
Окно вывода:
Россия 8.58
Бразилия 25.26
США 32.22
Мексика 65.47
Индонезия 144.48
Китай 147.07
Нигерия 169.35
Пакистан 277.26
Индия 430.36
Бангладеш 1273.53
Сначала для каждой страны находим плотность населения по формуле $$\rho = \frac{K}{S}$$, где $$K$$ — численность населения, $$S$$ — площадь страны.
Затем сортируем массив плотностей по возрастанию методом «пузырька». При перестановке элементов массива плотностей одновременно меняем местами и названия стран в массиве name.
const
N = 10;
var
name: array [1..N] of string = (‘Китай’, ‘Индия’, ‘Россия’, ‘Бразилия’, ‘Индонезия’, ‘Нигерия’, ‘Пакистан’, ‘США’, ‘Мексика’, ‘Бангладеш’);
k: array [1..N] of longint = (1411750000, 1414843757, 146424729, 215000000, 277329163, 214568727, 222903998, 301693000, 129150971, 165775000);
s: array [1..N] of longint = (9598960, 3287590, 17075000, 8511970, 1919440, 1267000, 803940, 9363000, 1972550, 130170);
plt: array [1..N] of real;
i, j: integer;
c: real;
st: string;
begin
for i := 1 to N do
plt[i] := k[i] / s[i];for i := 1 to N do
for j := i + 1 to N do
if plt[i] > plt[j] then
begin
c := plt[j]; plt[j] := plt[i]; plt[i] := c;
st := name[j]; name[j] := name[i]; name[i] := st;
end;for i := 1 to N do
writeln(name[i]:10, ‘ ‘, plt[i]:15:2);
end.
После сортировки страны выводятся в порядке возрастания плотности населения:
Россия — 8.58
Бразилия — 25.26
США — 32.22
Мексика — 65.47
Индонезия — 144.48
Китай — 147.07
Нигерия — 169.35
Пакистан — 277.26
Индия — 430.36
Бангладеш — 1273.53
Ответ
Россия, Бразилия, США, Мексика, Индонезия, Китай, Нигерия, Пакистан, Индия, Бангладеш.