Мои Конспекты
Главная | Обратная связь

...

Автомобили
Астрономия
Биология
География
Дом и сад
Другие языки
Другое
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Металлургия
Механика
Образование
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Туризм
Физика
Философия
Финансы
Химия
Черчение
Экология
Экономика
Электроника

Прогр-я клавиатуры.





Помощь в ✍️ написании работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Ряд дополн-х возможно­стей дают ф-и ReadKey и KeyPressed. Они обеспечивают потребности большинства прикладных программ. Ф-я ReadKey без парам-в. Она возвращает знач-е типа CHAR - код нажатой клавиши. С ее помощью можно считать и опознать нажатие на любую клавишу, кроме клавиш-переключателей (Alt, Shift, Ctrl, Caps Lock). Эта ф-я приостанавливает работу прогр-ы до тех пор, пока не будет нажата клавиша. Считанный символ не отображается на экране, т. е. ф-я ReadKey вводит символ без высвечивания его на экране (без эхо-повтора). Это дает воз­м-сть д/разработки удобных интерактивных прог-м, управление кот-ми сводится в основном к нажатию функц-х клавиш. С помощью ReadKey можно считать коды основных клавиш и расширенные коды ПК. Расширенные коды - это коды верхнего ряда клавиш, коды правой части клав-ры и коды комбинаций клавиш Alt, Ctrl, Shift с другими клавишами. В случае считывания расширенных кодов при первом обращении ф-я ReadKey возвращает код 0, а при втором - код расширенного набора кодов.

uses Crt;

var

Cl, C2 : Chan; {- переменные для считанных символов}

begin ClrScr; { - очистка экрана}

repeat { - начало цикла}

C1:= ReadKey; {- считывание первой половины кода}

if C1 = #0 {- анализ значения первой половины кода}

then C2:= ReadKey; {- считывание второй половины кода}

if C1 = #0 then writeln ('C1 = #0 ', ord(C1): 5, ord(C2):5)

else Writeln ('C1 <> #0', ord(C1) : 5 );

until (C1 = #0) and (C2=#3) {- это код Ctrl+2}

end.

 

38. Методы сортировки данных.

Сортировка (упорядочение) – это располож-е эл-тов множ-ва данных в опр-ной послед-ти: в порядке возрастания или убывания клю­чей – признаков сортировки. Множ-вом д/сортировки могут быть эл-ты массивов или записи файлов. Ключом может быть эл-т записи, по ктр производ-ся сортировка, и может быть поиск в отсортирован.множ-ве. # можно сортировать списки студентов по фамилиям или по № зачеток. Кроме того, ключом может быть и любое сочетание поисковых призна­ков, представлен.логическим выраж-ем. Сортировка нужна для того, чтобы: 1)обеспечить более эффектив.обработку в больших наборах данных; 2)представить чел-ку массивы данных в форме, удобной для анализа; 3)построить гистограммы распредел-я данных. Критериями оценки различ­ных методов сортировки могут быть: 1)кол-во сравнений и пересылок записей; 2)время сортировки задан.объема данных; 3)требуемый объем ОП д/сортировки; 4)сложность алгоритмов и пр-м сортировки. Сортировки могут быть внутренние и внешние. Внутренние выполн-ся в ОП. Внешние используют МД. Но во всех внешних сортировках исполь­з-ся внутрен.сортировки. 1)Сортировка включением состоит в том,что из входного множ-ва эл-ты берутся подряд. В выход.множ-во они устанавлив-ся так, чтобы не нарушить его упорядочен-ти. Эл-т, включаемый в выход.множ-во, как бы «пробирается» на требуемое место. В сортировке включ-ем эл-ты вход.множ-ва могут вводиться с внеш.устр-ва по одному. Таким образом, можно экономить ОП д/вход.множ-ва. Предположим, что на некотором этапе работы алг-ма лев.часть массива с 1-го по (i-1)-й эл-т включит-но явл-ся отсортированной,а прав.часть с i-го по n-й эл-т остается такой, какой она была в первоначальном, неотсортирован.массиве. Очередной шаг алг-ма заключ-ся в расширении лев.части на 1эл-т и сокращении прав.части. Д/этогоберется первый эл-т прав.части (с индексом i) и вставл-ся на подходящее ему место влев.часть так,чтобы упорядочен-ть лев.части сохр-сь. Процесс начин-ся с лев.части, состоящей из одного эл-та A[1], а заканчив-ся, когда прав.часть становится пустой. Procedure StraightInsertion; Var I,j: Integer; x: Tovar; Begin For i:=2 To n Do Begin x:=A[i] {в переменной х запомин-ся знач-е,ктр нужно поставить на свое место в лев.части}; j:=i-1 {прав.край лев.части}; While (x.key<A[j].key) and (j>=1) Do Begin A[j+1]:=A[j]; j:=j-1 {продвижение «дырки» в лев.части массива справа налево до той позиции, в ктр должен быть включен эл-т A[i]}; End; A[j+1]:=x {включение A[i] в «дырку» в лев.части}; end; end. 2)Алг-м быстрой сортировки. В нем использ-ся 3 идеи: разделение сортируемого массива на 2 части (лев.и правая); взаимное упорядочение 2х частей так, чтобы все эл-ты лев.части не превосходили эл-тов прав.части; рекурсия, при ктр подмассив упорядочив-ся точно таким же способом, как и весь массив. Д/разделения массива на 2части нужновыбрать некоторое «барьерное» знач-е ключа. Это знач-е должно удовлетворять единствен.усл-ю: лежать в диапазоне знач-й д/дан.массива (т.е.между min и мах величиной0. Далее нужно сдулать так, чтобы в лев.подмассиве оказались все эл-ты с ключом, меньшим барьера, а в правом – с большим. Затем, просматривая массив слева направо, необх-мо найти позицию первого эл-та с ключом, большим барьера, а просматривая справа налево – найти первый эл-т с ключом, меньшим барьера. Следует поменять эти знач-я,затем продолжить встречное движение до след.пары эл-тов, предназначенных д/обмена. Необх-мо повторять эту процедуру, пока индексы лев.и правого просмотров не совпадут. Место совпадения станет границей между 2мя взаимно упорядоченными подмассивами. Далее алг-м рекурсивно примен-ся к каждому из подмассивов. В конечном счете приходим к совок-ти из n взаимно упорядоченных одноэл-тных массивов, ктр делить дальше невозможно. Эта совок-ть образует один полностью упорядочен.массив. Сортировка завершена.

 

Доверь свою работу ✍️ кандидату наук!
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой



Поиск по сайту:







©2015-2020 mykonspekts.ru Все права принадлежат авторам размещенных материалов.