0 / 0 / 0
Регистрация: 03.11.2008
Сообщений: 20
|
|
Лабораторная работа №5. Работа с файлами и алгоритмы сортировки05.12.2008, 18:05. Показов 15431. Ответов 3
Метки нет Все метки)
(
1. Написать функцию Load для считывания из текстового файла (например, Workers.txt) информации о работниках и заработной плате. В первой строке файла находится количество рабочих дней в месяце. Далее для каждого работника в файле записано по две строки: в первой – фамилия работника, во второй – два числа – количество отработанных дней и месячный оклад. После загрузки файла вывести на экран ко-личество считанных записей.
2. Написать функцию Calc для вычисления зарплаты каждого ра-ботника по формуле с округлением значения до двух десятичных знаков. Функция должна также подсчитать итоговую зарплату. 3. Написать функцию Save для выгрузки в файл ведомости заработ-ной платы в виде следующей таблицы. +----------------------+---+----------+----------+ | Фамилия |Дни| Оклад | Зарплата | +----------------------+---+----------+----------+ |Петров | 15| 6300.00| 3937.50| |Иванов | 24| 5600.00| 5600.00| | ... |...| ... | ... | +----------------------+---+----------+----------+ |Итого | 23687.50| +-------------------------------------+----------+ Ширина колонок: «Фамилия» – 40 символов, «Дни» – 3 символа, «Оклад» и «Зарплата» – по 10 символов. Фамилию необходимо вырав-нивать по левому краю, цифры – по правому. Зарплату выводить с дву-мя десятичными знаками. 4. Написать функцию SortByName для сортировки списка работни-ков по алфавиту методом пузырьковой сортировки. 5. В основной программе: загрузить список из файла Workers.dat, рассчитать зарплату, выгрузить ведомость в файл Pay.txt, отсортировать список по алфавиту, выгрузить ведомость в файл ByName.txt. Дополнительные задачи. 1. Добавить функцию SortByPay для сортировки списка по зарпла-те. В основной программе отсортировать список еще и по зарплате, вы-грузить ведомость в файл ByPay.txt. 2. Добавить в функции сортировки подсчет и вывод на экран коли-чества сравнений. Выполнить программу для трех различных списков с количеством 5, 10 и 15 сотрудников соответственно. Записать для каж-дого списка максимальное количество сравнений из полученных при сортировке по имени и зарплате. Построить график зависимости коли-чества сравнений от длины списка. Добавлено через 48 секунд я создал код проги но она несовсем праильно идет помогите program Lab5; {$APPTYPE CONSOLE} uses SysUtils; type Worker=record Name:string; Days:Integer; Salary,Pay:Real; end; var Days:Integer; W:array [0..1000] of Worker; n:Integer; Total:Real; procedure Load(const Name:string); var h:Text; begin Assign(h,Name); Reset(h); Readln(h,Days); n:=0; while not Eof(h) do begin Inc(n); Readln(h,W[n].Name); Readln(h,W[n].Days,W[n].Salary); end; Close(h); Writeln('Считано строк: ',n); end; procedure Calc; var i:Integer; begin Total:=0; for i:=1 to n do begin W[i].Pay:=Round(W[i].Salary*W[i].Days/Days*100) /100; Total:=Total+W[i].Pay; end; end; procedure Save(const Name:string); var h:Text; i:Integer; begin Assign(h,Name); Rewrite(h); Writeln(h,'+-------…-------+---+---…---+---…----+'); Writeln(h,'| Фамилия |Дни| Оклад |Зарплата|'); Writeln(h,'+-------…-------+---+---…---+---…----+'); for i:=1 to n do Writeln(h,'|',W[i].Name,'':40-Length(W[i].Name), '|',W[i].Days:3,'|',W[i].Salary:10:2, '|',W[i].Pay:10:2,'|'); Writeln(h,'+-------…-------+---+---…---+---…----+'); Writeln(h,'|Итого |', Total:10:2,'|'); Writeln(h,'+-------…-------+---+---…---+---…----+'); Close(h); end; procedure SortByName; var Stop:Boolean; Last,Cmp,i:Integer; Temp:Worker; begin Last:=n; Cmp:=0; repeat Stop:=True; Dec(Last); for i:=1 to Last do begin Inc(Cmp); {Подсчет количества сравнений} if W[i].Name>W[i+1].Name then begin Temp:=W[i]; W[i]:=W[i+1]; W[i+1]:=Temp; Stop:=False; end; end; until Stop; Writeln('Сравнений при сортировке по имени: ',Cmp); end; procedure SortByPay; var Stop:Boolean; Last,Cmp,i:Integer; Temp:Worker; begin Last:=n; repeat Stop:=True; Dec(Last); for i:=1 to Last do begin Inc(Cmp); {Подсчет количества сравнений} if W[i].Pay>W[i+1].Pay then begin Temp:=W[i]; W[i]:=W[i+1]; W[i+1]:=Temp; Stop:=False; end; end; until Stop; Writeln('Сравнений при сортировке по зарплате:',Cmp); end; begin Load('Workers.txt'); Calc; Save('Pay.txt'); SortByName; Save('ByName.txt'); SortByPay; Save('ByPay.txt'); Readln; {Задержка для консольных приложений} end.
0
|
05.12.2008, 18:05 | |
Ответы с готовыми решениями:
3
Лабораторная "Работа с файлами и структурами данных" - обсуждение Работа с файлами(Запись,чтение,работа с данными) |
1 / 1 / 0
Регистрация: 05.12.2008
Сообщений: 14
|
|
05.12.2008, 19:55 | |
Ставиш обьект - StringGrid и с него по ячейкам считываешь - он предназначен для работы с таблицами.
Закинуть процедуры???
0
|
05.12.2008, 19:55 | |
Помогаю со студенческими работами здесь
4
Лабораторная работа по С Лабораторная работа лабораторная работа Лабораторная работа 1 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
|
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
|
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Опубликовано: 07. 07. 2025
Рубрика: Uncategorized
Автор: AlexA
Статья размещается на сайте с разрешения. . .
|
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
|
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
|
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском
https:/ / vkvideo. ru/ video-231374465_456239020
На английском
https:/ / www. youtube. com/ watch?v=oskqtCrWns0
Исходники примера:
|
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
|
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
|
Создаем микросервисы с Go и Kubernetes
golander 02.07.2025
Когда я только начинал с микросервисами, все спорили о том, какой язык юзать. Сейчас Go (или Golang) фактически захватил эту нишу. И вот почему этот язык настолько заходит для этих задач:
. . .
|
C++23, квантовые вычисления и взаимодействие с Q#
bytestream 02.07.2025
Я всегда с некоторым скептицизмом относился к громким заявлениям о революциях в IT, но квантовые вычисления - это тот случай, когда революция действительно происходит прямо у нас на глазах. Последние. . .
|