IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи, Сортировка
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Нужно создать файл, состоящий из 20 записей.
-Район;
-№школы;
-количество учеников;
-количество неуспевающих учеников;
-количество отличников и хорошистов.
Так вот, надо вывести данные о школах каждого района, у которых процент качественной успеваемости наибольший. Информацию выводить, отсортировав по наименованию района.

Файл то я конечно создал. А вот в остальном запутался. Много что-то условий. Помогите пожалуйста. Напишите хотя бы примерный алгоритм действий, а дальше думаю сам разберусь.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Помощник капитана
****

Группа: Пользователи
Сообщений: 601
Пол: Мужской
Реальное имя: Артем

Репутация: -  2  +


Цитата
Так вот, надо вывести данные о школах каждого района, у которых процент качественной успеваемости наибольший.

А начиная со скольки процентов отличников и хорошистов в сравнении со всеми учениками школа считается "успеваемой"

Сообщение отредактировано: Артемий -


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Цитата(Артемий @ 15.05.2007 0:18) *

А начиная со скольки процентов отличников и хорошистов в сравнении со всеми учениками школа считается "успеваемой"

Ну это я незнаю, но я так понял нужно высчитать процент этих самых отличников в каждой школе и потом вывести тока школы с наибольшим процентом от каждого района.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 11
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Вот так собственно я создаю файл
uses crt;
const
n=5;
type
spisok=record
raion:string;
p_p,nom,kol_uch,neus_uch,otl_hor:integer;
end;
var
i:integer;
sp:spisok;
F:file of spisok;
begin
assign (F,'d:\kurs.dat');
rewrite (F);
for i:=1 to n do
begin
with sp do
begin
writeln ('raion:'); readln(raion);
writeln ('p/p:'); readln(p_p);
writeln ('nomer shkoli:'); readln(nom);
writeln ('kolichestvo uch:'); readln(kol_uch);
writeln ('kolichestvo neusp:'); readln(neus_uch);
writeln ('kolichestvo otl i hor:'); readln(otl_hor);
end;
write(F,sp);
end;
close(F);
readln;
end.

А вот это я написал сортировку.
uses crt;
Const name='d:\kurs2.txt';
Type
spisok=record
raion:string;
p_p,nom,kol_uch,neusp,otl_hor:integer;
end;
Var
k,i:integer;sum:real;
sp:spisok;Ot:char;
sp1:array [1..50] of spisok;
pr:array [1..50] of real;
F:file of spisok;
F1:text;
begin
clrscr;
assign(F,'d:\kurs.dat');
reset(F);
Writeln('Zapisat v fail? Y/N');
Readln(Ot);
If (Ot='Y') or (Ot='y') then assign (F1,name) else assign (F1,'con');
Rewrite(F1);
Writeln(F1,' Svedeniya o shkolah raionov');
k:=0;
For i:=1 to 77 do write(F1,'-');
writeln(F1);
Writeln(F1,'| raion |nom_p/p|nom_shkoli|kol uch|kol neusp uch|otl i hor|procent|');
For i:=1 to 77 do write(F1,'-');
writeln(F1);
While not eof(F) do
begin
Read(F,sp);
With sp do
begin
if raion='oktyabrskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='centralnii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='zaelcovskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='zheleznodorozhnii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
if raion='kirovskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='pervomaiskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='kalininskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
if raion='leninskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='dzerzhinskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;
if raion='sovetskii' then
begin
k:=k+1;
sp1[k]:=sp;
pr[k]:=sp.otl_hor/kol_uch*100;
end;

end;
end;
end;
For i:=1 to k do with sp1[i] do
begin
write(F1,'|', raion:12 ,'|',p_p:7,'|',nom:10,'|');
writeln(F1,kol_uch:7,'|',neusp:13,'|',otl_hor:9,'|',pr[i]:7:2,'|');
end;
For i:=1 to 77 do write(F1,'-');
writeln(F1);
Close(F1);Readln;
end;
end.


Почему выводится только один район(заельцовский)? И как сделать, чтобы из каждого района выводилася школа только с мах процентом?

Сообщение отредактировано: ko1hoz -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.05.2024 5:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name