Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 41

Напишите программу, которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего.

14.11.2018, 22:32. Показов 2370. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите написать программу со считыванием данных из prompt() и выводом в alert().

На автозаправочных станциях (АЗС) продается бензин с маркировкой 92, 95 и 98. В городе N был проведен мониторинг цены бензина на различных АЗС.

Напишите эффективную по времени работы и по используемой памяти программу, которая будет определять для каждого вида бензина, сколько АЗС продают его дешевле всего.

На вход программе в первой строке подается число данных о стоимости бензина. В каждой из последующих N строк находится информация в следующем формате:
Code
1
<Компания> <Улица> <Марка> <Цена>
Где
  • <Компания> – строка, состоящая не более, чем из 20 символов без пробелов,
  • <Улица> – строка, состоящая не более, чем из 20 символов без пробелов,
  • <Марка> – одно из чисел – 92, 95 или 98,
  • <Цена> – целое число в диапазоне от 1000 до 3000, обозначающее стоимость одного литра бензина в копейках.
<Компания> и <Улица>, <Улица> и <Марка>, а также <Марка> и <цена> разделены ровно одним пробелом.

Пример входной строки:
Code
1
Синойл Цветочная 95 2250
Программа должна выводить через пробел 3 числа – количество АЗС, продающих дешевле всего 92-й, 95-й и 98-й бензин соответственно. Если бензин какой-то марки нигде не продавался, то следует вывести 0.

Пример выходных данных:
Code
1
12 1 0
1
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.11.2018, 22:32
Ответы с готовыми решениями:

Определить для каждого вида бензина, сколько АЗС продают его дешевле всего
Напишите программу на Паскале! Решение есть, но оно некорреткно и программа работает не правильно! На автозаправочных станциях (АЗС)...

Напишите программу, которая будет по заданному имени хоста определять его IP адреса и его псевдонимы
Доброго времени суток. Не могли бы вы помочь. &quot;Напишите программу, которая будет по заданному имени хоста определять его IP адреса и его...

Напишите программу, которая по паролю будет определять
Не могли бы вы помочь с решением? Заранее спасибо!!! 1. Напишите программу, которая по паролю будет определять степень доступности...

9
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
14.11.2018, 23:25
Получается, все названия без пробелов...

Цитата Сообщение от RHerbert Посмотреть сообщение
определять для каждого вида бензина, сколько АЗС продают его дешевле всего.
Это условие непонятно. Дешевле всего - дешевле чего?
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
15.11.2018, 00:05
RHerbert, а что именно вы планируете "подавать на вход" через модальное окно prompt (), если все данные о компаниях, улицах, марках и стоимости у вас каким-то образом уже "поданы на вход"?
и кстати, объясните, каким именно образом они "поданы"?
понимаю, что если бы у компьютера были уши, вы смогли бы нашептать в них содержимое этих N строк... но увы, ушей у компьютера нет

вау, я догадался: неужели таблицу из N строк и трёх столбцов вы хотите получать от юзера через prompt ()?
знаете, вас нужно привлечь к суду за негуманное отношение к пользователям (за издевательство над ними в извращённой форме)
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
15.11.2018, 00:41
Лучший ответ Сообщение было отмечено RHerbert как решение

Решение

Цитата Сообщение от amr-now Посмотреть сообщение
Это условие непонятно. Дешевле всего - дешевле чего?
Это задача из ЕГЭ, имеется ввиду сколько компаний продают бензин по самой низкой цене. Если цены на разных заправках 100 100 120 120 140, то ответ 2, поскольку по самой низкой цене 100 бензин продают две компании.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
var data = {'92': {cnt: 0}, '95': {cnt: 0}, '98': {cnt: 0}};
var dataCount = +prompt('Введите кол-во строк');
for(var i = 1; i <= dataCount; i++) {
    var dataRow = prompt('Введите данные строки № ' + i);
    if(!dataRow) break;
    
    dataRow = dataRow.split(' ');
    var petrolType = dataRow[2];
    var price = +dataRow[3];
    
    var minPrice = data[petrolType].min;
    
    if(minPrice === undefined || price < minPrice) {
        data[petrolType].min = price;
        data[petrolType].cnt = 1;
    } else if (price === minPrice){
        data[petrolType].cnt += 1;    
    }
}
 
if(i <= dataCount) {
    alert('Не введены все заявленные строки');
} else {
    alert('' + data['92'].cnt + ' ' + data['95'].cnt + ' ' + data['98'].cnt);
}
2
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 41
15.11.2018, 15:21  [ТС]
А можете прокомментировать строчки:
- var data = {'92': {cnt: 0}, '95': {cnt: 0}, '98': {cnt: 0}} -что означает {cnt: 0}?
- if(minPrice === undefined || price < minPrice)
- else if (price === minPrice){
data[petrolType].cnt += 1;
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
15.11.2018, 15:39
RHerbert, Количество мест с минимальной ценой, когда мы нашли новую минимальную цену, то присваиваем счетчику 1

JavaScript
1
data[petrolType].cnt = 1;
когда нашли цену равную минимальной, увеличиваем счетчик на 1

JavaScript
1
data[petrolType].cnt += 1;
1
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
15.11.2018, 15:43
{cnt: 0} - объект, в котором свойство "Количество" изначально равно нулю.
Далее идёт поиск минимальной цены.

Вообще, весь этот алгоритм жутко нестандартный и направлен на максимальное выжимание "эффективности" из искусственных ограничений задачи.
В теории обработки реляционных таблиц в SQL результат мы получим абсолютно другим алгоритмом.
1
1 / 1 / 0
Регистрация: 23.09.2016
Сообщений: 41
15.11.2018, 15:59  [ТС]
Спасибо!
0
Эксперт JS
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
15.11.2018, 16:00
RHerbert, вам тоже спасибо. Сейчас сравниваю как раз разные алгоритмы решения этой задачи в SQL
0
392 / 294 / 121
Регистрация: 26.08.2016
Сообщений: 902
15.11.2018, 16:12
amr-now,

В таблице с упорядоченной ценой самое быстрое - выборка с ORDER BY price, она потребует максимум одного прохода по таблице.

В таблице без упорядоченной цены либо мой алгоритм, потребует одного прохода, либо отдаем все на откуп SQL и делаем запрос
1) группировка по типу бензина с МАКС(цена)
2) INNER JOIN с той же таблицей по типу бензина и цене и COUNT(*)

потребует двух проходов от SQL

сортировка в этом случае будет неоправданно затратной
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.11.2018, 16:12
Помогаю со студенческими работами здесь

Напишите программу, которая будет определять размер для данных (int, char, long, double, short, unsigned, float) и выводить информацию
1. Какие типы данных лучше всего использовать для хранения следующих значений: а) возраст человека в текущем году; б) вес человека в...

Напишите программу, которая запрашивает расход бензина в европейском стиле (количество литров на 100 км) и преобразует его в стиль, принятый в США —
Добрый вечер! Решение написал такое: #include &lt;iostream&gt; using namespace std; int main() {

Сколько АЗС продают самый дешевый бензин
На (АЗС) продается бензин с маркировкой 92, 95 и 98. Напишите эффективную, которая будет определять для каждого вида бензина, сколько АЗС...

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

Требуется написать программу, которая для заданного количества коробок N будет определять число возможных «хороших» стоп
Драгоценные камни Гномы, жители страны Мории, добывают драгоценные камни трех видов — поделочные (вид A), полудрагоценные (вид B) и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru