|
|
| (Не са показани 6 междинни версии от същия потребител) |
| Ред 1: |
Ред 1: |
| − | [[file:asc.jpg|right|thumb|ASCII картинка на слон]] | + | [[file:asc.jpg|right|thumb|300px|ASCII картинка на слон]] |
| | '''ASCII''' е съкращение от '''Американска стандартна таблица със знаци за обмен на информация'''. Тя намира приложение при използването на комютрите и осъществяването на обмен на информация между различни сървъри и персонални [[мрежа|мрежи]]. Таблицата можете да намерите [http://cpp-examples.com/table.php тук]. | | '''ASCII''' е съкращение от '''Американска стандартна таблица със знаци за обмен на информация'''. Тя намира приложение при използването на комютрите и осъществяването на обмен на информация между различни сървъри и персонални [[мрежа|мрежи]]. Таблицата можете да намерите [http://cpp-examples.com/table.php тук]. |
| | ==Същност== | | ==Същност== |
| Ред 7: |
Ред 7: |
| | | | |
| | Текстът, форматиран с ASCII таблицата, не съдържа информация за получер, курсив и [[шрифт]]ове. Когато използвате Microsoft Notepad или записвате файл като обикновен текст в Microsoft Office Word се използва ASCII таблицата. Вероятно сте чели обяви за работа, в които работодателят иска автобиографиите в ASCII формат. Това означава, че независимо по какъв начин пращате автобиографията (по електронна поща, факс или на хартия), работодателят я иска без форматиране. Големите фирми обикновено сканират автобиографиите, а форматираният с ASCII текст е подходящ за [[софтуер]] за сканиране и оптично разпознаване (OCR). | | Текстът, форматиран с ASCII таблицата, не съдържа информация за получер, курсив и [[шрифт]]ове. Когато използвате Microsoft Notepad или записвате файл като обикновен текст в Microsoft Office Word се използва ASCII таблицата. Вероятно сте чели обяви за работа, в които работодателят иска автобиографиите в ASCII формат. Това означава, че независимо по какъв начин пращате автобиографията (по електронна поща, факс или на хартия), работодателят я иска без форматиране. Големите фирми обикновено сканират автобиографиите, а форматираният с ASCII текст е подходящ за [[софтуер]] за сканиране и оптично разпознаване (OCR). |
| − | ==Вмъкване на ASCII знак в документ==
| |
| − |
| |
| − | ЗАБЕЛЕЖКА! Тази функция изисква Excel, FrontPage, InfoPath, OneNote, Outlook, PowerPoint, Project, Publisher, Word или Visio.
| |
| − |
| |
| − | Освен въвеждането на знак от клавиатурата, можете да използвате кода на символа като клавишна [[комбинация]]. За да вмъкнете символа за градус например, трябва да натиснете и задържите клавиша ALT и да въведете 0176 на цифровата клавиатура.
| |
| − |
| |
| − | За да въведете ASCII знак от таблиците по-долу, натиснете и задръжте клавиша ALT, докато въвеждате цифровия еквивалент.
| |
| − | За да вмъкнете символа за градус например, трябва да натиснете и задържите [[клавиш]]а ALT и да въведете 0176 на цифровата клавиатура.
| |
| − |
| |
| − | ЗАБЕЛЕЖКА! За въвеждането на числата трябва да използвате цифровата клавиатура, а не основната. Проверете дали клавишът NUM LOCK е включен, ако клавиатурата го изисква за въвеждане от цифровата клавиатура.
| |
| − |
| |
| − | ===Печатаеми ASCII знаци===
| |
| − |
| |
| − | Числата 32–126 съответстват на знаци от клавитурата, които можете да видите при преглед или печат на документи. Числото 127 отговаря на командата DELETE.
| |
| − |
| |
| − | ===Разширени печатаеми ASCII знаци===
| |
| − |
| |
| − | Разширените ASCII знаци отговарят на нуждата от повече знаци. Разширената ASCII таблица включва 128 знака от стандартната ASCII таблица (числата 0–32 се показват в следващата таблица), както и още 128, като общо знаците са 256. Въпреки тези допълнителни знаци, в някои езици има символи, за които дори 256 знака не достигат. Поради тази причина ASCII таблицата има няколко разновидности с [[цел]] да обхване регионални знаци и [[символ]]и.
| |
| − |
| |
| − | Например, ASCII таблицата, позната още като ISO 8859-1, се използва от много софтуерни програми за езици в Северна Африка, Западна Европа, Австралия и Африка.
| |
| − |
| |
| − | ===ASCII управляващи непечатаеми знаци===
| |
| − |
| |
| − | Числата 0–31 в ASCII таблицата съответстват на управляващи знаци, които се използват за [[управление]] на периферни устройства като принтери. Например, 12 съответства на функцията за подаване на лист/нова страница. Тази команда инструктира [[принтер]]а да пропусне горната част на следващата страница.
| |
| − |
| |
| − | ===Допълнение на ASCII таблицата===
| |
| − |
| |
| − | Друга по-нова таблица със знаци е т. нар. Unicode таблица. Тъй като е много по-голяма, тя съдържа 65 536 знака, а не 128 или 256. Този по-голям обем позволява на повечето знаци от различни езици да бъдат включени в един набор от знаци.
| |
| − |
| |
| − | ==Обработка на символна информация==
| |
| − | Освен за програми обработващи числени данни езикът Pascal може да се използва и за обработка на символни [[Анализ на данните|данни]]. В Pascal символните данни са три вида: отделни символи, низ от символи и текстов файл. Тук се разглежда работа с първите два вида символни данни.
| |
| − |
| |
| − | *Отделни символи
| |
| − | *Символен тип
| |
| − | *Тип низ от символи
| |
| − |
| |
| − | Отделни символи в паметта на [[компютър]]а обикновено се кодират в един байт. Поради това те са 256 и на всеки символ съответна [[число]] - неговия код. В операционната система DOS тези символи са подредени в ASCII таблица. Тя включва малките и големите латински букви, цифрите, малките гръцки букви, препинателни знаци, псевдо-графични символи за изчертаване на таблици и блокове, управляващи знаци, букви с ударения използвани в разлени азбуки и др. Някои от управляващите символи са:
| |
| − |
| |
| − | *нов ред (Line Feed) - код 10,
| |
| − | *начало на ред (Carriage Return) - код 13,
| |
| − | *нова страница на принтера (Form Feed) - код 12,
| |
| − | *табулация (Tab) - код 9,
| |
| − | *символ назад (Back Space) - код 8,
| |
| − | *звуков сигнал (Bell) - код 7.
| |
| − |
| |
| − | Символите, които не са отбелязани на клавиатурата, могат да се въведат, като се държи натисват клавиша Alt и чрез цифрите в дясната част на клавиатурата се набере трицифрения код на символа.
| |
| − |
| |
| − | В [[Windows]] символите зависят от шрифта с който се работи. Шрифтовете обикновено са подредени в ANSI таблица. Напоследък се използват разширени двубайтови шрифтове и тогава броят на символите е около 65000.
| |
| − |
| |
| − | Оригиналната ASCII таблица и много от шрифтовете в Windows не съдържат [[кирилица]]. В ASCII таблицата тя се добавя чрез специална кирилизираща програма и обикновено започва от код 128. Тя се състои от общо 64 букви (големи и малки). Те заместват буквите с ударения и част от псевдо- графичните символи в оригиналната таблица. Съществуват обади други наредби на кирилицата както в DOS, така и в шрифтовете за Windows. Затова препоръчително е в програмата да се работи със самите символи, а не с кодовете на символите.
| |
| − |
| |
| − | Символен тип. Това е вградения в Pascal тип char. На променливи от този тип в програмата може да се присвояват стойности чрез оператор за присвояване или чрез вход от [[клавиатура]]та. Символните константи, за които бе споменато във втора точка се задават чрез символа заграден с апострофи (напр. 'ж'). Символът [[апостроф]] се задава чрез четири символа апостроф по следния начин - ''''.
| |
| − |
| |
| − | Внимание! На клавиатурата има два символа апостроф: ляво наклонен и дясно наклонен. В Pascal се използва дясно наклонения, който е на един и същи клавиш с кавичката.
| |
| − |
| |
| − | Символните данни могат да участват в операциите за сравнение. При това се извършва сравняване на кодовете на символите. Символният тип е изброим тип. В Pascal съществуват следните библиотечни функции за работа със символи.
| |
| − |
| |
| − | [[file:ascii.jpg]]
| |
| − |
| |
| − | ===Задача 8.1===
| |
| − |
| |
| − | Да се изведат на екрана всичките 256 символи.
| |
| − |
| |
| − | [[file:ascii1.jpg]]
| |
| − |
| |
| − | Тип низ от символи. Низ от символи наричаме крайна наредена съвкупност от символи. Константен низ от символи (напр. 'Решение:' ), за който бе споменато във втора точка, представлява подредени един след друг символи, заградени с апострофи. Ако в низа има символа апостроф, той се пише два пъти (напр. 'Пролет''2000'). За тип низ от символи в Pascal има вграден тип string. Декларирането на променливи от този тип става по два начина:
| |
| − |
| |
| − | име: string;
| |
| − |
| |
| − | име: string[максимален_брой_символи];
| |
| − |
| |
| − | При първия начин се подразбира, че максималният брой символи на низа е 255. При втория начин на деклариране максимален_брой_символи трябва да е цяла константа от 1 до 255. Когато се декларират параметри на подпрограми от тип низ от символи се ползва само първия начин на деклариране. От такъв тип са и функциите със стойност низ от символи.
| |
| − |
| |
| − | ===Пример 8.2===
| |
| − |
| |
| − | [[file:ascii2.jpg]]
| |
| − |
| |
| − | Данните от тип низ от символи заемат в паметта толкова байта, колкото е тяхната максимална дължина плюс един.
| |
| − |
| |
| − | Променливите от тип низ от символи могат да получават стойности чрез оператор за присвояване или чрез процедура за вход от клавиатурата. Стойността, която променливата може да приемат, е низ с дължина от 0 символа до максималната дължина на променливата. Низ с дължина 0 се нарича празен низ и се бележи с ''.
| |
| − |
| |
| − | ===Пример 8.3===
| |
| − | (виж пример 8.2):
| |
| − |
| |
| − | [[file:asci3.jpg]]
| |
| − |
| |
| − | Низове могат да участват в операции за сравнение. Сравнението на два низа става по лексикографски начин т.е. първо се сравняват първите символи на двата низа, след това вторите и т.н. Всъщност се сравняват кодовете на съответните символи. Ако един низ изцяло се съдържа в началото на друг, то той е по-малък от него.
| |
| − |
| |
| − | ===Пример 8.4===
| |
| − |
| |
| − | [[file:ascii4.jpg]]
| |
| − |
| |
| − | В Pascal съществува специална операция наречена конкатенация за слепване на низове. Конкатенация на два низа се задава чрез знака "+". Тази операция не е еквивалентна на събиране защото не е асоциативна ( 'Иван' + 'Петров' ¹ 'Петров' + 'Иван' ). Трябва да се внимава при слепване резултантния низ да не е по-дълъг от максималната дължина.
| |
| − |
| |
| − | ===Пример 8.5===
| |
| − |
| |
| − | [[file:ascii5.jpg]]
| |
| − |
| |
| − | Обръщението към отделните символи в един низ става чрез индекс. Първият символ е с [[индекс]] 1, вторият - с индекс 2 и т.н.
| |
| − |
| |
| − | ===Пример 8.6===
| |
| − |
| |
| − | [[file:ascii6.jpg]]
| |
| − |
| |
| − | Променливите низове всъщност имат и символ с индекс 0. Кодът на този символ съответства на дължината на низа в съответната [[променлива]]. Например, ако s = 'Иван Петров', то ord(s[0]) = 11.
| |
| − |
| |
| − | В Borland Pascal има няколко библиотечни подпрограми за работа с низове.
| |
| − |
| |
| − | function length(s: string): string - определя дължината на низа s. Еквивалентна на ord(s[0]).
| |
| − |
| |
| − | function concat(s1, s2, ..., sN: string): string - извършва операцията конкатенация Съществува за съвместимост с програми написани на по-старите версии на Pascal, където тази операция не се е поддържала.
| |
| − |
| |
| − | function copy(s: string; index, broj: integer): string - взема под низ на низа s. Резултантния подниз започва от символ с индекс index и е с дължина broj.
| |
| − |
| |
| − | procedure insert(subs: string; var s:string; index: integer) - вмъква низа subs вътре в низа s на позиция index. В резултат на това s става по-дълъг.
| |
| − |
| |
| − | procedure delete(var s:string; index, broj: integer) - изтрива от низа s broj на брой символи от символа с индекс index нататък. В резултат на това s става по-къс.
| |
| − |
| |
| − | function pos(subs, s: string): integer - търси отляво на дясно дали низът subs е подниз на низа s. Ако не е, резултатът е 0, иначе функцията връща индекса на първия символ на подниза subs в низа s. Например pos('Иван', 'Иво Иванов Иванов') = 5.
| |
| − |
| |
| − | procedure str(x: числов; var s: string) - преобразува числото x в низа s. Към числото може да се приложат форматиращите модификатори за брой позиции и точност подобно на процедурите write и writeln за изход на екрана. Например, ако str(-3.14:6:3, s), тогава s = ' -3.140'.
| |
| − |
| |
| − | procedure val(s: string; var x: числов; var code: integer) - преобразува низа s в числото x, ако е възможно. В s трябва да има низ изобразяващ правилно записано цяло или реално число. Допуска се и научен формат за запис на реалното число. При правилно преобразуване параметърът code = 0, иначе code дава индекса на този символ в s, който е предизвикал грешката.
| |
| − |
| |
| − | ===Задача 8.2===
| |
| − | Да се състави функция, която изчислява броя на думите в един низ.
| |
| − |
| |
| − | [[file:ascii7.jpg]]
| |
| − |
| |
| − | ===Задача 7.3===
| |
| − | Да се състави процедура за заместване на един подниз на даден низ с друг подниз.
| |
| − |
| |
| − | [[file:ascii8.jpg]]
| |
| − |
| |
| | ==Вижте още== | | ==Вижте още== |
| | *[[Изходен код]] | | *[[Изходен код]] |
| | + | *[[Вмъкване на ASCII знак в документ]] |
| | *[[Алън Тюринг]] | | *[[Алън Тюринг]] |
| − | *[[Джон Атанасов]] | + | *[[Обработка на символна информация]] |
| | *[[Кибернетика]] | | *[[Кибернетика]] |
| | + | *[[Език за програмиране Pascal]] |
| | *[[Програма]] | | *[[Програма]] |
| | *[[Машина]] | | *[[Машина]] |
| | *[[Линеен код]] | | *[[Линеен код]] |
| | + | |
| | ==Източници== | | ==Източници== |
| | *[http://www.mgu.bg/drugi/ebooks/hristov/chapter10.htm Обработка на символна информация в Pascal. Символен тип и тип низ от символи. ASCII таблица в DOS. Операции с отделни символи и с низове от символи. Вградени подпрограми в Borland Pascal за работа със символи] | | *[http://www.mgu.bg/drugi/ebooks/hristov/chapter10.htm Обработка на символна информация в Pascal. Символен тип и тип низ от символи. ASCII таблица в DOS. Операции с отделни символи и с низове от символи. Вградени подпрограми в Borland Pascal за работа със символи] |
| Ред 156: |
Ред 25: |
| | *[http://www.network-science.de/ascii/ ASCII Generator] | | *[http://www.network-science.de/ascii/ ASCII Generator] |
| | *[http://www.lookuptables.com/ HTML Codes] | | *[http://www.lookuptables.com/ HTML Codes] |
| − | [[category:Кибернетика]] | + | [[category:Информатика]] |