R
Ruschel
Всем привет! Задали сделать задачку, состоящую из 2 частей, 1 часть сделал, а во второй есть напряги. Значит собсно условие задачи:
где "Астафьева* "-фамилия, 12 позиций, "Ксения "-имя,10 позиций, "1 0 1 1 0" - группа(0..2), состояние врачей по порядку(0-болен, 1-здоров).
Чтобы было проще, выложу первую часть проги:
[codebox]program prakt;
uses crt;
type zap=record
family:string[12];
name:string[10];
gr:byte;
vrach:array[1..4] of byte
end;
var z:zap; inp:text; proc1:real;
procedure Procent(var proc:real);
var i,j,ln,bolnix,zdorov:byte; spec:string;
begin
assign(inp,'C:\tp7\praktika\input.in');
reset(inp);
writeln('Учет результатов диспансеризации':55);
write('Запрос 1: Укажите специалиста - '); read(spec);
ln:=length(spec);
case ln of
12: j:=1;
13: j:=2;
7: j:=3;
10: j:=4;
end;
bolnix:=0; zdorov:=0;
repeat
read(inp,z.family,z.name,z.gr);
for i:=1 to 4 do
begin
read(inp,z.vrach);
if i=j then
begin
if z.vrach=0 then
bolnix:=bolnix+1
else
zdorov:=zdorov+1;
end;
end;
readln(inp);
until eof(inp);
proc:=zdorov/(zdorov+bolnix)*100;
writeln('У ',spec,' ',proc:3:2,'% здоровых, ',(100-proc):3:2,'% больных');
close(inp);
readkey;
end;
begin
clrscr;
{1 часть}
Procent(proc1);[/codebox]
(*требования препода - переносить по максимуму в локальные параметры процедур\функций)
По второй(и 1 вопрос по первой) задаче вознивают вопросы:
1) Каким алгоритмом реализовать сортировку записей?
2) Как трансформировать из цифр (состояния здоровья, группа и т.д.) в "полную информацию по группе детей"?
3)(1 и 2 задача) - как поставить лимит записей?
Буду очень рад, если поможете написать код 2 части или хотя бы часть подскажите!
Всем заранее спасибо!
Входной файл я сделал в формате:В файле данных хранится информация о каждом из воспитанников детского сада: фамилия, имя, название группы (младшая средняя старшая), заключение о состоянии здоровья("здоров" или "нуждается в лечении") каждого из четырёх специалистов - невропатолога, отоларинголога, ортопеда и стоматолога.
Разработать и реализовать программу "Учёт результатов диспансеризации", которая считывает исходную информацию и позволяет организовать обработку следующих запросов:
1. Определить процентное соотношение здоровых и нуждающихся в лечении детей по заключению указанного в запросе специалиста;
2. Вывести на экран в удобной для пользователя форме полную информацию по указанной в запросе группе. При этом сведения должны быть упорядочены в алфавитном порядке.
Число воспитанников детского сада не превышает 100.
Код:
Астафьева Ксения 1 0 1 1 0
...............................
Чтобы было проще, выложу первую часть проги:
[codebox]program prakt;
uses crt;
type zap=record
family:string[12];
name:string[10];
gr:byte;
vrach:array[1..4] of byte
end;
var z:zap; inp:text; proc1:real;
procedure Procent(var proc:real);
var i,j,ln,bolnix,zdorov:byte; spec:string;
begin
assign(inp,'C:\tp7\praktika\input.in');
reset(inp);
writeln('Учет результатов диспансеризации':55);
write('Запрос 1: Укажите специалиста - '); read(spec);
ln:=length(spec);
case ln of
12: j:=1;
13: j:=2;
7: j:=3;
10: j:=4;
end;
bolnix:=0; zdorov:=0;
repeat
read(inp,z.family,z.name,z.gr);
for i:=1 to 4 do
begin
read(inp,z.vrach);
if i=j then
begin
if z.vrach=0 then
bolnix:=bolnix+1
else
zdorov:=zdorov+1;
end;
end;
readln(inp);
until eof(inp);
proc:=zdorov/(zdorov+bolnix)*100;
writeln('У ',spec,' ',proc:3:2,'% здоровых, ',(100-proc):3:2,'% больных');
close(inp);
readkey;
end;
begin
clrscr;
{1 часть}
Procent(proc1);[/codebox]
(*требования препода - переносить по максимуму в локальные параметры процедур\функций)
По второй(и 1 вопрос по первой) задаче вознивают вопросы:
1) Каким алгоритмом реализовать сортировку записей?
2) Как трансформировать из цифр (состояния здоровья, группа и т.д.) в "полную информацию по группе детей"?
3)(1 и 2 задача) - как поставить лимит записей?
Буду очень рад, если поможете написать код 2 части или хотя бы часть подскажите!
Всем заранее спасибо!