Skip to content
This repository has been archived by the owner on Jan 23, 2022. It is now read-only.

Commit

Permalink
files converted to encoding UTF-8
Browse files Browse the repository at this point in the history
  • Loading branch information
romiras committed Sep 21, 2013
1 parent b167124 commit 7c327d3
Show file tree
Hide file tree
Showing 57 changed files with 1,240 additions and 1,239 deletions.
4 changes: 2 additions & 2 deletions Beginners/LIM.PAS
@@ -1,9 +1,9 @@

const
eps = 1e-8; // òî÷íîñòü
eps = 1e-8; // точность

function Power (base: double; N: integer): double;
// ñòåïåíü N ïî îñíîâàíèþ base
// степень N по основанию base
var k: integer;
P: double;
begin
Expand Down
2 changes: 1 addition & 1 deletion Beginners/MENU.PAS
Expand Up @@ -5,7 +5,7 @@ var c: char;
Procedure Menu;
begin
ClrScr;
writeln('=== ƒ« ¢­®¥ Œ¥­î ===' );
writeln('=== Главное Меню ===' );
writeln(' 1. item 1');
writeln(' 2. item 2');
writeln(' 3. item 2');
Expand Down
46 changes: 23 additions & 23 deletions Beginners/QSORTARR.PAS
Expand Up @@ -3,27 +3,27 @@ Program SortArray;
Uses Objects;

const
N = 4; { ª®«-¢® í«¥¬¥­â®¢ ¢ ¬ áᨢ¥ }
N = 4; { кол-во элементов в массиве }
SORT_STR: boolean = true;

type
PInteger = ^Integer;

List = array[1..N] of Pointer; { ᯨ᮪ 㪠§ â¥«¥© ­  ï祩ª¨ ¤ ­­ëå }
List = array[1..N] of Pointer; { список указателей на ячейки данных }

{ ¯à®æ¥¤ãà­ë© ⨯ ¤«ï ¢ë§®¢  ä㭪樨 áà ¢­¥­¨ï }
{ процедурный тип для вызова функции сравнения }
TSortFunc = function (a,b: pointer): integer;

var
Data: List;

{$I sortfunc.inc} { ¯®¤ª«îç ¥¬ ¤®¯®«­¨â¥«ì­ë© ª®¤ - äã­ªæ¨ï StrCmp }
{$I sortfunc.inc} { подключаем дополнительный код - функция StrCmp }

{ ‡¤¥áì 㪠§ë¢ ¥¬ ª ª ¡ã¤¥¬ á®àâ¨à®¢ âì ¤ ­­ë¥.
„ ­­ë¥ ¤«ï áà ¢­¥­¨ï ¯¥à¥¤ ñ¬ ¢ ª ç¥á⢥ 㪠§ â¥«¥©, ¡ã¤ì â® áâப¨,
ç¨á« , ¨«¨ ¤ ¦¥ áâàãªâãàë ¤ ­­ëå ⨯  ‡ ¯¨áì }
{ Здесь указываем как будем сортировать данные.
Данные для сравнения передаём в качестве указателей, будь то строки,
числа, или даже структуры данных типа Запись }

function CompareNumbers (a,b: pointer): integer; FAR; { ¤ «ì­¨© ⨯ á¢ï§¨ }
function CompareNumbers (a,b: pointer): integer; FAR; { дальний тип связи }
begin
if PInteger (a)^ > PInteger (b)^ then
CompareNumbers := 1
Expand All @@ -40,7 +40,7 @@ begin
end;

procedure QuickSort (var A: List; SortFunc: TSortFunc; Lo, Hi: Integer);
{ "ëáâà ï á®àâ¨à®¢ª ". Œ®¦­® ¯à¨¬¥­¨âì «î¡®© ¤à㣮© ¢¨¤ á®àâ¨à®¢ª¨ }
{ "Быстрая сортировка". Можно применить любой другой вид сортировки }
var
i,j: integer;
x, y: pointer;
Expand All @@ -55,7 +55,7 @@ begin
while SortFunc (A[j], x) > 0 do dec (j);
if i <= j then
begin
y := A[i]; A[i] := A[j]; A[j] := y; { ¯®¬¥­ïâì 㪠§ â¥«¨ ¬¥áâ ¬¨ }
y := A[i]; A[i] := A[j]; A[j] := y; { поменять указатели местами }
inc (i);
dec (j);
end;
Expand All @@ -77,20 +77,20 @@ var
Num: PInteger;

