Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kitkat_otvety.doc
Скачиваний:
3
Добавлен:
01.08.2019
Размер:
3.29 Mб
Скачать

Билет 24

  1. Управление выводом русскоязычных текстов в консольном приложении Delphi.

  2. Оператор безусловного перехода. Пустой оператор.

1) В операционных системах семейства Windows каждому символу соот­ветствует число, либо, иначе говорят, - код ANSI, что расшифровывается как American National Standard Institute - американский национальный институт стандартизации, в ко­тором разработан этот код. Всего в таблице содержится 256 символов, которые кодируются числами от 0 до 255. Символы с номерами от 0 до 31 являют­ся служебными символами, т.е. предназначены не для отображения информации, а для управления отображением информацией.

Консольное приложение выполняется под управлением операционной MS DOS, которая эмулируется операционными системами семей­ства Windows. В отличие от Windows в MS DOS используется кодировка символов ASCII.

Сравнивая таблицы ANSI и ASCII, можно заметить, что первые их половины, т.е. симво­лы с кодами 0..127, совпадают, а вторые половины - коды с символами 128..255 - раз­личны. В первой половине содержатся цифры и буквы английского алфавита, а во вто­рой - буквы русского алфавита. Поскольку консольное приложение создается в операционной системе Windows, а выполняется как программа MS DOS, то попытки вы­вести русские символы на экран из-за различия в кодировках ANSI и ASCII обречены на неудачу. Но есть средства борьбы с этим:

1)function WinToDos(strWin: string): string;

var

strDos: string;

begin

SetLength(strDos,length(strWin));

CharToOEM(PChar(strWin),PChar(strDos));

result := strDos;

end;

2) function RusCode(strWin:string):string;

var

strDos: string;

i,kod:byte;

begin

strDos:='';

for i:=1 to length(strWin) do begin

kod:=ord(strWin [i]);

case kod of

192..239: strDos:= strDos +chr(kod-64);

240..250: strDos:= strDos +chr(kod-16);

168: strDos:= strDos +chr(240);

184: strDos:= strDos +chr(241)

else strDos:= strDos + strWin [i];

end;

end;

result := strDos;

end;

3) Кроме того можно писать текст в программе на английском языке или просто использовать латинские буквы.

2) Оператор перехода goto - это простой оператор, передающий управление в программе на другой оператор, перед которым стоит метка, указанная в операторе goto. В общем виде оператор записывается следующим образом:

goto < метка >;

Метка в Object Pascal - это произвольный идентификатор либо целое число без знака. Любая метка должна появиться в разделе описания меток, прежде чем она встретится в теле программы. В разделе операторов метка может стоять только перед одним опе­ратором и отделяется от него двоеточием. Нельзя передавать управление внутрь сложных операторов (if, case, операторы цик­лов), а также из вызывающей программы в подпрограмму. Оператор перехода следует использовать в исключительных ситуациях, поскольку он затрудняет понимание программы, делает ее запутанной и сложной в отладке.

Если поставить точку с запятой перед зарезервированным словом end, то это будет означать, что между точкой с запятой и словом end находится пустой оператор. Пустой оператор не выполняет никаких действий, в него не входят какие-либо символы. Например, если в программе идут два подряд символа «точка с запятой», то это озна­чает, что между ними находится пустой оператор. Пустой оператор никаким образом не влияет на ход выполнения программы. В основном пустой оператор используется для передачи управления в конец составного оператора: как и любой другой, пустой оператор может быть помечен, и ему можно передать управление.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]