RomeoSFS
Новичок
|
Здравствуйте не могли бы помочь очень требуется ваша помощь по решению задачи пожалуйста! Есть Условие задачи и код программы но он сделан по другому условию, однако условия задач совпадают! вообщем надо переделать код программы под другое условие! Спасибо огромное заранее!!! Вот условие и решение: Расписание электричек хранится в текстовом файле на диске. Каждая запись со¬держит название пункта назначения, пометки типа «СВ», «ПВ», «КСВ» и время отправления. Написать программу, выполняющую следующие действия: □ корректировку или дополнение расписания с клавиатуры; □ сортировку по станции назначения или по времени отправления; □ вывод на экран информации о поездах, отходящих после введенного времени; □ запись расписания в файл под тем же или новым именем. program spisoks; uses crt; const n=10000; type spisok=record punkt:string[20]; tip:string[10]; end; type vremya=record cas:integer; min:integer; end; var tbl:array[1..n] of spisok; vr:array [1..n]of vremya; f:Text; k,y:integer; procedure Make; var l:string; n,i:integer; begin textcolor(lightgreen); writeln('sozdanie faila'); textcolor(black); writeln('Vvedite imya faila'); readln(l); assign(f,l); rewrite(f); n:=0; Repeat n:=n+1; Write('punkt otpravlenia ',n,' marshuta '); ReadLn(tbl[n].punkt); If tbl[n].punkt <>'^' then begin Write('vremya otpravlenia ',n,' marshruta '); ReadLn(vr[n].cas); writeln (':'); readln (vr[n].min); Write('tip vagonog',n,' marshruta '); ReadLn(tbl[n].tip); end; until tbl[n].punkt='^'; for i:=1 to n-1 do begin writeln(f,tbl.punkt); writeln(f,vr.cas); writeln (f,vr.min); writeln(f,tbl.tip); end; close(f); writeln('dannye uspesho sohraneny. nazhmite Enter.'); readln; end; procedure show; var i:integer; l:string; begin textcolor(lightgreen); writeln('prosmotr faila'); textcolor(black); writeln('vvedite imya faila'); readln(l); assign(f,l); reset(f); writeln('punkt | vremya |tip vagona'); i:=0; while not eof(f) do begin inc(i); readln(f,tbl.punkt); readln(f,vr.cas); readln(f,vr.min); readln(f,tbl.tip); writeln(' ',tbl.punkt,'| ',vr.cas,':',vr.min,'| ',tbl.tip); end; readln; close(f); end; Procedure Sortirovka; var i,j,m: Integer; p : spisok; k : vremya; S :string; begin m:=0; writeln('Введите имя файла:'); readln(S); assign(f,S); reset(f); while not eof(f) do begin inc(m); readln(f,tbl[m].punkt); readln(f,vr[m].cas); readln(f,vr[m].min); readln(f,tbl[m].tip); end; For I:=1 to M do Begin For J:=1 to M-I do Begin if tbl[J].punkt[1] > tbl[J+1].punkt[1] then begin p.punkt:=tbl[J].punkt; k.cas:=vr[J].cas+5; k.min:=vr[J].min; p.tip:=tbl[j].tip; tbl[J].punkt:=tbl[J+1].punkt; vr[J].cas:=vr[J+1].cas; vr[J].min:=vr[J+1].min; tbl[J].tip:=tbl[J+1].tip; tbl[J+1].punkt:=p.punkt; vr[J+1].cas:=k.cas; vr[J+1].min:=k.min; tbl[J+1].tip:=p.tip; end; end; end; //writeln('*|Пункт отпр.|Час|Минута|Тип вагона|*'); For I:=1 to m do Begin writeln('*Пункт Отправления* ',tbl.punkt,' *Время* ',vr.cas,':',vr.min,' *Тип вагона* ',tbl.tip); end; writeln('Для продолжения нажмите Enter'); readln; M:=0; end; begin k:=0; repeat clrscr; writeln('programma spisok'); writeln('1.sozdanie'); writeln('2.pokaz'); writeln('3.sort '); writeln('4.vyxod'); write('Выберите действие:'); readln(y); case y of 1:Make; 2:show; 3:Sortirovka; 4:k:=1; end; until k=1; end. А ВОТ условие под которое надо сделать эту задачу: В текстовом файле хранится список товаров. Для каждого товара указаны его на¬звание, стоимость единицы товара в тыс. руб., количество и единица измерения (например, 100 шт., 20 кг). Написать программу, выполняющую следующие действия: □ корректировку или дополнение списка с клавиатуры; □ сортировку по названию товара или по общей стоимости; □ вывод на экран информации о товаре, название которого введено с клавиатуры; □ запись списка в файл под тем же или новым именем.
|