М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
елена430
елена430
06.01.2020 02:20 •  Информатика

Написать программу в питоне


Написать программу в питоне

👇
Открыть все ответы
Ответ:
badangel888
badangel888
06.01.2020
// 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 класс
4,4(92 оценок)
Ответ:
06.01.2020

Информация о состоянии каждого пикселя хранится в закодированном виде в памяти компьютера. Код может быть однобитовым, двухбитовым и т. д.

Код пикселя — это информация о цвете пикселя.   

Для получения черно-белого изображения (без полутонов) пиксель может находиться в одном из двух состояний: светится — не светится (белый — черный). Тогда для его кодирования достаточно одного бита памяти:

1 — белый, 
0 — черный.

Пиксель на цветном дисплее может иметь различную окраску. Поэтому одного бита на пиксель недостаточно.

Для кодирования четырехцветного изображения требуется двухбитовый код, поскольку с двух битов можно выразить 4 различных значения (отобразить 4 различных состояния). Может использоваться, например такой вариант кодирования цветов:

00 — черный,      10 — зеленый,
01 — красный,    11 — коричневый.

Из трех базовых цветов — зеленого, красного, синего — можно получить восемь комбинаций трехбитового кода:
---       черный,            к --          красный,
-- с      синий,              к - с        розовый,
- з -     зеленый,          к з -        коричневый,
- з с     голубой,           к з с       белый.

В этом коде каждый базовый цвет обозначается его первой буквой (к — красный, с — синий, з — зеленый). Черточка означает отсутствие цвета.

Следовательно, для кодирования восьмицветного изображения требуются 3 бита памяти на один видеопиксель. Если наличие базового цвета обозначить единицей, а отсутствие — нулем, то получается таблица кодировки восьмицветной палитры (табл. 4.1).


Из сказанного, казалось бы, следует вывод: с трех базовых цветов нельзя получить палитру, содержащую больше восьми цветов. Однако на экранах современных компьютеров получают цветные изображения, составленные из сотен, тысяч и даже миллионов различных красок и оттенков. Как это достигается?

Если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, дающих разные краски и оттенки, увеличивается.

Шестнадцатицветная палитра получается при использовании четырехразрядной кодировки пикселя; к трем битам базовых цветов добавляется один бит интенсивности. Этот бит управляет яркостью всех трех цветов одновременно (интенсивностью трех электронных пучков) (табл. 4.2).


Большее количество цветов получается при раздельном управлении интенсивностью базовых цветов. Причем интенсивность может иметь более двух уровней, если для кодирования интенсивности каждого из базовых цветов выделять больше одного бита.

Из сказанного можно вывести правило:

Количество различных цветов К и количество битов для их кодирования b связаны между собой формулой: К = 2b.   

21 = 2, 22= 4, 23 = 8, 24 = 16 и т. д. Для получения цветовой гаммы из 256 цветов требуется 8 битов = 1 байт на каждый пиксель, так как 28 = 256.


Объем видеопамяти

Объем необходимой видеопамяти определяется размером графической сетки дисплея и количеством цветов. Минимальный объем видеопамяти должен быть таким, чтобы в него помещался один кадр (одна страница) изображения. Например, для сетки 640 х 480 и черно-белого изображения минимальный объем видеопамяти должен быть таким:

640 · 480 · 1 бит = 307 200 бит = 38 400 байт.

Это составляет 37,5 Кбайт.

Для четырехцветной гаммы и той же графической сетки видеопамять должна быть в два раза больше — 75 Кбайт; для восьмицветной — 112,5 Кбайт.

На современных высококачественных дисплеях используется палитра более чем из 16 миллионов цветов. Требуемый размер видеопамяти в этом случае — несколько мегабайтов.


Коротко о главном

Информация в видеопамяти — это двоичные коды, обозначающие цвета пикселей на экране.

Для кодирования двух цветов достаточно 1 бита на пиксель; четырех цветов — 2 битов; восьми цветов — 3 битов; шестнадцати цветов — 4 битов и т. д. Количество цветов К и размер кода в битах b связаны формулой: К — 2b.

Из трех базовых цветов можно получить 8 различных цветов, Большее число цветов получается путем управления интенсивностью базовых цветов.

Минимально необходимый объем видеопамяти зависит от размера сетки пикселей и от количества цветов. Обычно в видеопамяти помещается несколько страниц (кадров) изображения одновременно.

4,8(8 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