begin
Randomize; { ˆ­¨æ¨ «¨§ æ¨ï £¥­¥à â®à  á«ãç ©­ëå ç¨á¥« }
Randomize; { Инициализация генератора случайных чисел }
writeln (#13#10'*** Data input ***'#13#10);
if SORT_STR then
for i := 1 to N do
begin
write ('Enter string: ');
readln (s);
Data[i] := pointer (NewStr (s)); { १¥à¢¨à㥬 ¯ ¬ïâì ¤«ï áâப¨ }
Data[i] := pointer (NewStr (s)); { резервируем память для строки }
end
else
for i := 1 to N do
begin
New (Num); { १¥à¢¨à㥬 ¯ ¬ïâì ¤«ï ç¨á«  }
Num^ := random (100); { á«ãç ©­ë¥ ç¨á«  }
New (Num); { резервируем память для числа }
Num^ := random (100); { случайные числа }
Data[i] := Num;
end;
end;
Expand All @@ -104,31 +104,31 @@ begin
if SORT_STR then
for i := 1 to N do
begin
writeln (PString (Data[i])^); { ¢ë¢®¤ áâப¨ }
writeln (PString (Data[i])^); { вывод строки }
DisposeStr (PString (Data[i]));
{ ®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì, ¢§ïâãî ¤«ï ç¨á«  }
{ освобождаем память, взятую для числа }
end
else
for i := 1 to N do
begin
write (PInteger (Data[i])^ : 4); { ¢ë¢®¤ ç¨á«  }
write (PInteger (Data[i])^ : 4); { вывод числа }
Dispose (Data[i]);
{ ®á¢®¡®¦¤ ¥¬ ¯ ¬ïâì, ¢§ïâãî ¤«ï áâப¨ }
{ освобождаем память, взятую для строки }
end;

readln;
end;

begin
Input_Array; { ¢¢®¤ ¤ ­­ëå }
Input_Array; { ввод данных }

{ ¢ë§®¢ ¯à®æ¥¤ãàë á®àâ¨à®¢ª¨ }
{ вызов процедуры сортировки }
if SORT_STR then
QuickSort (Data, CompareStrings, 1, N)
{ á®àâ¨à㥬 ¬ áᨢ áâப }
{ сортируем массив строк }
else
QuickSort (Data, CompareNumbers, 1, N);
{ á®àâ¨à㥬 ¬ áᨢ ç¨á¥« }
{ сортируем массив чисел }

View_Array; { ¢ë¢®¤ ¤ ­­ëå }
View_Array; { вывод данных }
end.
8 changes: 4 additions & 4 deletions Beginners/SORTREC.PAS
Expand Up @@ -4,10 +4,10 @@ const N = 4;
type
TInfo = record
Name: string [40];
Age: integer; { âîçðàñò }
Age: integer; { возраст }
end;

List = array [1..N] of TInfo; { ìàññèâ çàïèñåé ñîäåðæèò âîçðàñò è èìÿ }
List = array [1..N] of TInfo; { массив записей содержит возраст и имя }

var
F: file of TInfo;
Expand All @@ -18,7 +18,7 @@ begin { Main }

Assign (F, 'shop.dat');
rewrite (F);
{ çàïîëíåíèå ìàññèâà çàïèñåé }
{ заполнение массива записей }
for I := 1 to N do
with Rec do
begin
Expand All @@ -30,7 +30,7 @@ begin { Main }

Close (F);
(*
{ ôîðìàòèðîâàííûé âûâîä íà ýêðàí ìàññèâà çàïèñåé }
{ форматированный вывод на экран массива записей }
writeln;
writeln ('Name' : 40, 'Age' : 10);
for I := 1 to 40 do write ('=');
Expand Down
14 changes: 7 additions & 7 deletions Beginners/TEMPLATE.PAS
Expand Up @@ -44,22 +44,22 @@ end;
procedure TIntList.AddItem (num: integer);
var newelem: PIntList;
begin
newelem := new(PIntList, Init); (* Ñîçäàòü â ïàìÿòè íîâûé ýëåìåíò *)
newelem := new(PIntList, Init); (* Создать в памяти новый элемент *)
newelem^.data:=num;
newelem^.next:=top; (* Ïðèñîåäèíèòü ê ýòîìó ýëåìåíòó ñïèñîê *)
top:=newelem; (* Âåðíóòü åãî, êàê íà÷àëî íîâîãî ñïèñêà *)
newelem^.next:=top; (* Присоединить к этому элементу список *)
top:=newelem; (* Вернуть его, как начало нового списка *)
end;


procedure PrintList (List: PListObject);
begin
if (list=NIL) then (* Åñëè ñïèñîê ïóñò *)
writeln ('Ñïèñîê ïóñò!') (* Ñîîáùèòü îá ýòîì *)
if (list=NIL) then (* Если список пуст *)
writeln ('Список пуст!') (* Сообщить об этом *)
else
while (list<>NIL) do (* Ïîêà òåêóùèé ýëåìåíò ñïèñêà íå ïîñëåäíèé *)
while (list<>NIL) do (* Пока текущий элемент списка не последний *)
begin
List^.PrintItem;
list:=list^.next; (* Ïåðåéòè ê ñëåäóþùåìó ýëåìåíòó *)
list:=list^.next; (* Перейти к следующему элементу *)
end;
end;

Expand Down
32 changes: 16 additions & 16 deletions Beginners/TEMPLATE2.pas
Expand Up @@ -49,44 +49,44 @@ constructor TRecList.Init;
procedure TRecList.AddItem (num: integer);
var newelem: PRecList;
begin
newelem := new(PRecList, Init); (* Ñîçäàòü â ïàìÿòè íîâûé ýëåìåíò *)
newelem := new(PRecList, Init); (* Создать в памяти новый элемент *)
newelem^.data.n:=num;
newelem^.next:=top; (* Ïðèñîåäèíèòü ê ýòîìó ýëåìåíòó ñïèñîê *)
top:=newelem; (* Âåðíóòü åãî, êàê íà÷àëî íîâîãî ñïèñêà *)
newelem^.next:=top; (* Присоединить к этому элементу список *)
top:=newelem; (* Вернуть его, как начало нового списка *)
end;

function searchel (data: Tdata): PRecList;
var
list:PRecList;
begin
list := top;
if (list<>NIL) then (* Åñëè ñïèñîê íå ïóñò *)
if (list<>NIL) then (* Если список не пуст *)
begin
while
((list^.next<>NIL) and
(list^.data.n<>data.n)) do (* Ïîêà òåêóùèé ýëåìåíò íå ïîñëåäíèé è íå èñêîìûé *)
list:=list^.next; (* Ïåðåõîäèòü ê ñëåäóþùåìó ýëåìåíòó ñïèñêà *)
if (list^.data.n<>data.n) then (* Åñëè èñêîìûé ýëåìåíò íå íàéäåí*)
searchel:=NIL (*âåðíóòü óêàçàòåëü íà ïóñòîé ñïèñîê *)
else (* 针֌ *)
searchel:=list; (* Âåðíóòü óêàçàòåëü íà ýòîò ýëåìåíò *)
(list^.data.n<>data.n)) do (* Пока текущий элемент не последний и не искомый *)
list:=list^.next; (* Переходить к следующему элементу списка *)
if (list^.data.n<>data.n) then (* Если искомый элемент не найден*)
searchel:=NIL (*вернуть указатель на пустой список *)
else (* Иначе *)
searchel:=list; (* Вернуть указатель на этот элемент *)
end
else (* 针֌ *)
else (* Иначе *)
begin
searchel:=NIL; (* Âåðíóòü óêàçàòåëü íà ïóñòîé ñïèñîê *)
searchel:=NIL; (* Вернуть указатель на пустой список *)
end;
end;


procedure PrintList (List: PListObject);
begin
if (list=NIL) then (* Åñëè ñïèñîê ïóñò *)
writeln ('Ñïèñîê ïóñò!') (* Ñîîáùèòü îá ýòîì *)
if (list=NIL) then (* Если список пуст *)
writeln ('Список пуст!') (* Сообщить об этом *)
else
while (list<>NIL) do (* Ïîêà òåêóùèé ýëåìåíò ñïèñêà íå ïîñëåäíèé *)
while (list<>NIL) do (* Пока текущий элемент списка не последний *)
begin
List^.PrintItem;
list:=list^.next; (* Ïåðåéòè ê ñëåäóþùåìó ýëåìåíòó *)
list:=list^.next; (* Перейти к следующему элементу *)
end;
end;

Expand Down
4 changes: 2 additions & 2 deletions Beginners/lim2.pas
Expand Up @@ -6,8 +6,8 @@
k, l, sign, newsum, oldsum: real;

begin
n := 1; // ¨­¤¥ªá, ª®«-¢® á« £ ¥¬ëå
sign := 1.0; // ç¥à¥¤®¢ ­¨¥ §­ ª®¢
n := 1; // индекс, кол-во слагаемых
sign := 1.0; // чередование знаков
newsum := 0;

k := 1;
Expand Down
14 changes: 7 additions & 7 deletions Beginners/piechart.pas
@@ -1,13 +1,13 @@
program PieChart;

{ Программа строит диаграмму, состоящую из процентного соотношения 25% + 60% + 15% }
{ Программа строит диаграмму, состоящую из процентного соотношения 25% + 60% + 15% }

uses Graph;

const
Radius = 80;

p1 = 0.25; { Примечание: проценты в сумме должны давать 1.0 (100%) }
p1 = 0.25; { Примечание: проценты в сумме должны давать 1.0 (100%) }
p2 = 0.6;
p3 = 0.15;

Expand All @@ -17,14 +17,14 @@
_To : integer;
Gd, Gm: Integer;

procedure DrawPie (percent: single); { Рисует сектор - процент от круга }
procedure DrawPie (percent: single); { Рисует сектор - процент от круга }
begin
SetFillStyle(XHatchFill, 1 + Random (14));
{ 1-й параметр устанавливает тип закраски, а второй - случайный цвет в диапазоне от 1 до 14 }
{ 1-й параметр устанавливает тип закраски, а второй - случайный цвет в диапазоне от 1 до 14 }

_To := _From + Round (percent * 360.0); { percent * 360.0 -это процент от круга (360 градусов) }
_To := _From + Round (percent * 360.0); { percent * 360.0 -это процент от круга (360 градусов) }
PieSlice(x, y, _From, _To, Radius);
_From := _To; { Как только нарисовали 1 сектор, запоминаем конечный угол предыдущего в начало следующего }
_From := _To; { Как только нарисовали 1 сектор, запоминаем конечный угол предыдущего в начало следующего }
end;

begin
Expand All @@ -36,7 +36,7 @@
x := GetMaxX div 2;
y := GetMaxY div 2;

_From := 0; { Начальный угол сектора равен нулю }
_From := 0; { Начальный угол сектора равен нулю }
DrawPie (p1);
DrawPie (p2);
DrawPie (p3);
Expand Down
30 changes: 15 additions & 15 deletions Beginners/pointertest.pas
@@ -1,15 +1,15 @@
type
PInfo = ^TInfo; { указатель на тип TInfo}
PInfo = ^TInfo; { указатель на тип TInfo}
TInfo = record
Size,
Len: integer;
ss: string[20];
end;

Arr = array[1..10] of word;
PArr = ^Arr; { указатель на тип Arr}
PArr = ^Arr; { указатель на тип Arr}

PInteger = ^Integer; { указатель на тип Integer }
PInteger = ^Integer; { указатель на тип Integer }

var
i: integer;
Expand All @@ -21,36 +21,36 @@ TInfo = record

writeln;

PInt := New (PInteger); { выделение памяти под указатель на тип Integer }
PInt^ := 123; { значению по адресу PInt зададим значение }
PInt := New (PInteger); { выделение памяти под указатель на тип Integer }
PInt^ := 123; { значению по адресу PInt зададим значение }
writeln ('Value = ', PInt^);
Dispose (PInt); { освобождение зарезервированной памяти }
Dispose (PInt); { освобождение зарезервированной памяти }

writeln;

PA := New (PArr); { выделение памяти под указатель на тип Arr }
for i := 1 to 10 do PA^[i] := i * 2 - 1; { значениям массива по адресу PA зададим значения }
for i := 1 to 10 do write (PA^[i] : 4); { выведем элементы массива по адресу PA }
Dispose (PA); { освобождение зарезервированной памяти }
PA := New (PArr); { выделение памяти под указатель на тип Arr }
for i := 1 to 10 do PA^[i] := i * 2 - 1; { значениям массива по адресу PA зададим значения }
for i := 1 to 10 do write (PA^[i] : 4); { выведем элементы массива по адресу PA }
Dispose (PA); { освобождение зарезервированной памяти }

writeln;
writeln;

PI := New (PInfo); { выделение памяти под указатель на тип TInfo}
with PI^ do { заносим данные в запись по адресу PI }
PI := New (PInfo); { выделение памяти под указатель на тип TInfo}
with PI^ do { заносим данные в запись по адресу PI }
begin
writeln ('Enter some information');
{ вводим значения переменных в записи }
{ вводим значения переменных в записи }
write ('Size: '); readln (Size);
write ('Length: '); readln (Len);
write ('String: '); readln (ss);

writeln;
{ выводим их значения }
{ выводим их значения }
writeln ('Size: ', Size : 20);
writeln ('Length: ', Len : 18);
writeln ('String: ', ss : 18);
end;
Dispose (PI); { освобождение зарезервированной памяти после использования записи }
Dispose (PI); { освобождение зарезервированной памяти после использования записи }

end.

0 comments on commit 7c327d3

Please sign in to comment.