Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 61

Необычная сортировка в файле

24.11.2010, 19:51. Показов 1372. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
шапка программы:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
uses crt, graphabc;
type
student=record
         f_i_o:string[20];
         alg:integer;{алгебра}
         phis:integer;{физика}
         geom:integer;{геометрия}
         ball:longint;{средний балл полный}
         ball2:longint;{дробный}
         end;
t_file=file of student;{типизированный файл записей}
const fname='stud.dat';{постоянное имя файла}
var stud:student;
    f100:integer;
файл типа T_file
записан уже этой процедурой

пометки: это таблица с графами имя ученика/отметка по алгебре/отметка по физике/отметка по геометрии/ср. балл

Pascal
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
procedure ReadFile(var f:t_file);{чтение файла}
var stud:student;
begin
clrscr;
ResFile(f);
writeln('Содержание файла:':40);
Tablica;
while not eof(f) do
 begin
  read(f,stud);
  with stud do
   begin
        ball2:=round(alg+phis+geom) mod 3;
    gotoXY(1,whereY);write('| ',f_i_o);
    gotoXY(16,whereY); write('|',alg);
    gotoXY(30,whereY); write('| ',phis);
    gotoXY(46,whereY); write('|',geom);
    gotoXY(59,whereY); write('|',ball,',',(ball2*3):2);
    gotoXY(70,whereY); writeln('|');
   end;
 end;
writeln('----------------------------------------------------------------------');
write('Press Enter...');
readln
end;
допустим пример для наглядности:

Иванов 4 5 4 4,3
Карпов 4 4 4 4
Агапов 3 3 4 3,6

нужно отсортировать (по имени/ср. баллу) таким образом.

Агапов 3 3 4 3,6
Иванов 4 5 4 4,3
Карпов 4 4 4 4

Прошу помочь в данном вопросе.
что непонятно- спрашивайте
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.11.2010, 19:51
Ответы с готовыми решениями:

Сортировка в файле
Люди, помогите сделать сортировку параметров в файле к программе: program type_record; type weapon=record; model: string; ...

Сортировка в файле
program type_record; type weapon=record model: string; kalibr: real; dalnost: real; oboima: integer; ...

Сортировка значений в файле
яямсс см

8
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.11.2010, 20:09
Посмотрите в этой теме, процедура Sort
Переписать сведения из файла в текстовый файл так, чтобы студенты перечислялись в порядке возрастания среднего балла
1
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 61
24.11.2010, 20:27  [ТС]
благодарю.

ещё один вопрос:
я балл задавал 2мя переменными(целая и дробная часть)
ball:longint;{средний балл полный}
ball2:longint;{дробный}

как можно вставить дробную часть балла в сортировку:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure Sort(var f:t_file);//сортировка типизированного файла
var st,a,b:student;
    i,j:byte;
begin
reset(f);
for i:=0 to filesize(f)-2 do
for j:=i+1 to filesize(f)-1 do
  begin
    seek(f,i);
    read(f,a);
    seek(f,j);
    read(f,b);
    if a.ball>b.ball then
      begin
       st:=a;
       a:=b;
       b:=st;
       seek(f,i);
       write(f,a);
       seek(f,j);
       write(f,st);
      end;
   end;
Tablica;......
Добавлено через 27 секунд
ball2:=round(alg+phis+geom) mod 3;

Добавлено через 1 минуту
вопрос снят, разобрался.

Добавлено через 9 минут
вопрос актуален!)
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.11.2010, 20:34
я балл задавал 2мя переменными(целая и дробная часть)
ball:longint;{средний балл полный}
ball2:longint;{дробный}
Поясните и приведите пример, вообще непонятно.
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 61
24.11.2010, 20:57  [ТС]
у меня средний балл состоит из двух частей
его целая часть
Pascal
1
ball:=(alg+phis+geom) div 3;
его дробная часть
Pascal
1
ball2:=(round(alg+phis+geom) mod 3)*3
сортирующая процедура в данном случае сортирует по целому баллу и былл 4,6 может идти выше, чем 4,3(убывающая сортировка)
дробную часть балла надо подключать.
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.11.2010, 21:02
Не понял зачем такие сложности, сделай балл типа real и нет проблемы, а выводить можно хоть как через trunc, frac.
Если уж сильно приспичило, то при сортировке суммируй обе части.
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 61
24.11.2010, 21:17  [ТС]
приспичило)

к сожалению результата нет
0
Почетный модератор
 Аватар для Puporev
64315 / 47611 / 32743
Регистрация: 18.05.2008
Сообщений: 115,167
24.11.2010, 21:26
Что, так
Pascal
1
2
if a.ball+a.ball2>b.ball+b.ball2 then
      begin
не работает?
значит лажа в самой сортировке.
0
0 / 0 / 0
Регистрация: 17.03.2010
Сообщений: 61
24.11.2010, 21:29  [ТС]
да, не работает. через откладку смотрел по какой-то причине a. ball u b.ball равны нулю всегда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.11.2010, 21:29
Помогаю со студенческими работами здесь

Сортировка значений в файле
Дан файл File.txt, в котором указаны фамилии людей и их заработная плата(максимальная фамилия - 10 символов, зарплата состоит из 6 символов...

Сортировка в Типизированном файле
Вечер добрый!!! обращаюсь к вам с такой проблемой: создал программу по учету книг8 в библиотеке(т.е. програма обеспечивает ввод данных...

Сортировка чисел в файле
Здраствуйте.Вот такой вопрос! Подскажите как написать программу что-бы она отсортировала числа записаные через пробел в файлe...

Сортировка текста в файле
Здравствуйте! Есть задачка: В файле есть многострочный текст: Сидоров Вася 9Б 89034587963 Петров Алекс 8В 89057412589 Иванов Кирилл...

Сортировка чисел в файле.
Народ, ни как не могу справиться с сортировкой чисел в файле. Помогите, кто знает!!!


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru