Перейти к основному содержимому

Задание №9

Варианты заданий:

  1. Даны два массива:

    string states[] = { "Wyoming", "Colorado", "Nevada", "Montana", "Arizona", "Idaho"};
    int pops[] = { 470, 2890, 800, 787, 2718, 944 };

    На основе этих массивов создайте отображение, в котором ключ – это название американского штата, а значение – количество жителей этого штата в тысячах из массива pops. Напишите программу: пользователь вводит название штата, а в консоль выводится количество жителей этого штата. Выведите всё содержимое отображения в консоль с помощью функции.

  2. В отображении находятся записи о соответствии номеров телефона (7 цифр) и фамилии. Например:

    5671234 Ivanov
    3214567 Petrov
    9871234 Sidorov

    В массиве находятся номера телефонов. Например:

    string mas[4] = { "1112233", "9871234", "5671234", "5556688" };

    Осуществить поиск фамилий из заданного отображения, соответствующих телефонам из массива mas. Найденные фамилии вывести на консоль. В данном примере:

    Sidorov
    Ivanov
  3. В первом отображении находится информация о зарплате сотрудников. Например:

    Ivanov 45500
    Petrov 37000
    Sidorov 245000
    Petrenko 65000
    Tovalds 91200
    Popov 54600
    Andrienko 35000

    Во втором отображении принадлежность сотрудников к отделам предприятия. Например:

    Ivanov Research
    Petrov Research
    Sidorov Management
    Petrenko Management
    Tovalds Development
    Popov Research
    Andrienko Sales

    Необходимо вычислить общий фонд зарплаты и отдельно по отделам. Результат вывести на экран. В данном случае (возможны опечатки):

    Research 137100
    Management 310000
    Development 91200
    Sales 35000
    Overall 573300

    Примечание: Для решения этой задачи необходимо завести ассоциативный массив (std::map), где ключом будет название отдела (строка), а значением – текущая сумма зарплат. В цикле перебирать пары первого отображения, необходимо находить по ключу отдел во втором отображении и прибавлять к имеющейся там (в ассоциативном массиве) сумме только что считанную.

  4. Создайте ассоциативный контейнер для хранения имен абонентов и их телефонных номеров. Имена и номера телефонов должны вводиться пользователем. После окончания ввода распечатать имена и телефонные номера абонентов в виде строк: имя абонента – его номер. Выполнить поиск номера по имени абонента, которое введет пользователь. Удалите найденный номер и имя абонента из отображения. Снова распечатайте отображение. Переделать программу: печатать отображение с помощью функции.

  5. Разработайте программу, в которой используется отображение, которое содержит перечень городов и расстояние каждого города от Москвы:

    'Минск': 713,
    'Киев': 856,
    'Санкт-Петербург': 786,
    'Астана': 2748,
    'Нижний Новгород': 421,
    'Владивосток': 9141

    Найти в отображении ближайший город к Москве и самый дальний и выведите в консоль с пояснением. Распечатать содержимое отображения в консоли, используя функцию.

  6. Дано отображение с данными о количестве учащихся в разных классах школы:

    {'1а': 21, '1б':20, '2':25, '3а': 20, '3б': 23, '4а':25, '4б':25, '5а': 26, '5б':25, '6a':19, '6б': 18, '7а':26, '7б':25, '8':25, '9':17, '10': 15, '11’: 14}

    В программе определить количества учащихся в школе. Распечатать содержимое отображения в консоли, используя функцию.

  7. Необходимо объединить два прайс-листа (задаются в виде отображений) с тем условием, что если наименование товара присутствует в обоих прайсах, то в итоговый прайс помещается тот, чья цена выше.

    m1 = {'яблоки': 100, 'груши': 13, 'арбузы': 20, 'картофель': 15, 'алыча': 22}
    m2 = {'яблоки': 150,'груши': 18,'ананасы': 45, 'апельсины': 30, 'киви': 35}

    Распечатать содержимое отображений в консоли, используя функцию.

  8. У вас есть выгрузка оставшегося количества фруктов из базы данных магазинов. Каждое отображение - магазин. Какие-то фрукты есть в разных магазинах, какие-то только в одном. Нужно сделать отображение, в котором ключами будут фрукты, а их количество - значениями. Если фрукт есть в наличии в нескольких магазинах - сложите эти значения.

    Shop1 = { 'банан': 400, 'яблоко': 300, ... }
    Shop2 = { 'банан': 750, 'груша': 20, 'яблоко': 150 ... }
  9. Дано отображение, содержащее сведения о количестве изделий, собранных сборщиками цеха за неделю:

    'Иванов': 123, 'Петров': 89, 'Сидоров': 108, 'Краснов': 132, 'Демин': 99, 'Черепанов': 111

    Каждая пара содержит поля: фамилия сборщика - количество изделий, собранных им ежедневно в течение недели. Количество записей - произвольное. Сколько всего собрали сборщики цеха за неделю. Распечатать содержимое отображений в консоли, используя функцию.

  10. Дано отображение с данными о количестве учащихся в разных классах школы:

    {'1а': 21, '1б':20, '2':25, '3а': 20, '3б': 23, '4а':25, '4б':25, '5а': 26, '5б':25, '6a':19, '6б': 18, '7а':26, '7б':25, '8':25, '9':17, '10': 15, '11’: 14}

    В программе пользователь вводит год обучения школьников, а консоль выводится количество учащихся заданного года обучения, например:

    Год обучения: 1
    Количество: 41

    Распечатать содержимое отображения в консоли, используя функцию.