Type Dat = record d: integer; m: integer; y: integer end;
function jday(pd: Dat): longint; // Алгоритм 199б // "Переход от календарной даты к порядковому номеру дня и обратно" // взят из сборника // "Библиотека алгоритмов 151б-200б", М.И.Агеев и др., // М.: Радио и связь, 1981 // // Алгоритм возвращает порядковый номер дня по Юлианскому календарю. // Работает для дат, начиная с 01.01.4713 до н.э. var c, ya: longint; begin with pd do begin if m > 2 then m := m - 3 else begin m := m + 9; y := y - 1 end; c := y div 100; ya := y mod 100; Result := ((146097 * c) div 4) + ((1461 * ya) div 4) + ((153 * m + 2) div 5) + d + 1721119 end; end;
function jdate(j: longint): Dat; // Алгоритм 199б // "Переход от календарной даты к порядковому номеру дня и обратно" // взят из сборника // "Библиотека алгоритмов 151б-200б", М.И.Агеев и др., // М.: Радио и связь, 1981 // // Алгоритм возвращает дату григорианского календаря по // порядковому номеру дня Юлианского календаря. // Работает для дат, начиная с 01.01.4713 до н.э. var dd, mm, yy: integer;
begin j := j - 1721119; yy := (4 * j - 1) div 146097; dd := (4 * j - 1 - 146097 * yy) div 4; j := (4 * dd + 3) div 1461; dd := (4 * dd + 7 - 1461 * j) div 4; mm := (5 * dd - 3) div 153; dd := (5 * dd + 2 - 153 * mm) div 5; yy := 100 * yy + j; if mm < 10 then mm := mm + 3 else begin mm := mm - 9; yy := yy + 1 end; Result.d := dd; Result.m := mm; Result.y := yy end;
var d1,d2: Dat; begin Writeln('Введите дату рождения в формате <день месяц год>: '); Read(d1.d, d1.m, d1.y); d2:=jdate(jday(d1)+5000); Writeln('5000 дней прожито ',d2.d,'.',d2.m,'.',d2.y) end.
Тестовое решение: Введите дату рождения в формате <день месяц год>: 9 10 1997 5000 дней прожито 18.6.2011
1.сколько цветов будет содержать палитра, если каждый базовый цвет кодировать двумя битами? 2^2=4 2.Какой объем видеопамяти в в кбайтах нужен для хранения изображения размером 640х250 пикселей и используещего 16-цветную политуру ? 16=2^4 640*250*4= 640000 бит= 640000/8 байт=80000/1024Кб=78,125Кб 3.видеопамять имеет объем, в котором может хранится 4-х цветное изображение размером 300х200. Какого размера изображение можно хранить в том же объеме памяти, если оно будет использовать 256-ти цветную палитру? 300х200*2=120000 бит 256=2^8 120000бит/8= 15000 -> Ширина*высоту <= 15000 пискселей, например 150*100 4.Сколько цветов можно максимально использовать для хранения изображения размером 350x200 пикселей если объем страницы видеопамяти 65 кбайт 65кб/(35*200)=65кб/(35*200)*8*1024=76,06857143 76>=2^6 -> кол-во цветов 6 5.Пусть видеопамять компьютера имеет объем 512 кбайт. Размер графической сетки 640x480. Сколько страниц может одновременно разместиться в видеопамяти при палитре из 256 цветов? 256=2^8 8*640*480=2457600 бит=300кб Таким образом одна страница
Dat = record
d: integer;
m: integer;
y: integer
end;
function jday(pd: Dat): longint;
// Алгоритм 199б
// "Переход от календарной даты к порядковому номеру дня и обратно"
// взят из сборника // "Библиотека алгоритмов 151б-200б", М.И.Агеев и др.,
// М.: Радио и связь, 1981
//
// Алгоритм возвращает порядковый номер дня по Юлианскому календарю.
// Работает для дат, начиная с 01.01.4713 до н.э.
var
c, ya: longint;
begin
with pd do
begin
if m > 2 then m := m - 3
else
begin
m := m + 9;
y := y - 1
end;
c := y div 100;
ya := y mod 100;
Result := ((146097 * c) div 4) + ((1461 * ya) div 4) +
((153 * m + 2) div 5) + d + 1721119
end;
end;
function jdate(j: longint): Dat;
// Алгоритм 199б
// "Переход от календарной даты к порядковому номеру дня и обратно"
// взят из сборника // "Библиотека алгоритмов 151б-200б", М.И.Агеев и др.,
// М.: Радио и связь, 1981
//
// Алгоритм возвращает дату григорианского календаря по
// порядковому номеру дня Юлианского календаря.
// Работает для дат, начиная с 01.01.4713 до н.э.
var
dd, mm, yy: integer;
begin
j := j - 1721119;
yy := (4 * j - 1) div 146097;
dd := (4 * j - 1 - 146097 * yy) div 4;
j := (4 * dd + 3) div 1461;
dd := (4 * dd + 7 - 1461 * j) div 4;
mm := (5 * dd - 3) div 153;
dd := (5 * dd + 2 - 153 * mm) div 5;
yy := 100 * yy + j;
if mm < 10 then mm := mm + 3
else begin mm := mm - 9; yy := yy + 1 end;
Result.d := dd;
Result.m := mm;
Result.y := yy
end;
var
d1,d2: Dat;
begin
Writeln('Введите дату рождения в формате <день месяц год>: ');
Read(d1.d, d1.m, d1.y);
d2:=jdate(jday(d1)+5000);
Writeln('5000 дней прожито ',d2.d,'.',d2.m,'.',d2.y)
end.
Тестовое решение:
Введите дату рождения в формате <день месяц год>:
9 10 1997
5000 дней прожито 18.6.2011
2^2=4
2.Какой объем видеопамяти в в кбайтах нужен для хранения изображения размером 640х250 пикселей и используещего 16-цветную политуру ?
16=2^4
640*250*4= 640000 бит= 640000/8 байт=80000/1024Кб=78,125Кб
3.видеопамять имеет объем, в котором может хранится 4-х цветное изображение размером 300х200.
Какого размера изображение можно хранить в том же объеме памяти, если оно будет использовать 256-ти цветную палитру?
300х200*2=120000 бит
256=2^8
120000бит/8= 15000 -> Ширина*высоту <= 15000 пискселей, например 150*100
4.Сколько цветов можно максимально использовать для хранения изображения размером
350x200 пикселей если объем страницы видеопамяти 65 кбайт
65кб/(35*200)=65кб/(35*200)*8*1024=76,06857143
76>=2^6 -> кол-во цветов 6
5.Пусть видеопамять компьютера имеет объем 512 кбайт.
Размер графической сетки 640x480.
Сколько страниц может одновременно разместиться в видеопамяти при палитре из 256 цветов?
256=2^8
8*640*480=2457600 бит=300кб
Таким образом одна страница