program Project2;
{$APPTYPE CONSOLE}
uses SysUtils,windows;
{ С клавиатуры вводятся записи, содержащие наименование игрушки и цену. Напеча-тать список игрушек, упорядоченный по возрастанию цен. Добавить в список новый элемент. } type TAverCode=record name:string; // название Price:real; {цена игрушки} end; TArray = array of TAverCode; var a:TArray;
{для перекодировки симовлов взято с сайта http://netsoftware.ucoz.ru/news/wintodos_dostowin_perekodirovka_simovlov_cherez_mozhul_windows/2012-11-26-106 } function WinToDos(St: string): string; // перекодировка из Win кодировки в Dos var Ch: PChar; begin Ch := StrAlloc(Length(St) + 1); AnsiToOem(PChar(St), Ch); Result := Ch; StrDispose(Ch) end;
function DosToWin(St: string): string; // перекодировка из Dos кодировки в Win var Ch: PChar; begin Ch := StrAlloc(Length(St) + 1); OemToAnsi(PChar(St), Ch); Result := Ch; StrDispose(Ch) end;
Procedure sort(var a:TArray); // сортировка динамического массива var b:TAverCode; nmax,j,x,y:integer; begin nmax:=Length(a)-1; for x:=0 to nmax do for y:=x+1 to nmax do if a[x].price>a[y].price then begin b:=a[x]; a[x]:=a[y]; a[y]:=b; end; end; Procedure AddF(Name:string;Price:real;var a:TArray); // Добавление записи в динамический массив begin SetLength(a,length(a)+1); a[length(a)-1].name:=WinToDos(name); a[length(a)-1].Price:=Price; end; Procedure display(var a:TArray); // вывод на экран динамический массив var n,x:integer; begin n:=Length(a)-1; for x:=0 to n do begin Write(a[x].name,' ',a[x].price:4:2); Writeln; end; end;
var x,n:integer; s:string; price:real; begin {AddF('Ишрушка 1 ',44.5,a); AddF('Ишрушка 2 ',45.5,a); AddF('Ишрушка 3 ',84.5,a); AddF('Ишрушка 4 ',14.5,a); AddF('Ишрушка 5 ',34.5,a); AddF('Ишрушка 6 ',22.5,a); AddF('Ишрушка 7 ',15.5,a);}
Writeln(WinToDos('Введите кол-во игрушек ')); Readln(N); for x:=0 to n-1 do begin Writeln(WinToDos('Введите название игрушки')); readln(s); Writeln(WinToDos('Введите цену')); readln(price); AddF(DosToWin(s),price,a); end; Writeln(WinToDos('Исходная таблица ')); display(a); readln; Writeln(WinToDos('Сортировка ')); sort(a); display(a); readln;
{ TODO -oUser -cConsole Main : Insert code here }
end.
|