Оғыз мемлекеті (ЫХ ғасырдың соңы— ХЫғасырдың ортасы). ЫХ ғасырдың ортасында Сырдарияның орта және төменгі ағысында, сонымен қатар Батыс Қазақстанды да қосып алатын территориясында оғыз тайпаларының саяси бірлестігі құрылды. «Оғыз» деген терминнің этимологиясы әлі де анықталмаған. Алайда "оғыз" сөзінің пайда болуы туралы әр түрлі пікірлер жоқ емес. Кейбір ғалымдар "уыз" сөзінен шықты десе, екінші біреулері "садақтың оғы" деген сөзден пайда болған дейді. Ал үшінші бір ғалымдар "өгіз" деген тотемдік сөзден пайда болды деп дәлелдеуге тырысады. Махмуд Қашқари, әл-Марвази еңбектерінде, оғыздарға жататын руларды атап кеткен: қынық, баят, язғыр, имур, қарабулақ, тутырка, т.б. Оғыздар 2 экзогамды фрактриядан құрылған. Бұлар — боз оқ және үш оқ (учук). ВЫЫЫ ғасыр ортасында түргештер мұрасы үшін қарлұқтармен болған күресте оғыздардың едәуір бөлігі Жетісуды тастап, Шу алқабына кетеді. Осы жерде олардың «Көне Гузия>> деп аталатын ордасы болды. ЫХ ғасырдың бас кезінде оғыздардың көсемі қарлұқтармен, қимақтармен одақтасып, кангар-печенег бірлестігін күйретеді, сөйтіп Сырдың төменгі жағы мен Арал өңірі мен даласын басып алады. ЫХ ғасыр соңында олар хазарлармен одақ құрып, печенегтерді жеңеді де, Орал мен Еділ арасын қол астына қаратады.
// PascalABC.NET 3.0, сборка 1088 const nDay:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31); type Date=record Day,Month,Year:integer end;
function DOW(Dat:Date):integer; // день недели по дате. 0-Вс. 1-Пн, 7-Сб var a,y,m:integer; begin With Dat do begin a:=(14 - month) div 12; y:=Year-a; m:=month+12*a-2; DOW:=(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7 end end;
procedure DMY2Date(d,m,y:integer; var data:Date); // Преобразует к дате заданные день, месяц и год begin data.Day:=d; data.Month:=m; data.Year:=y end;
procedure LastDays(month,year:integer; var Wd,Fr:Date); // даты последней среды (Wd) и пятницы (Fr) для месяца в году } var LastDay:Date; n:integer; begin n:=nDay[month]; if (month=2) and (year mod 4 = 0) then Inc(n); DMY2Date(n,month,year,LastDay); n:=DOW(LastDay); // номер последнего дня недели Wd.Month:=month; Wd.Year:=year; if n<3 then Wd.Day:=LastDay.Day-(n+4) else if n=3 then Wd.Day:=LastDay.Day else Wd.Day:=LastDay.Day+3-n; Fr.Month:=month; Fr.Year:=year; if n<5 then Fr.Day:=LastDay.Day-(n+2) else if n=3 then Fr.Day:=LastDay.Day else Fr.Day:=LastDay.Day-1 end;
var Wd,Fr:Date; ff,mf:Text; m:integer; begin Assign(ff,'father.txt'); Rewrite(ff); Assign(mf,'mother.txt'); Rewrite(mf); // Сентябрь-декабрь 2015 года for m:=9 to 12 do begin LastDays(m,2015,Wd,Fr); if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2015 - 1 класс') else Writeln(ff,Wd.Day,'.',m,'.2015 - 1 класс'); if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2015 - 5 класс') else Writeln(ff,Fr.Day,'.',m,'.2015 - 5 класс') end; // Январь - май 2016 года for m:=1 to 5 do begin LastDays(m,2016,Wd,Fr); if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2016 - 1 класс') else Writeln(ff,Wd.Day,'.',m,'.2016 - 1 класс'); if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2016 - 5 класс') else Writeln(ff,Fr.Day,'.',m,'.2016 - 5 класс') end; Close(ff); Close(mf) end.
Содержимое выходных файлов: father.txt 30.9.2015 - 1 класс 28.10.2015 - 1 класс 30.10.2015 - 5 класс 30.12.2015 - 1 класс 24.2.2016 - 1 класс 26.2.2016 - 5 класс 30.3.2016 - 1 класс
mother.txt 25.9.2015 - 5 класс 25.11.2015 - 1 класс 27.11.2015 - 5 класс 25.12.2015 - 5 класс 27.1.2016 - 1 класс 29.1.2016 - 5 класс 25.3.2016 - 5 класс 27.4.2016 - 1 класс 29.4.2016 - 5 класс 25.5.2016 - 1 класс 27.5.2016 - 5 класс
Оғыз мемлекеті (ЫХ ғасырдың соңы— ХЫғасырдың ортасы). ЫХ ғасырдың ортасында Сырдарияның орта және төменгі ағысында, сонымен қатар Батыс Қазақстанды да қосып алатын территориясында оғыз тайпаларының саяси бірлестігі құрылды. «Оғыз» деген терминнің этимологиясы әлі де анықталмаған. Алайда "оғыз" сөзінің пайда болуы туралы әр түрлі пікірлер жоқ емес. Кейбір ғалымдар "уыз" сөзінен шықты десе, екінші біреулері "садақтың оғы" деген сөзден пайда болған дейді. Ал үшінші бір ғалымдар "өгіз" деген тотемдік сөзден пайда болды деп дәлелдеуге тырысады. Махмуд Қашқари, әл-Марвази еңбектерінде, оғыздарға жататын руларды атап кеткен: қынық, баят, язғыр, имур, қарабулақ, тутырка, т.б. Оғыздар 2 экзогамды фрактриядан құрылған. Бұлар — боз оқ және үш оқ (учук). ВЫЫЫ ғасыр ортасында түргештер мұрасы үшін қарлұқтармен болған күресте оғыздардың едәуір бөлігі Жетісуды тастап, Шу алқабына кетеді. Осы жерде олардың «Көне Гузия>> деп аталатын ордасы болды. ЫХ ғасырдың бас кезінде оғыздардың көсемі қарлұқтармен, қимақтармен одақтасып, кангар-печенег бірлестігін күйретеді, сөйтіп Сырдың төменгі жағы мен Арал өңірі мен даласын басып алады. ЫХ ғасыр соңында олар хазарлармен одақ құрып, печенегтерді жеңеді де, Орал мен Еділ арасын қол астына қаратады.
const
nDay:array[1..12] of integer=(31,28,31,30,31,30,31,31,30,31,30,31);
type
Date=record
Day,Month,Year:integer
end;
function DOW(Dat:Date):integer;
// день недели по дате. 0-Вс. 1-Пн, 7-Сб
var
a,y,m:integer;
begin
With Dat do begin
a:=(14 - month) div 12;
y:=Year-a;
m:=month+12*a-2;
DOW:=(7000+(day+y+y div 4-y div 100+y div 400+(31*m) div 12)) mod 7
end
end;
procedure DMY2Date(d,m,y:integer; var data:Date);
// Преобразует к дате заданные день, месяц и год
begin
data.Day:=d; data.Month:=m; data.Year:=y
end;
procedure LastDays(month,year:integer; var Wd,Fr:Date);
// даты последней среды (Wd) и пятницы (Fr) для месяца в году }
var
LastDay:Date;
n:integer;
begin
n:=nDay[month];
if (month=2) and (year mod 4 = 0) then Inc(n);
DMY2Date(n,month,year,LastDay);
n:=DOW(LastDay); // номер последнего дня недели
Wd.Month:=month; Wd.Year:=year;
if n<3 then Wd.Day:=LastDay.Day-(n+4)
else
if n=3 then Wd.Day:=LastDay.Day
else Wd.Day:=LastDay.Day+3-n;
Fr.Month:=month; Fr.Year:=year;
if n<5 then Fr.Day:=LastDay.Day-(n+2)
else
if n=3 then Fr.Day:=LastDay.Day
else Fr.Day:=LastDay.Day-1
end;
var
Wd,Fr:Date;
ff,mf:Text;
m:integer;
begin
Assign(ff,'father.txt'); Rewrite(ff);
Assign(mf,'mother.txt'); Rewrite(mf);
// Сентябрь-декабрь 2015 года
for m:=9 to 12 do begin
LastDays(m,2015,Wd,Fr);
if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2015 - 1 класс')
else Writeln(ff,Wd.Day,'.',m,'.2015 - 1 класс');
if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2015 - 5 класс')
else Writeln(ff,Fr.Day,'.',m,'.2015 - 5 класс')
end;
// Январь - май 2016 года
for m:=1 to 5 do begin
LastDays(m,2016,Wd,Fr);
if Odd(Wd.Day) then Writeln(mf,Wd.Day,'.',m,'.2016 - 1 класс')
else Writeln(ff,Wd.Day,'.',m,'.2016 - 1 класс');
if Odd(Fr.Day) then Writeln(mf,Fr.Day,'.',m,'.2016 - 5 класс')
else Writeln(ff,Fr.Day,'.',m,'.2016 - 5 класс')
end;
Close(ff); Close(mf)
end.
Содержимое выходных файлов:
father.txt
30.9.2015 - 1 класс
28.10.2015 - 1 класс
30.10.2015 - 5 класс
30.12.2015 - 1 класс
24.2.2016 - 1 класс
26.2.2016 - 5 класс
30.3.2016 - 1 класс
mother.txt
25.9.2015 - 5 класс
25.11.2015 - 1 класс
27.11.2015 - 5 класс
25.12.2015 - 5 класс
27.1.2016 - 1 класс
29.1.2016 - 5 класс
25.3.2016 - 5 класс
27.4.2016 - 1 класс
29.4.2016 - 5 класс
25.5.2016 - 1 класс
27.5.2016 - 5 класс