На этом этапе стоит определиться с, так называемой, длиной информационного слова, то есть длиной строки из нулей и единиц, которые мы будем кодировать. Допустим, у нас длина слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит, которые мы будем потом кодировать отдельно друг от друга. Так как один символ занимает в памяти 8 бит, то в одно кодируемое слово помещается ровно два ASCII символа. Итак, мы получили две бинарные строки по 16 бит:
1. Размеры изображения даны в сантиметрах, а разрешающая сканера - в дюймах. Нужно перейти к каким-то одним единицам измерения, учитывая соотношение: 1 дюйм ≈ 2.54 см. Допустим, расчеты ведем в сантиметрах. По одной стороне изображения сканер распознает на длине в 1 дюйм (т.е. 2.54 см) 600 точек, по другой - 1200 точек. Тогда на 1 см длины придется 600/2.54 точек и 1200/254 точек соответственно. А на длине в 10 см - в 10 раз больше. Общее количество точек составит При глубине цвета два байта полученный графический файл будет иметь объем байт. Можно перевести в мегабайты: Мбайт
2. Расчет аналогичный, поэтому можно писать кратко.
//PascalABC.Net function DelWord(s:string):string; var i,n:integer; begin n:=length(s); i:=n; repeat if i>=1 then Dec(i); until s[i]=' '; Delete(s,i+1,n-i); DelWord:=s end;
var st:string; begin Write('Введите строку: '); Readln(st); Writeln('Результат: ',DelWord(st)) end.
Тестовое решение: Введите строку: А роза упала на лапу Азора Результат: А роза упала на лапу
//PascalABC.Net function DescDigits(s:string):boolean; var desc:boolean; i,n:integer; c1,c2:char; begin n:=length(s); desc:=true; c1:='A'; { главное, чтобы символ был "старше" любой цифры } i:=1; repeat c2:=s[i]; if c2 in ['0'..'9'] then if c2<c1 then c1:=c2 else desc:=false; Inc(i) until (i>n) or (not desc); DescDigits:=desc end;
var s:string; begin Write('Введите строку: '); Readln(s); if DescDigits(s) then Writeln('true') else Writeln('false') end.
Тестовое решение: Введите строку: Пример строки с цифрами 98 по убыванию 7 6,5, так4тоже1можно! true
Вариант первой программы для Borland Pascal 7.01 uses Crt; function DelWord(s:string):string; var i,n:integer; begin n:=length(s); i:=n; repeat if i>=1 then Dec(i); until s[i]=' '; Delete(s,i+1,n-i); DelWord:=s end;
var st:string; begin ClrScr; Write('Введите строку: '); Readln(st); Writeln('Результат: ',DelWord(st)); ReadKey end.
На этом этапе стоит определиться с, так называемой, длиной информационного слова, то есть длиной строки из нулей и единиц, которые мы будем кодировать. Допустим, у нас длина слова будет равна 16. Таким образом, нам необходимо разделить наше исходное сообщение («habr») на блоки по 16 бит, которые мы будем потом кодировать отдельно друг от друга. Так как один символ занимает в памяти 8 бит, то в одно кодируемое слово помещается ровно два ASCII символа. Итак, мы получили две бинарные строки по 16 бит: