Номер §1.4 № 12

ГДЗ по информатике 9 класс, Босова 2023, страница 55

§. № Сортировка стран по плотности населения

Занесите информацию о десяти странах мира в массивы NAME (название страны), K (численность населения), S (площадь страны). Напишите программу, выводящую названия стран в порядке возрастания плотности их населения.

Решение

Плотность населения страны равна численности населения, делённой на площадь: человек на км². Для каждой страны значения NAME[i], K[i], S[i] связаны общим индексом. Если менять порядок стран, нужно переставлять все три значения вместе: иначе название окажется рядом с данными другой страны.

Пример заполнения массивов округлёнными данными. Население здесь записано в миллионах человек, площадь — в тысячах км²; при таком вводе плотность равна человек на км².

NAME K, млн человек S, тыс. км²
Австралия ,
Бразилия
Канада
Россия
Китай
Индия
США
Германия
Франция
Япония

Программа читает десять строк в виде «название», затем «население площадь» (при вводе вещественных чисел Паскаль использует точку). После чтения двух вложенных циклов сравниваются соседние по выбору пары. Если плотность страны j меньше плотности страны i, меняем местами элементы во всех трёх массивах. Площадь должна быть положительной, чтобы деление было определено.

program CountryDensity;
var
  NAME: array[..] of string;
  K, S: array[..] of real;
  i, j: integer;
  tempName: string;
  tempNumber: real;
begin
  for i :=  to  do
  begin
    write('Страна ', i, ': ');
    readln(NAME[i]);
    repeat
      write('Население (млн), площадь (тыс. км): ');
      readln(K[i], S[i]);
    until S[i] > ;
  end;
  for i :=  to  do
    for j := i +  to  do
      if K[j] / S[j] < K[i] / S[i] then
      begin
        tempName := NAME[i]; NAME[i] := NAME[j];
        NAME[j] := tempName;
        tempNumber := K[i]; K[i] := K[j];
        K[j] := tempNumber;
        tempNumber := S[i]; S[i] := S[j];
        S[j] := tempNumber;
      end;
  for i :=  to  do
    writeln(NAME[i], ': ',  * K[i] / S[i]::,
            ' чел./км');
end.

Покажем отдельные вычисления для проверки порядка: Австралия — ; Канада — ; Россия — ; Бразилия — ; США — . Аналогично Франция — ,; Китай — ,; Германия — ,; Япония — ,; Индия — , человека на км². Сравнение этих чисел даёт порядок вывода.

Ответ

Для данных примера: Австралия, Канада, Россия, Бразилия, США, Франция, Китай, Германия, Япония, Индия — по возрастанию плотности населения.

Помогло?

Нет твоего задания?Сфоткай, и ДЗмэн решит за пару секунд.

Решить по фото