Сортировка, Помогите plz |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Сортировка, Помогите plz |
Dima1111 |
12.11.2009 18:55
Сообщение
#1
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Помогите пожалуйста разобраться, каким образом можно реализовать на TP задачу:
Нужно написать программу, которая считывает из текстового файла информацию о сотрудниках и их зарплате и группирует записи по каждому сотруднику с последующим выводом их, подсчитав для каждого среднюю зарплату. Буду очень благодарен за любую помощь, заранее спасибо. Вот образец файла: Январь Александров В.П. 2750.23 Иванов С.А. 2214.04 Сергеев К.А. 3122.89 Февраль Александров В.П. 2354.33 Сергеев К.А. 2921.19 Март Александров В.П. 2755.23 Сергеев К.А. 3122.89 Иванов С.А. 2312.34 VVVVVVVVVVVVVVVVVVVVVVVVVVV Александров В.П. Январь 2750.23 Февраль 2354.33 Март 2755.23 средняя зарплата =2619.93 Иванов С.А. Январь 2214.04 Февраль нет данных Март 2312.34 средняя зарплата =2263.19 Сергеев К.А. Январь 3122.89 Февраль 2921.19 Март 3122.89 средняя зарплата =3055.65 |
RathaR |
12.11.2009 19:17
Сообщение
#2
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
Для начала неплохо было бы уточнить входные данные: в начале неизвесно ни кол-ва сотрудников, ни кол-ва месяцев за которые нужно разсмотреть зарплаты? Порядок следования сотрудников в списке за каждый месяц также непостоянен? Во входном файле, в случае, если данные отсутствуют, также нету никакой пометки об их отсутствии, просто идёт след. сотрудник?
И вообще где у тебя возникают проблемы: в том чтобы сформировать масив записей? -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
volvo |
12.11.2009 20:52
Сообщение
#3
|
Гость |
Цитата Для начала неплохо было бы уточнить входные данные: в начале неизвесно ни кол-ва сотрудников, ни кол-ва месяцев за которые нужно разсмотреть зарплаты? Порядок следования сотрудников в списке за каждый месяц также непостоянен? Во входном файле, в случае, если данные отсутствуют, также нету никакой пометки об их отсутствии, просто идёт след. сотрудник? Ничего из вышеперечисленного не обязательно для того, чтобы иметь возможность написать программу, корректно обрабатывающую исходный файл. |
RathaR |
13.11.2009 0:40
Сообщение
#4
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
Ничего из вышеперечисленного не обязательно для того, чтобы иметь возможность написать программу, корректно обрабатывающую исходный файл. Так, то оно так, но зачем тратиться на изощрения, если они могут оказаться лишними... программу можна существенно упростить... -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
volvo |
13.11.2009 0:55
Сообщение
#5
|
Гость |
Цитата но зачем тратиться на изощрения, если они могут оказаться лишними Что именно? Умение программы работать с 12-ю месяцами в году может оказаться лишним? Ты предлагаешь уточнить, не достаточно ли работать только с первым полугодием? Или написание программы таким образом, чтобы для обработки бОльшего количества сотрудников достаточно было поменять одну константу (или вообще ничего не менять, при использовании других средств, как то динамические массивы или списки) - лишнее? По-моему, это как раз преимущество, а не изощрение. Так ДОЛЖНА вести себя программа. |
RathaR |
13.11.2009 1:39
Сообщение
#6
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
В основном, я о том, что , так как нету четкого порядка следования сотрудников, и их количества + возможны случаи как во входном файле за февраль, то процес чтения записи сильно усложняеться, возможно это и вызвало непонятки с програмой у автора...
-------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
Lapp |
13.11.2009 2:25
Сообщение
#7
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Я бы сказал так: нужны дополнительные сведения не про задачу (тут все предельно ясно), а про уровень владения (изучения) языком автором темы. Если они уже изучили динамические средства - это одно, если нет - другое.. Самый естественный способ реализации (напрашивающийся) - со списками, хотя, конечно, может быть все, что угодно. Можно даже и совсем обойтись одним string'ом для всего, если постоянно читать файл - и такая программа будет максимально независима от всяких частностей во входных данных. Кстати, не настолько уж это дольше - нормальный размер такого файла вряд ли больше дискового кэша, так что физически все будет происходить в памяти. RathaR, возьмешься написать такого уродца? )) Уверяю, это довольно забавно..
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
RathaR |
13.11.2009 3:04
Сообщение
#8
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
RathaR, возьмешься написать такого уродца? )) Уверяю, это довольно забавно.. Ну а что, уродцы тоже бывают ничего так))) я вот помниться на первой олимпиаде, в том году таким макаром решал почти аналогичную задачу в которой надо было отсортировать записи по времени в формате ЧЧ/ММ/СС + доп данные(тип счетчика електропитания и его показания), так я кроме строк тогда ничего незнал, ни записей, ни списков, вобщем, по средством десятка вложеных условных оператров решил, и нормально розбивал по частям, сортировал, 12 тестов из 15 прога прошла... Хотя неспорю, это глупо, но тогда выбора небыло Сообщение отредактировано: RathaR - 13.11.2009 3:06 -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
Lapp |
13.11.2009 3:11
Сообщение
#9
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
RathaR |
13.11.2009 3:20
Сообщение
#10
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
-------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
RathaR |
14.11.2009 21:38
Сообщение
#11
|
Знаток Группа: Пользователи Сообщений: 346 Пол: Мужской Реальное имя: Иван Репутация: 7 |
В общем объёмная програмка вышла и глупостей в ней несчесть...
И вот еще что: писал на Turbo Delphi Explorer, так эта зараза игнорирует последние сроки в основной программе, сразу после процедуры Spisok перескакует в конец программы. Запустил в ТП - всё нормально, но прога пашет некоректно изза разных кодировок, неможет со строки правильно выделить стоимость, ибо я там ориентируюсь на '.', а при смене кодировки это уже не точка...а все русские слова в ТП переписывать заново нехотелось... Вобщем прога поидее рабочая, но откомпилировать её полностью в TDE не удалось... З.Ы. Старался писать так как писал бы год назад... со строками... для того чтобы она работала во входящем файле месяца должны идти по порядку, и нужно задать константу К - максимально возможное число сотрудников {$APPTYPE CONSOLE} Вход. файл Январь Сообщение отредактировано: Lapp - 15.11.2009 2:55 -------------------- Считающий себя единственым здравомыслящим человеком сумасшедший? Если да, возможно я псих...
Пусть умолкнет всякий критик! Я - системный аналитик! |
andriano |
14.11.2009 22:35
Сообщение
#12
|
Гуру Группа: Пользователи Сообщений: 1 168 Пол: Мужской Реальное имя: Сергей Андрианов Репутация: 28 |
Запустил в ТП - всё нормально, но прога пашет некоректно изза разных кодировок, неможет со строки правильно выделить стоимость, ибо я там ориентируюсь на '.', а при смене кодировки это уже не точка... Это не кодировка. Это региональные настройки. Чтобы не иметь геморроя с насчитанными разными программами цифрами, я у себя в региональных настройках ОС меняю десятичный разделитель с запятой на точку. Для Винды: Contro, Panel -> Date, Time... -> Regional and Language Options -> Custimise -> Decimal Symbol |
Lapp |
15.11.2009 2:57
Сообщение
#13
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Я извиняюсь, немного подредактировал формат в сообщении RathaR'а по-живому.. Для лучшей читаемости.
-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Dima1111 |
18.11.2009 19:59
Сообщение
#14
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
Спасибо большое!
Буду разбираться с кодом.. |
Dima1111 |
20.11.2009 2:01
Сообщение
#15
|
Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: 0 |
|
Текстовая версия | 25.04.2024 10:38 |