Задание 12 Параграф 2.2 ГДЗ Босова 9 класс 2017 (Информатика)
Рассмотрим вариант решения задания из учебника Босова 9 класс, Бином: 12. Занесите информацию о десяти европейских странах в массивы n (название страны), k (численность населения), s (площадь страны). Напишите программу, выводящую названия стран в порядке возрастания плотности их населения. *Цитирирование задания со ссылкой на учебник производится исключительно в учебных целях для лучшего понимания разбора решения задания. 9 bosova9 2-2/12 938
Нужно вычислить плотность населения для каждой страны по формуле $$p=\frac{k}{s}$$, а затем расположить страны по возрастанию полученных значений.
По данным из условия получаем такие плотности:
| Страна | $$k$$ | $$s$$ | $$p=\frac{k}{s}$$ |
|---|---|---|---|
| Норвегия | 4,2 | 385 | 0,0109 |
| Эстония | 1,6 | 45,1 | 0,0355 |
| Беларусь | 9,0 | 181,9 | 0,0496 |
| Литва | 3,7 | 65,2 | 0,0567 |
| Болгария | 8,0 | 90,7 | 0,0883 |
| Франция | 57,5 | 561,8 | 0,1024 |
| Польша | 38,0 | 313,0 | 0,1214 |
| Италия | 56,5 | 301,2 | 0,1909 |
| Германия | 80,0 | 356,0 | 0,2247 |
| Великобритания | 56,6 | 244,1 | 0,2823 |
После сортировки по возрастанию плотности получаем порядок стран:
- Норвегия
- Эстония
- Беларусь
- Литва
- Болгария
- Франция
- Польша
- Италия
- Германия
- Великобритания
program kks;
const
coint = 10;
k: array[1..coint] of real = (4.2, 1.6, 9.0, 3.7, 8.0, 57.5, 38.0, 56.5, 80.0, 56.6);
s: array[1..coint] of real = (385, 45.1, 181.9, 65.2, 90.7, 561.8, 313.0, 301.2, 356.0, 244.1);
ni: array[1..coint] of string = (‘Норвегия’, ‘Эстония’, ‘Беларусь’, ‘Литва’, ‘Болгария’, ‘Франция’, ‘Польша’, ‘Италия’, ‘Германия’, ‘Великобритания’);
var
n: array[1..coint] of string;
p: array[1..coint] of real;
px: real;
nx: string;
i, ix, j: integer;
begin
for i := 1 to coint do
n[i] := ni[i];for i := 1 to coint do
p[i] := k[i] / s[i];for i := 1 to coint — 1 do
begin
ix := i;
for j := i + 1 to coint do
if p[j] < p[ix] then
ix := j;
px := p[i];
nx := n[i];
p[i] := p[ix];
n[i] := n[ix];
p[ix] := px;
n[ix] := nx;
end;for i := 1 to coint do
writeln(n[i]:14, ‘ ‘, p[i]:8:4);
end.
Ответ: Норвегия, Эстония, Беларусь, Литва, Болгария, Франция, Польша, Италия, Германия, Великобритания.