требуется создать в текстовом редакторе входной текстовой файл input.txt, куда следует поместить файл содержащий указанную в задании информацию. Далее необходимо разработать структуированнную программу,которая должна прочить данные из этого файла в оперативную память компьютера,осущиствить преобразование этой информации и вывести в требуемой форме в выходной текстовой форме output.txt
HELP!!!!!!!!!!
input.txt: kolomna-MAN; lukhvitsy - MAN; ulan bator - MAN ;novozybkov-SULTZER; boris korniliv - sultzer; vyborg - MAN ; mravincki -MAN Output.txt: MAN(mravincki,kolomna,lukhvitsy,vyborg);SULTZER(boris korniliv,novozybkov)
polic
19.12.2006 2:23
МНЕ КТОНИТЬ ПОМОЖЕТ????
volvo
19.12.2006 2:26
Расскажи, ЧТО у тебя вызывает затруднения? Полностью программу делать не буду, если что-то конкретное - подскажу, как сделать...
polic
19.12.2006 2:32
мдя тут надо подумать что спросить
polic
19.12.2006 15:39
ну вообще по действиям расскажите что надо делать типа сначало это надо сделать потом другое и тп
volvo
19.12.2006 18:47
Вот это:
const n = 100; type rec = record ix_drive: integer; name: string; end;
var i_drive, i_ship: integer; drive: array[1 .. n] of string; ship: array[1 .. n] of rec;
procedure sort_by_drive(var arr: array of rec; const n: integer); var i, j: integer; T: rec; begin for i := 1 to n do for j := n downto i+1 do if arr[Pred(j) - 1].ix_drive < arr[j - 1].ix_drive then begin T := arr[Pred(j) - 1]; arr[Pred(j) - 1] := arr[j - 1]; arr[j - 1] := T; end; end;
function trim(s: string): string; begin while (s[1] = ' ') and (s <> '') do delete(s, 1, 1); while (s[length(s)] = ' ') and (s <> '') do delete(s, length(s), 1);
trim := s; end;
function upstr(s: string): string; var i: integer; begin s := trim(s); for i := 1 to length(s) do s[i] := upcase(s[i]); upstr := s; end;
procedure add_new(s: string); var i: integer; found: boolean; p: integer; begin i := 1; found := false; p := pos('-', s); while (i <= i_drive) and (not found) do if drive[i] = upstr(copy(s, succ(p), 255)) then found := true else inc(i);
if not found then begin inc(i_drive); drive[i_drive] := upstr(copy(s, succ(p), 255)); i := i_drive; end; inc(i_ship); with ship[i_ship] do begin ix_drive := i; name := trim(copy(s, 1, pred(p))); end; end;
var fin, fout: text; s: string; i, p: integer;
begin assign(fin, 'input.txt'); reset(fin); i_drive := 0; i_ship := 0;
while not eof(fin) do begin readln(fin, s); repeat p := pos(';', s); if p <> 0 then begin add_new(copy(s, 1, p - 1)); delete(s, 1, p); end; until p = 0; if s <> '' then add_new(s); end;
sort_by_drive(ship, i_ship);
for i := 1 to i_ship do begin if (i = 1) or (ship[i].ix_drive <> ship[i-1].ix_drive) then begin if i > 1 then write('); '); write(drive[ship[i].ix_drive], '(') end else write(', '); write(ship[i].name); end; write(');');
close(fin); end.
напечатает тебе результат на экране... Доделай так, чтобы этот результат выводился в файл...
polic
20.12.2006 0:14
procedure sort_by_drive(var arr: array of record ; const n: integer); вот тут какая-то ошибка пишет что нужна скобка
volvo
20.12.2006 17:21
Извиняюсь, а где ты в моей программе увидел array of record? У меня немного по другому написано...
polic
20.12.2006 21:23
пасиба мне эту задачку помогли решить
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.