|
|
| (Не са показани 10 междинни версии от същия потребител) |
| Ред 1: |
Ред 1: |
| − | '''ASCII''' е съкращение от '''Американска стандартна таблица със знаци за обмен на информация'''. Тя намира приложение при използването на комютрите и осъществяването на обмен на информация между различни сървъри и персонални мрежи. | + | [[file:asc.jpg|right|thumb|300px|ASCII картинка на слон]] |
| | + | '''ASCII''' е съкращение от '''Американска стандартна таблица със знаци за обмен на информация'''. Тя намира приложение при използването на комютрите и осъществяването на обмен на информация между различни сървъри и персонални [[мрежа|мрежи]]. Таблицата можете да намерите [http://cpp-examples.com/table.php тук]. |
| | ==Същност== | | ==Същност== |
| − | Числата са езикът на компютрите. Как компютърът използва азбуката, за да комуникира с програми и други компютри? Единият начин е чрез конвертиране на набор от знаци в цифрово представяне. | + | Числата са езикът на компютрите. Как [[компютър]]ът използва азбуката, за да комуникира с програми и други компютри? Единият начин е чрез конвертиране на набор от знаци в цифрово представяне. |
| | | | |
| | Поради нужда от стандарт през 60-те години се появява Американската стандартна таблица със знаци за обмен на информация (ASCII) (произнася се "аски"). ASCII таблицата съдържа 128 числа, които съответстват на знаци. Чрез ASCII таблицата компютрите могат да съхраняват и обменят данни с други компютри и програми. | | Поради нужда от стандарт през 60-те години се появява Американската стандартна таблица със знаци за обмен на информация (ASCII) (произнася се "аски"). ASCII таблицата съдържа 128 числа, които съответстват на знаци. Чрез ASCII таблицата компютрите могат да съхраняват и обменят данни с други компютри и програми. |
| | | | |
| − | Текстът, форматиран с 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 за работа със символи] |
| | *[http://office.microsoft.com/bg-bg/help/HA001133136.aspx Таблица с ASCII знаци] | | *[http://office.microsoft.com/bg-bg/help/HA001133136.aspx Таблица с ASCII знаци] |
| | ==Външни препратки== | | ==Външни препратки== |
| − | [[category:Кибернетика]] | + | *[http://user.xmission.com/~emailbox/ascii_cats.htm ASCII cats (english)] |
| | + | *[http://www.network-science.de/ascii/ ASCII Generator] |
| | + | *[http://www.lookuptables.com/ HTML Codes] |
| | + | [[category:Информатика]] |