8.2. Практикум¶
Примечание
При выполнении заданий используйте заготовки решений: ->
Репозиторий.
Подробнее: см. Цикл выполнения и защиты заданий.
8.2.1. Простые текстовые файлы¶
№ 8.2.1
С клавиатуры в одной строке вводится произвольное количество вещественных чисел. Запишите их в файл, расположив каждое число на отдельной строке.
№ 8.2.2
Дан файл, полученный на выходе задачи № 8.2.1:
загрузите список чисел;
вычислите их сумму и максимум и допишите их в файл.
Выполнив программу несколько раз, убедитесь, что новые значения учитываются при подсчете.
Если файл прочитать не удается, программа должна прекратить чтение и сообщить об этом пользователю.
Примечание
Пример
Исходный файл |
Файл после обработки |
1
2
3
4
5
|
1
2
3
4
5
15
5
|
№ 8.2.3
Измените задачу № 8.2.2 так, чтобы вне зависимости от ошибок чтения файла, программа выполняла подсчет суммы и максимума.
Примечание
Пример
Исходный файл |
Файл после обработки |
1
asd
3
-
1.1
5
|
1
asd
3
-
1.1
5
9
5
|
№ 8.2.4
В файле записано стихотворение. Выведите его на экран, а также укажите, каких слов в нем больше: начинающихся на гласную или на согласную букву (регистр не учитывается)?
№ 8.2.5
Информация о занятости мест в зрительном зале кинотеатра хранится в текстовом файле:
0 0 1 1
0 0 0 1 1
1 1 0 1
где строка обозначает ряд, столбец - место (0 - свободно, 1 - занято).
Напишите программу, которая позволит пользователю увидеть количество свободных мест, а также, введя номер ряда и места, получить информацию - свободно оно или нет.
Частичное решение: № 4.2.32.
№ 8.2.6
Дан файл с результатами голосования на выборах в виде:
1 3 14 10 2 3 -1 ...
где номер (через пробел) определяет голос за партию из списка:
1. Партия №1.
2. Партия №2.
3. Партия №3.
4. Партия №4.
5. Партия №5.
-1. Испорченный бланк.
Если при чтении файла какое-либо значение не распознается (не является целым числом) или партии с таким номером не существует, считается, что бланк испорчен (-1).
Подведите итоги выборов, выведя на экран список партий в соответствии с убыванием количества полученных голосов и их процентным соотношением:
1. Партия №2 | 1111 | 58.21%
2. Партия №4 | 999 | 38.14%
...
Частичное решение: № 5.2.13.
8.2.2. Сериализация и десериализация¶
№ 8.2.7
На сайте Всемирного банка (WB) в разделе Data доступна экономическая статистика о валовом внутреннем продукте (ВВП) на душу населения в долларах США 1.
Используя подготовленный CSV-файл, реализуйте:
загрузку данных;
поиск государства по названию, а также государства с максимальным, минимальным ВВП на душу населения;
сохранение данных в новый CSV-файл с фильтром по определенному условию (например, топ-10 государств по объему ВВП на душу населения).
Совет
В исходном файле для ряда государств значения ВВП на душу населения не известны - эти государства должны быть пропущены при загрузке
№ 8.2.8
Федеральная служба государственной статистики приводит данные о заболеваемости населения по основным классам болезней 2.
Подготовленный CSV-файл содержит данные по детям (0-14 лет) и взрослым (15 лет и старше) за период 2000-2015 гг. в отношении на 1000 человек:
Класс,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,Возраст
болезни глаза и его придаточного аппарата,"31,9","32,4","33,5",33,"34,2","33,6","35,7","34,8",34,"33,5",33,"33,3","35,2",35,"34,7","33,3",Взрослые
болезни глаза и его придаточного аппарата,"4,67","4,81","5,32","5,13","5,43","5,58","5,5","5,68","5,7","5,68","5,81","5,87","6,12","6,03",6,"5,91",Дети
...
Предоставив пользователю выбрать 2 различных года для сравнения, сформируйте JSON-файл, который содержит абсолютные значения (для второго года) и изменения по количеству заболеваний в процентах (округление до 2-х знаков после запятой). Значения должны быть сгруппированы по категории Возраст
и идти по убыванию.
Фрагмент выходного файла для 2014 и 2015 гг.:
{
"Второй год": {
"Взрослые": [
{
"болезни органов дыхания": 337.9
},
{
"травмы, отравления и некоторые другие последствия воздействия внешних причин": 90.4
},
{
"осложнения беременности, родов и послеродового периода": 73.6
},
...
],
"Дети": [
{
"болезни органов дыхания": 115.76
},
{
"травмы, отравления и некоторые другие последствия воздействия внешних причин": 10.43
},
{
"болезни кожи и подкожной клетчатки": 7.64
},
...
]
},
"Изменения": {
"Взрослые": [
{
"болезни эндокринной системы, расстройства питания и нарушения обмена веществ": 18.75
},
{
"болезни системы кровообращения": 8.33
},
{
"болезни органов дыхания": 1.35
}
...
],
"Дети": [
{
"травмы, отравления и некоторые другие последствия воздействия внешних причин": 0.19
},
{
"новообразования": 0.0
},
{
"болезни органов дыхания": -1.1
}
...
]
}
}
...
№ 8.2.9
На официальном сайте международной федерации хоккея на льду доступна информация об участниках прошедших чемпионатов мира (ЧМ).
Используя подготовленный JSON-файл с данными игроков сборной России на ЧМ 2016 г. 3:
[
{
"номер":13,
"фамилия":"Дацюк",
"имя":"Павел",
"амплуа":"Нападающий",
"рука":"Левая",
"дата_рождения":"1978-07-20",
"клуб":"Детройт Ред Уингз",
"клуб_страна":"США",
"возраст":37.782340862423,
"рост":180,
"вес":88
},
...
реализуйте:
загрузку данных;
сохранение в CSV-файл группировки по выбранному параметру в формате (на примере имени):
"Имя","Количество" "Сергей","5" "Александр","2" "Алексей","2" ...
№ 8.2.10
Дан телефонный справочник в формате JSON:
[
{
"имя":"...",
"телефоны":[
{
"описание":"...",
"номер":"..."
},
{
"описание":"...",
"номер":"..."
}
]
},
...
Программа должна позволять (предоставлять функции):
загружать информацию из справочника;
выполнять поиск контактов по номеру телефона;
выполнять поиск контактов по имени;
добавлять контакт;
удалять контакты по имени;
удалять номер телефона из контактов;
сохранять справочник в файл.
- 1
GDP per capita (current US$) | Data. URL: https://data.worldbank.org/indicator/NY.GDP.PCAP.CD.
- 2
Здравоохранение::Федеральная служба государственной статистики. URL: http://www.gks.ru/wps/wcm/connect/rosstat_main/rosstat/ru/statistics/population/healthcare/
- 3
Ice hockey players at IIHF world championships, 2001-2016. The dataset contains 6292 records of 3333 players“ height and weight parameters at 16 world championships. URL: https://figshare.com/articles/Height_of_ice_hockey_players/3394735/2