ПРЕЗ_БИТФУНК.ppt
- Количество слайдов: 43
Работа с битами (машинное представление целых чисел) Нумерация бит: СПРАВА НАЛЕВО ОТ НУЛЯ!!! … 7 6 5 4 3 БАЙТ 2 1 0
ФУНКЦИИ (1) BIT_SIZE (i) – число бит в записи i в зависимости от kind Integer(1) i ->8 …(2) i ->16 …(4) i ->32 Переменная или const BTEST(I, pos)- стандартная логическая величина наличия 1 в бите позиции pos Print *, BTEST(2#0001 1100 0111 1000, 2) ! F Print *, BTEST(2#0001 1100 0111 1000, 3) ! T –нумерация с НУЛЯ IAND(i, j), IOR(i, j), IEOR(i, j) - логические операции с битами i, j (одного типа!) Integer(2): : k=198 !2#1100 0110 Integer(2): : mask=129 !2#1000 0001 Print *, IAND(k, mask) ! 128 2#1000 0000 Print *, IOR(k, mask) ! 199 2#1100 0111 Print *, IEOR(k, mask) ! 71 2#0100 0111
ФУНКЦИИ (2) IBCHNG(I, pos), IBCLR(I, pos), IBSET(I, pos)изменение, обнуление, занесение 1 в pos Print ‘(b 8)’, IBCHNG(2#1010, 1) ! 1000 Print ‘(b 8)’, IBCLR(2#1010, 1) ! 1000 Print ‘(b 8. 8)’, IBSET(2#1010, 2) ! 0000 1110 IBITS(I, pos, len)-с позиции pos смещаем вправо и смотрим len бит. Освободившиеся=0 Print ‘(b 8)’, IBITS(2#1010, 1, 3) ! 101 Print ‘(b 8)’, IBITS(2#1010, 1, 2) ! 1 Print ‘(b 8. 8)’, IBITS(2#1010, 1, 2) ! 0000 0001 Спецификация печати в двоичной системе: Bm. n -> m всего знакомест печати n печатать знаков, включая ведущие нули
ФУНКЦИИ (3) NOT(i) – логическое дополнение: k=NOT(2#1010) print '(b)', k !1111 0101 СДВИГИ ISHA(I, shift) – арифметический: налево shift>0 и обнуление новых, направо shift<0 и заполнение знаковым битом новых ISHC(I, shift) – циклический: всех битов, включая знаковый print '(b 8)', k ! -5 1111 1011 print '(b 8, a, b 8)', ISHA(k, 2), ' ', ISHC(k, 2) !1110 1100 1111
ФУНКЦИИ (4) ISHFT(I, shift) – логический: налево shift>0 и обнуление новых, направо shift<0 и обнуление новых (в отличие от арифметического сдвигается и знаковый) print '(b 8)', ISHFT(2#0000 1010, 5) !100 0000 ISHFТC(I, shift [, size]) – циклический size младших битов или всех налево/направо print '(b 8. 8)', ISHFTC(2#0000 1010, 2, 3) !0000 1001 print '(b 8. 8)', ISHFTC(2#0000 1010, -2, 3) !0000 1100 print '(b 16. 16)', ISHFTC(2#0000 1010, 2, 3) !0000 1001
ФУНКЦИИ (5) п/программа CALL MVBITS (from, frompos, len, topos) перенос из from с позиции frompos бит len в to с позиции topos Нумерация бит справа от нуля! Integer(1): : i=13 !2#00001101 Integer(1): : t=6 !2#0000 0110 Call mvbits(i, 2, 2, t, 0) !2#0000 0111 from 2#00001101 to (2, 2)->(0) = 2#0000 0111 2#0000 0110
ЗАДАЧА: Упаковка в бинарный файл Массив 800 случайных символов (A. . Z, a. . z) Случайного цвета (1. . 15) записать в файл Традиционно: Символ - байт Цвет - байт 16 бит Более компактно: Код символа (1. . 26) - 5 бит Регистр (прописные, строчные) -1 бит 10 бит Цвет (1. . 15) – 4 бита МИНИМАЛЬНЫЙ ОБЪЕКТ ОБМЕНА ИНФОРМАЦИИ - БАЙТ (8 бит) НЕОБХОДИМ БУФЕР ОБМЕНА
ВЫБОР БУФЕРА ОБМЕНА Буфер записи (кратен 8 и 10) равен 40, т. е. 5 байт. В буфер размещается набор 4 -х символов (массивы) ! ! ! ! СТРУКТУРА БАЙТОВ БУФЕРА: 0 1 2 3 4 5 6 7 -> биты с с с r ц ц -> 1 -й байт ц ц с с с r -> 2 -й байт ц ц с с -> 3 -й байт с r ц ц с с -> 4 -й байт с с с r ц ц -> 5 -й байт Заполнение буфера – «змейкой» бит каждого символа КОНТРОЛЬ РАБОТЫ: СРАВНЕНИЕ СИМВОЛОВ ДО И ПОСЛЕ УПАКОВКИ
ПРИМЕР КОНТРОЛЯ РАБОТЫ ПРОГРАММЫ ДО УПАКОВКИ В ФАЙЛ ПОСЛЕ РАСПАКОВКИ ИЗ ФАЙЛА
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ use msflib integer i, j, k; integer(2) col integer(1) : : buf(5), r. BUF(5), ch(4), Re(4), Colr(4) !буфер и массивы character cc ; real rnd do !ЦИКЛ ЗАДАЧИ call settextwindow(1, 1, 24, 40) ! LEFT WINDOW call clearscreen($gclearscreen) open (1, file='a. dat', form ='binary') col=settextcolor(15_2) print '(a 40)', '=========I=========I'
ЦИКЛ СОЗДАНИЯ МАССИВА СИМВОЛОВ do i =1, 200 ; do j = 1, 4 ! 800 символов, порциями по 4 call random(rnd); ch(j)= nint(25*rnd) !код символа call random(rnd); Re(j)= nint(1*rnd) !код регистра call random(rnd); Colr(j)= nint(15*rnd) !код цвета if(Re(j)==0) then; cc = char(ichar('a')+ch(j)) else; cc = char(ichar('A')+ch(j)) endif col=settextcolor(Colr(j)); print '(a 1, $)', cc !контрольная печать enddo ! j
! ===== PACK to BUFFER ======== call mvbits(ch(1), 0, 5, buf(1), 0) call mvbits(ch(2), 0, 5, buf(2), 2) call mvbits(ch(3), 0, 4, buf(3), 4) call mvbits(ch(3), 4, 1, buf(4), 0) call mvbits(ch(4), 0, 2, buf(4), 6) call mvbits(ch(4), 2, 3, buf(5), 0) call mvbits(re(1), 0, 1, buf(1), 5) call mvbits(re(2), 0, 1, buf(2), 7) call mvbits(re(3), 0, 1, buf(4), 1) call mvbits(re(4), 0, 1, buf(5), 3) call mvbits(Colr(1), 0, 2, buf(1), 6) call mvbits(Colr(1), 2, 2, buf(2), 0) call mvbits(Colr(2), 0, 4, buf(3), 0) call mvbits(Colr(3), 0, 4, buf(4), 2) call mvbits(Colr(4), 0, 4, buf(5), 4) ! ----- SAVE to Bin File ------write(1)(buf(k), k=1, 5) enddo !i close(1);
! НАЧАЛО ТЕСТА ЗАПИСИ open (1, file='a. dat', form ='binary') col=settextcolor(15_2); call settextwindow(1, 42, 24, 81) ! RIGHT WINDOW print '(a 40)', '=========I=========I‘ do i=1, 200 !ЦИКЛ ЧТЕНИЯ ПОРЦИЙ СИМВОЛОВ ! ----- READ from Bin File -----Read(1)(r. BUF(k), k=1, 5)
! ======= UNPACK from BUFFER ============ call mvbits(r. BUF(1), 0, 5, ch(1), 0) call mvbits(r. BUF(2), 2, 5, ch(2), 0) call mvbits(r. BUF(3), 4, 4, ch(3), 0) call mvbits(r. BUF(4), 0, 1, ch(3), 4) call mvbits(r. BUF(4), 6, 2, ch(4), 0) call mvbits(r. BUF(5), 0, 3, ch(4), 2) call mvbits(r. BUF(1), 5, 1, re(1), 0) call mvbits(r. BUF(2), 7, 1, re(2), 0) call mvbits(r. BUF(4), 1, 1, re(3), 0) call mvbits(r. BUF(5), 3, 1, re(4), 0) !КОНЕЦ ПРОГРАММЫ if(ichar(getchar. QQ())==27)stop enddo end call mvbits(r. BUF(1), 6, 2, Colr(1), 0) call mvbits(r. BUF(2), 0, 2, Colr(1), 2) call mvbits(r. BUF(3), 0, 4, Colr(2), 0) call mvbits(r. BUF(4), 2, 4, Colr(3), 0) call mvbits(r. BUF(5), 4, 4, Colr(4), 0) do j = 1, 4 ; if(Re(j)==0) then; cc =char(ichar('a')+ch(j)) else; cc = char(ichar('A')+ch(j)) ; endif col=settextcolor(Colr(j)); print '(a 1, $)', cc !Контрольная печать enddo ! j enddo ! i close(1)
ЗАДАЧА: Упаковка в бинарный файл русских символов Массив 800 случайных символов (A. . Я) записать в файл ОСОБЕННОСТИ РЕШЕНИЯ: Вывод на экран в графическом режиме call outgtext(cc) Заполнение буфера обмена по столбцам, а не «змейкой» ! Элементы пакуются в цепочку по 5 бит на символ : ! и записываются в бинарный !файл. Буфер записи (кратен 8 и 5) равен 5 байт. !В буфер размещается набор 8 символов (массивы) ! СТРУКТУРА БАЙТОВ БУФЕРА: (по столбцам коды одного символа) ! 0 1 2 3 4 5 6 7 -> биты ! с - - - -> 1 -й байт ! с - - - -> 2 -й байт ! с - - - -> 3 -й байт ! с - - - -> 4 -й байт ! с - - - -> 5 -й байт
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ use msflib integer i, j, k, nom, row, u, v; integer(2) col integer(1) : : buf(5), r. BUF(5), ch(8) character cc ; real rnd type(xycoord) t integer(2)stat 2 INTEGER(1) : : from stat 2=initializefonts() stat 2=setfont("t'Times New Roman cyr'h 12 w 8") do ! LEFT WINDOW call clearscreen($gclearscreen) open (1, file='a. dat', form ='binary') do i =1, 100 do j = 1, 8 call random(rnd); ch(j)= int(32*rnd)! Symbol enddo ! j ! ===== PACK to BUFFER ========== do j=1, 8 !SYMBOL Обязательно from= ch(j) НЕЛЬЗЯ do k=1, 5 ! Rows bufer call mvbits(ch(j), k-1, 1, buf(k), j-1) call mvbits(from, k-1, 1, buf(k), j-1) enddo; enddo
ГРАФИЧЕСКИЙ ВЫВОД НА ЭКРАН do j=1, 8 !=====SCREEN====== nom= (i-1)*8 +j; row= (nom-1)/40; col=nom-row*40 u=(col-1)*12+50; v=200+row*20 stat= setcolor(0) call rectangle($gfillinterior, u, v, u+12, v+20) stat= setcolor(15) cc = char(ichar('А')+ch(j)) call Move. To(u, v, t); call outgtext(cc) enddo ! ----- SAVE to Bin File ------write(1)(buf(k), k=1, 5) enddo !i close(1)
! НАЧАЛО ТЕСТА ЗАПИСИ open (1, file='a. dat', form ='binary') do i=1, 100 ! ----- READ from Bin File Read(1)(r. BUF(k), k=1, 5) do k=1, 5 ! ======= UNPACK from BUFFER from = rbuf(k) do j=1, 8 !SYMBOL !call mvbits(ch(j), k-1, 1, buf(k), j-1) ! to call mvbits(from, j-1, 1, ch(j), k-1) !from enddo; enddo
ГРАФИЧЕСКИЙ ВЫВОД РЕЗУЛЬТАТОВ РАСПАКОВКИ !======= VIEW ============= do j=1, 8 nom= (i-1)*8 +j; row= (nom-1)/40; col=nom-row*40 u=500+(col-1)*12+50; v=200+row*20 stat 2=setcolor(0) call rectangle($gfillinterior, u, v, u+12, v+20) stat 2=setcolor(15) cc = char(ichar('А')+ch(j)) call Move. To(u, v, t); call outgtext(cc) enddo ! i-Loop Close(1) if(ichar(getchar. QQ())==27)stop enddo end
КОНТРОЛЬ РАБОТЫ ПРОГРАММЫ Заглавные русские буквы в случайном порядке ДО УПАКОВКИ В ФАЙЛ ПОСЛЕ РАСПАКОВКИ ИЗ ФАЙЛА
ВИДЫ ФАЙЛОВ В ФОРТРАНЕ Внешний – вне программы. Открывается оператором OPEN Внутренний – символ, строка (открыты по умолчанию) Доступ: последовательный прямой. В последовательных - нельзя редактировать промежуточную запись В прямых – доступ по номеру записи (REC) Для внутренних - только последовательный! ВНЕШНИЕ: 1)форматные (текстовые, ASCII) 2)Двоичные (бинарные) 3)Неформатные без преобразования данных
1 ФАЙЛОВЫЙ УКАЗАТЕЛЬ - ПОЗИЦИЯ ДОСТУПА 2 3 4 6 5 ПОЗИЦИЯ УКАЗАТЕЛЯ конец файла 1 начальная точка (перед записью) 2 между соседними записями 3 в пределах записи 4 в конечной точке файла (последней, но до «конец файла» ) 5 На записи «конец файла» 6 После записи «конец файла» Факт выхода на «конец» - ф-ция EOF = TRUE, если «конец» или за ним. Для смены положения в последовательных – REWIND или BACKSPACE
ВНУТРЕННИЕ ФАЙЛЫ character ch, ch 1 write(ch, '(a)')'a' read(ch, '(a)')ch 1 print *, ch 1 ! a end Use msflib implicit none character(80)st; integer i write(st, *)34. 56, -2147483648 do i=1, len_trim(st) print *, i, ' ', st(i: i) ! enddo print *, 'len-> ', len_trim(st) endprogram СИМВОЛ СТРОКА
РАЗМЕЩЕНИЕ СИМВОЛОВ ВО ВНУТРЕННЕМ ФАЙЛЕ write(st, *)-2147483648 do i=1, len_trim(st) print *, i, ' ', st(i: i) ! enddo print *, 'len-> ', len_trim(st) write(st, *)1 do i=1, len_trim(st) print *, i, ' ', st(i: i) ! enddo print *, 'len-> ', len_trim(st) write(st, *)-1234. 5678 do i=1, len_trim(st) print *, i, ' ', st(i: i) ! enddo print *, 'len-> ', len_trim(st)
ВНЕШНИЕ ФАЙЛЫ (OPEN) Присоединить к устройству В/В Номер устройства: целочисленное выражение или * КРОМЕ ФАЙЛОВ – физические устройства (клав-а, экран, принтер, // порт, …) В любой программе могут быть устройства 0, 5, 6, * (по-умолчанию). 0, 5, * - клав-а; 0, 6, * - экран. . Integer : : k = 2, m = 4 Open(k*m, file = ‘a. txt’) Write(8, ’(i 6)’)k Close(8)
Операции ВНЕШНИХ файлов BACKSPACE – назад на 1 запись REWIND - к началу первой записи ENDFILE - записывает запись «КОНЕЦ ФАЙЛА» OPEN CLOSE READ WRITE PRINT INQUIRE - Св-ва устройства или внешнего файла Функция EOF
ОПЕРАТОРЫ CVF ACCEPT - форматы B/B управляются списком TYPE = PRINT REWRITE - заменяет текущую запись FIND DELETE UNLOCK - освобождает запись после READ Оператор OPEN – создает устройство В/В с номером u связывается с внешним файлом file 18 параметров, если первый без имени, то UNIT = <первый> Общая структура оператора: OPEN ( [UNIT =] n [, ACCESS = acc] [ , <3 -ий парам>] … [, <18 -ый парам> ])
Дополнительные параметры оператора OPEN ACCESS = acc: доступ ‘APPEND’/ ‘DIRECT’/’SEQUENTIAL’ по умолчанию Если APPEND, то после открытия перед EOF ACTION = act: ‘READ’/’WRITE’/’READWRITE’ BLANK = bl : работа с пробелами ‘NULL’/’ZERO’ BLOCKSIZE =bsz : внутренний буфер в байтах CARRIAGECONTROL = c_ctrl : интерпретация первого символа форматных файлов ‘FORTRAN’/’LIST’ первый – управление кареткой если дополнительно параметр ‘UNFORMATTED’/’BINARY’ – то игнорируется! DELIM = dl : разделитель символьных данных ‘APOSTROPHE’/’QUOTE’/’NONE’ Если первый, то удвоить внутренний
OPEN(продолжение) ERR = err : метка исполняемого оператора при сбое открытия FILE = file : имя файла, если нет, то создается временный удаляемый после работы Если ‘USER’/’CON’ вывод на экран, ввод с Клавы М. б. ‘PRN’/’COM 1’ FORM = form : ‘FORMATTED’/’UNFORMATTED’/’BINARY’ Для последовательных по умолчанию FORMATTED Для прямых – UNFORMATTED IOFOCUS = iofocs (logical) : фокус дополнительного окна, если приложение Quick. Win и FILE =’USER’ IOSTAT = iost : переменная ц. т. =0, если нет ошибок OPEN, иначе = 1 MODE = mode : (аналогично ACTION) ‘READ’/’WRITE’/’READWRITE’ PAD = pad: ‘YES’/’NO’ если при форматном вводе требуется больше данных, чем в файле, то заполнение пробелами, иначе СБОЙ POSITION = pos: позиция нового файла при последовательном доступе ‘ASIS’-без изменений/’REWIND’/’APPEND’
OPEN (окончание) RECL = recl : длина записи в байтах (только для DIRECT!) SHARE = share : ограничение доступа для другого процесса (БД) ‘DENYRW’/’DENYWR’/’…RD’/’…NONE’ – можно работать всем STATUS = stat: ‘OLD’/’NEW’/’SCRATCH’/’REPLACE’/’UNKNOWN’ OLD – должен быть, иначе АВОСТ NEW – не должно быть, иначе АВОСТ SCRATCH – файл создается и уничтожается после работы автоматически если file нет, то по умолчанию! REPLACE – открываемый замещает существующий с тем же именем Если не существует, то NEW UNKNOWN – попытка найти OLD затем NEW
ФАЙЛ ПРЯМОГО ДОСТУПА Use msflib character(30): : n_f='aa. dat' type point real x, y endtype point integer : : ios, r=15, ner, i type(point): : pt 1=point(1, 1), pt 2 = point(2, 2), pt 3 = point(3, 3), ptt open(10, file=n_f, ACCESS ='direct', & form='formatted', recordtype ='fixed', recl=20, iostat=ios) if(ios/=0)stop 'Error OPEN!' write(10, '(2 f 10. 3)', rec=1)pt 1 write(10, '(2 f 10. 3)', rec=2)pt 2 write(10, '(2 f 10. 3)', rec=3)pt 3 read(10, '(a)', rec=2, iostat=ios) read(10, '(2 f 10. 3)', rec=3)ptt close(10) print *, ptt print *, 'OK!' end
ФАЙЛ ПРЯМОГО ДОСТУПА С УДАЛЕНИЕМ ПОСЛЕ РАБОТЫ ! Создать 30 записей. Оставить первые 15 program DIRECT_341 Use msflib implicit none character(30): : n_f='a 341. dat' character(35): : st ='One line' integer: : ios, r=15, ner, i, k logical : : sres ! Create 30 records open(1, file=n_f, access='direct', form='formatted', recl=35) do i=1, 30 write(1, '(a 35)', rec=i)st enddo close (1)
(окончание) open(2, file=n_f, access='direct', form='formatted', & recl=35, status='old', dispose='delete', iostat=ios) ! DELETE if(ios/=0)stop 'Error OPEN' read(2, '(a)', rec=r, iostat=ios) ! To 16 record inquire(2, nextrec=ner); print *, ner find(2'1) ! BEGIN open(1, file='new_a. dat', access='direct', form='formatted', recl=35) do k=1, 15 read(2, '(a)', rec=k)st write(1, '(a 35)', rec=k)st print *, st, k enddo close(1) close(2) sres =renamefile. QQ('new_a. dat', 'old_a. dat') ! RENAME end
Практикум на битовую упаковку (1) #1. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 2 N случайных русских букв случайным цветом (на черном фоне). Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #2. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N случайных заглавных русских букв со случайным цветовым атрибутом. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #3. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 4 N случайных малых русских букв белым цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #4. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N случайных 16 ричных цифр случайным цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! СОГЛАСОВАТЬ ВИД УПАКОВКИ! (НЕ КРАТНО 8)
Практикум на битовую упаковку (2) #5. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N случайных 8 ричных цифр со случайным цветовым атрибутом. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #6. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N символов '+' и '? ' случайным цветом. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #7. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 2 N символов 'A', 'B' и 'C' со случайным цветовым атрибутом. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #8. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N случайных русских букв белым цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ!
Практикум на битовую упаковку (3) #9. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N случайных заглавных русских букв желтым и голубым цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #10. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 4 N случайных малых русских букв случайным цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #11. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 4 N случайных 16 -ричных цифр случайным цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #12. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N случайных 8 ричных цифр случайным цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ!
Практикум на битовую упаковку (4) #13. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N символов '0' и '1' со случайным цветовым атрибутом. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #14. Ввести натуральное N. Случайным образом вывести на 1/2 экрана 8 N символов '. ', '%' и '$' белым цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую половину экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #15. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 4 N случайных русских букв случайным цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #16. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных заглавных русских букв белым цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ!
Практикум на битовую упаковку (5) #17. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных малых русских букв желтым и голубым цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #18. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных 16 ричных цифр желтым, голубым и белым цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #19. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных 8 ричных цифр белым цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #20. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N символов 'N' и 'Y' случайным цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ!
Практикум на битовую упаковку (6) #21. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N символов '+', '-' и '=' случайным цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #22. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных русских букв желтым, голубым и белым цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #23. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 4 N случайных заглавных русских букв случайным цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #24. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 4 N случайных малых русских букв случайным цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ!
Практикум на битовую упаковку (7) #25. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных 16 -ричных цифр со случайным цветовым атрибутом. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #26. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N случайных 8 -ричных цифр желтым и голубым цветом на черном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #27. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 8 N символов '+' и 'o' белым цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ! #28. Ввести натуральное N. Случайным образом вывести на 1/4 экрана 4 N символов 'э', 'ю' и 'я' случайным цветом на случайном фоне. Максимально плотно упаковать полученную информацию и записать в бинарный файл. Распаковать информацию из файла и вывести на другую 1/4 экрана. При упаковке и распаковке использовать БИТОВЫЕ ОПЕРАЦИИ!
ПРЕЗ_БИТФУНК.ppt