Загрузка данных
fun main() {
// 1. Создаем массивы на 25 стран
val countries = arrayOf(
"Россия", "Канада", "Китай", "США", "Бразилия",
"Австралия", "Индия", "Аргентина", "Казахстан", "Алжир",
"ДР Конго", "Саудовская Аравия", "Мексика", "Индонезия", "Судан",
"Ливия", "Иран", "Монголия", "Перу", "Чад",
"Нигер", "Ангола", "Мали", "ЮАР", "Колумбия"
)
// Площадь в тыс. кв. км (чтобы числа были компактнее)
val area = doubleArrayOf(
17098.0, 9985.0, 9597.0, 9834.0, 8516.0,
7692.0, 3287.0, 2780.0, 2725.0, 2382.0,
2345.0, 2150.0, 1964.0, 1905.0, 1861.0,
1760.0, 1648.0, 1564.0, 1285.0, 1284.0,
1267.0, 1247.0, 1240.0, 1221.0, 1142.0
)
// Население в млн человек
val population = doubleArrayOf(
146.0, 38.0, 1411.0, 331.0, 214.0,
25.0, 1380.0, 45.0, 19.0, 44.0,
90.0, 35.0, 126.0, 273.0, 43.0,
7.0, 84.0, 3.3, 33.0, 16.0,
24.0, 33.0, 20.0, 59.0, 51.0
)
val n = countries.size
// пункт 1: Вывод всех записей
println("--- 1. Список стран ---")
for (i in 0 until n) {
println("Страна: ${countries[i]} - Площадь: ${area[i]} тыс. кв.км - Население: ${population[i]} млн чел.")
}
// пункт 2: Плотность населения (чел/кв.км) и поиск max/min
val density = DoubleArray(n)
var maxDenseIndex = 0
var minDenseIndex = 0
for (i in 0 until n) {
// переводим млн и тыс в обычные числа: (население * 1 000 000) / (площадь * 1 000)
density[i] = (population[i] * 1000) / area[i]
if (density[i] > density[maxDenseIndex]) {
maxDenseIndex = i
}
if (density[i] < density[minDenseIndex]) {
minDenseIndex = i
}
}
println("\n--- 2. Плотность населения ---")
println("Самая густонаселенная: ${countries[maxDenseIndex]} (${density[maxDenseIndex].toInt()} чел/кв.км)")
println("Самая редконаселенная: ${countries[minDenseIndex]} (${density[minDenseIndex].toInt()} чел/кв.км)")
// пункт 3: Общее население и страны с >50% населения
var totalPopulation = 0.0
for (i in 0 until n) {
totalPopulation += population[i]
}
println("\n--- 3. Население мира ---")
println("Общее население списка: $totalPopulation млн чел.")
// Ищем крупные страны с наибольшим населением
val used = BooleanArray(n)
var sumPop = 0.0
var count50 = 0
print("Страны, составляющие более 50% населения: ")
while (sumPop <= totalPopulation / 2) {
var maxIndex = -1
for (i in 0 until n) {
if (!used[i] && (maxIndex == -1 || population[i] > population[maxIndex])) {
maxIndex = i
}
}
used[maxIndex] = true
sumPop += population[maxIndex]
count50++
print("${countries[maxIndex]}; ")
}
println("\nКоличество таких стран: $count50")
// пункт 4: Во сколько самая маленькая страна меньше самой большой
var maxAreaIndex = 0
var minAreaIndex = 0
for (i in 0 until n) {
if (area[i] > area[maxAreaIndex]) maxAreaIndex = i
if (area[i] < area[minAreaIndex]) minAreaIndex = i
}
val areaRatio = area[maxAreaIndex] / area[minAreaIndex]
println("\n--- 4. Сравнение площадей ---")
println("Самая маленькая страна (${countries[minAreaIndex]}) меньше самой большой (${countries[maxAreaIndex]}) в ${areaRatio.toInt()} раз(а).")
// пункт 5: Средняя плотность населения и выводы
var totalArea = 0.0
for (i in 0 until n) {
totalArea += area[i]
}
val avgDensity = (totalPopulation * 1000) / totalArea
var aboveAvgCount = 0
var belowAvgCount = 0
for (i in 0 until n) {
if (density[i] >= avgDensity) {
aboveAvgCount++
} else {
belowAvgCount++
}
}
println("\n--- 5. Выводы по средней плотности ---")
println("Средняя плотность: ${avgDensity.toInt()} чел/кв.км")
println("Стран с плотностью выше средней: $aboveAvgCount")
println("Стран с плотностью ниже средней: $belowAvgCount")
}