1.5. Функции в языках объективно-ориентированного и процедурного программирования
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 1 (часть 1)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 1 (часть 2)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 2 (часть 1)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 2 (часть 2)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 3 (часть 1)
Лабораторная работа № 11. Шаг 2. Решаем задачи на Паскале. Задача 3 (часть 2)
Шаг 2. Решаем задачи на Паскале
Задача 2. (Из материалов ЕГЭ.) На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе M был проведен мониторинг цены бензина на различных АЗС. Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего. На вход программе в первой строке подается число N данных о стоимости бензина. В каждой из последующих N строк находится информация в формате <Компания> <Улица> <Марка> <Цена>, где:
• <Компания> – строка, состоящая не более чем из 20 символов без пробелов;
• <Улица> – строка, состоящая не более чем из 20 символов без пробелов;
• <Марка> – одно из чисел: 92, 95 или 98;
• <Цена> – целое число в диапазоне от 1000 до 5000, обозначающее стоимость одного литра бензина в копейках.
<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <Цена> разделены ровно одним пробелом.
Пример входной строки:
Синойл Цветочная 95 2250
Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно.
Если бензин какой-то марки нигде не продавался, то следует вывести 0.
Пример выходных данных:
12 1 0
Решите задачу поэтапно, отвечая на вопросы и записывая основные блоки программы.
Фраза «Напишите эффективную по времени работы и по используемой памяти программу» означает, что в программе не нужно запоминать всю информацию в массиве. Эффективней обрабатывать данные по мере их поступления, запоминая только необходимую на данный момент информацию и каждый раз обновляя ее.
1. По условию задачи, входная строка имеет вид:
<Компания> <Улица> <Марка> <Цена>
Какая часть вводимой информации является ненужной для решения задачи?
____________________________________________________________________
2. Как убрать ненужную информацию?
____________________________________________________________________
____________________________________________________________________
Напишите блок программы, который убирает из строки ненужную информацию:
Что осталось в строке?
____________________________________________________________________
____________________________________________________________________
3. На какие две части нужно разбить оставшуюся информацию и какие преобразования нужно провести?
____________________________________________________________________
____________________________________________________________________
Напишите блок программы, который разбивает оставшуюся информацию на нужные части и выполняет необходимые преобразования:
4. Какие переменные, помимо отражающих текущую марку бензина и ее цену, вам потребуются для обработки в цикле всей информации и вывода количества АЗС, продающих бензин каждой марки по минимальной цене?
Обозначение и назначение переменных:
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________
____________________________________________________________________