|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.08.2009, 07:09 | #1 |
Регистрация: 16.05.2009
Сообщений: 5
|
Анкета
Доброго времени суток! Нужна ваша помощь.
В задании имеется файл, содержащий сведения о студентах одной группы: ФИО, название экзамена, оценки. Нужно написать программу формирующую файл - ФИО, средний балл и упорядочить по убыванию среднего балла. Нужно сделать это сортировкой простым выбором. Вот мой вариант проги(проблема в том, что я не знаю вообще как упорядочить по убыванию среднего балла): program sdali; type anketa=record FIO:string[20]; grupa:1..3; math:2..5; Chem:2..5; Sred:real; end; var stud:array[1..50] of anketa; Fbd:file of anketa; x:real; i,j,k,l,m,n,r:integer; FIO2:string[20]; grupa2:1..3; math2:2..5; Chem2:2..5; Sred2:real; begin assign (fbd, 'anketa2.st'); reset(fbd); i:=0; writeln ('Students!G!M!C!Sred'); while not eof (fbd) do begin inc (i); read (fbd, stud[i]); with stud[i] do begin writeln (FIO:8, '!', grupa, '!', math, '!',chem,'!',sred:3:1); end; end; close (fbd); writeln; n:=i; { for i:=2 to n do begin x:=stud[i].sred; l:=1; r:=i; while l<r do begin m:=(l+r) div 2; if stud[m].sred<=x then l:=m+1 else r:=m; end; for j:=i downto r+1 do stud[j]:=stud[j-1]; stud[r]:=stud[i]; end; } { for i:=1 to n do begin x:=stud[i].sred; for j:=i+1 to n do if stud[j].sred<x then begin k:=j; x:=stud[j].sred; end; stud[k].sred:=stud[i].sred; stud[i].sred:=x ; end; } for i:=1 to n do begin x:=stud[i].sred; for j:=i+1 to n do if stud[j].sred<x then begin fio2:=stud[j].fio ; grupa2:=stud[j].grupa; math2:=stud[j].math; chem2:=stud[j].chem; sred2:=stud[j].sred; stud[j]:=stud[i]; stud[i].fio:=fio2; stud[i].grupa:=grupa2; stud[i].math:=math2; stud[i].chem:=chem2; stud[i].sred:=sred2; end; end; for i:=n downto 1 do with stud[i] do begin writeln(FIO:8, '!', grupa, '!', math, '!',chem,'!',sred:3:1); end; readln; end. А вот эта прога должна формировать ФИО и средний балл. Тоже чёто не получается... program students; type anketa=record FIO:string[20]; grupa:1..3; math:2..5; Chem:2..5; Sred:real; end; var stud:array[1..50] of anketa; fbd: file of anketa; fin:text; k,i:integer; begin Randomize; assign (Fin,'anketa.txt'); assign (fbd, 'anketa2.st'); reset (fin); rewrite (fbd); i:=0; while not eof(fin) do begin inc(i); readln (Fin, stud[i].fio); with stud[i] do begin grupa:=1+random(3); math:=2+random(4); chem:=2+random(4); sred:=(math+chem)/2; write (fbd, stud[i]); end; end; close (fbd); close (fin); end. Если кто то напишет или поможет написать прогу, то могу отблагодарить материально. |
11.08.2009, 07:44 | #2 | |
Форумчанин
Регистрация: 16.04.2009
Сообщений: 247
|
Цитата:
Код:
|
|
11.08.2009, 08:30 | #3 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 256
|
Выложи файл с данными
|
11.08.2009, 08:36 | #4 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 256
|
О студентах
|
11.08.2009, 09:47 | #5 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 256
|
Вот программа, сортирующая по среднему баллу методом пузырька - самым простым методом:
Код:
R304936002835 Z353867488516 |
13.08.2009, 06:49 | #6 |
Регистрация: 16.05.2009
Сообщений: 5
|
Хорошо. Файл с данными выложу! Лишь бы прогу сделать только!
|
13.08.2009, 06:52 | #7 |
Регистрация: 16.05.2009
Сообщений: 5
|
Ты мне свой почтовый ящик напиши, я лучше туда отправлю.
|
13.08.2009, 08:11 | #8 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 256
|
|
13.08.2009, 08:11 | #9 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 256
|
ICQ 452-608-390
|
17.08.2009, 08:52 | #10 |
Форумчанин
Регистрация: 30.07.2009
Сообщений: 256
|
Все нормально
Последний раз редактировалось Gapro; 17.08.2009 в 15:23. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа Анкета с ипсользованием компонентов нескольких видов | Obender13 | Помощь студентам | 4 | 03.05.2009 19:01 |
Анкета | Claster | HTML и CSS | 1 | 09.12.2008 03:16 |
Анкета | Мария Егорова | Свободное общение | 23 | 08.12.2008 15:08 |