Видео ролики бесплатно онлайн

Смотреть 365 видео

Официальный сайт travelspo 24/7/365

Смотреть видео бесплатно

WeLinux.ru

24.05.09 13:19nvbn

Есть вопрос!Сортировка в bash

В файле in содержатся строки вида %имя% %фамилия% %бал1% %бал2% %бал3% %бал4%, пример:
1
2
3
Вася Пупкин 4 3 2 1
Линус Торвальдс 1 2 3 4
Ричард Столлман 2 3 2 1

Нужно отсортировать по убыванию по сумме баллов и вывести %имя% %фамилия% %сумма баллов%
Всё нужно сделать 1 строкой

Решение от aonick и от xcr

Оригинальное условие:
На городской олимпиаде по информатике участникам было предложено выполнить 4 задания, каждое из которых оценивалось по 100 бальной системе. Известно что общее количество участников не превосходит 250 человек. Входной файл имеет вид:
<Фамилия> <Имя> <Баллы>
Пример файла:
Петрова Ольга 25 78 26 94
Калиниченко Иван 14 49 15 0
Напишите программу, которая выведет участников с суммой их баллов в порядке убывания

Концовку немного урезал =) Так же есть вариации:
  • ...фамилию и имя участника, набравшего максимальное число баллов...
  • ...трёх лучших участников...
  • ..не набравших нужное количество баллов...
И в таком духе, в решении приведены ~50 строчники на турбо паскале
Задача уровня С4 на егэ по информатике =)

Думаю проверяющие не поймут решения на bash, а жаль
+7
anjolio24.05.09 14:24# +2
Эх.. Сейчас в винде :(

  1. awk'ом вытащить 4 циферки, сложить их и записать в файл получившиеся строки
  2. awk'ом вытаскиваем получившуюся сумму и ставим её на первое место
  3. sort
  4. awk'ом обратно кидаем циферку на третье место


Как такая идея?
xcr24.05.09 14:31# +1
Для каждой строчки: считываем, суммируем чиселки, выводим Имя, Фамилию, сумму.
Вывод этого цикла направляем в sort -r -g -k 3
Получаем профит. Точных деталей я не помню

Алсо, если не ошибаюсь, любой скрипт можно написать в одну строчку.
xcr24.05.09 14:49# +4
cat in | while read i; do j=($i); echo ${j[0]} ${j[1]} $((${j[2]}+${j[3]}+${j[4]}+${j[5]})); done | sort -r -g -k 3

Вот как-то так. Как проще - не знаю.
nvbn24.05.09 17:26# +2
Спасибо, вы решили задачу С4 из егэ по информатике =)
xcr24.05.09 17:28# +2
Чтооаа?
Это шутка?
exelens24.05.09 17:30# +0
Думаю он серьёзно =)
nvbn24.05.09 17:48# +0
Это не шутка =)
xcr24.05.09 17:49# +0
И задача формулировалась именно про bash-скрипты? OMG!
nvbn24.05.09 17:56# +0
Нет, я просто её немного перефразировал, но суть и выполняемая ей работа не меняется, в книжечки примерно 50ти строчное решение на паскале, до этого делал похожую на bash, тоже была в 1 строчку, в этот раз времени просто не хватило)
xcr24.05.09 18:02# +0
> на паскале
> 50ти строчное
А не много ли? О_о
Алсо, на плюсах с STL намного короче выйдет.
nvbn24.05.09 18:05# +0
Там разобрано на турбо паскале и не самым оптимальным методом, но всё-равно много
aonick24.05.09 16:38# +5
awk '{A=$3+$4+$5+$6; print $1,$2,A}' in | sort -k3 -n -r -выводит на данных параметрах:
Линус Торвальдс 10
Вася Пупкин 10
Ричард Столлман 8
nvbn24.05.09 17:26# +2
Спасибо, вы решили задачу С4 из егэ по информатике =)
aonick24.05.09 17:28# +2
Ура!!! =)
predator24.05.09 18:04# +0
ты что шутишь? сейчас и вправду такие задания? когда я сдавал там нужно было только прогу на паскале написать. И что в школе уже учат скриптингу?
nvbn24.05.09 18:15# +0
nvbn24.05.09 18:15# +0
Добавил в тело поста оригинальную задачу
NucleoFag25.05.09 02:01# +0
Чота задания слабоваты =))
В ПТУ задачки?
А ты молоток! Покажешь им на баше - сотку влепят =)))))
nvbn25.05.09 05:29# +0
В ПТУ задачки?

Нет, С4, максимальное количество баллов за неё

Top блогов (все)
Топ пользователей Топ блогов
Топ пользователей Топ блогов
Top пользователей (все)
Топ пользователей Топ блогов
В сети: xT, zivot_je_cudo

Новенькие: tumick, 4zzy, flycat, evgenyl, adept
welinux.ru
Идея сайта exelens; Движок 0byte, разработчик nvbn; Дизайн - Astramak

В хорошем качестве hd видео

Онлайн видео бесплатно


Смотреть русское с разговорами видео

Online video HD

Видео скачать на телефон

Русские фильмы бесплатно

Full HD video online

Смотреть видео онлайн

Смотреть HD видео бесплатно

School смотреть онлайн