Программируем по-русски
|
Основная задача Глагола — дать человеку возможность воплощать свои мысли на языке, близком к его родному языку. Издатель Глагола
|
|
Программница на Глаголе
коллекция приложений на языке Глагол
Август 2014 г. Расположение отделов с приложениями |
▲ \Глагол\Приложения\Игры\
(* Программа игры в русские шашки на языке Глагол. (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ОбновитьСекундомер(номерЧасов:ЦЕЛ); (* обновить секундомер *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ПредУровень; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СледУровень; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА НачатьЗаново(поле:Поле.Доступ); (* начать новую игру *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СоздатьПоле():Поле.Доступ; (* создает рабочее поле экрана *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Поехали; (* НАЗНАЧЕНИЕ: игра "Тетрис" *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Случ(до:ЦЕЛ):ЦЕЛ; (* Цель: выдать случайное число *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА рисоватьКлетку(x,y,цвет:ЦЕЛ); (* прорисовка на экране клетки ящика, * передаётся в распоряжение отделу Ящик *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА НачатьЗаново; (* подготовка к новой игре *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Показания; (* обновляет показания на экране *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ПредУровень; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СледУровень; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СоздатьПоле():Поле.Доступ; (* создаёт рабочее поле экрана *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Пауза(мс:ЦЕЛ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Переход(номерЧасов:ЦЕЛ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Поехали; (* НАЗНАЧЕНИЕ: пример игры "Крестики-нолики" *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА РисоватьПозицию; (* Цель: прорисовка на экране всей позиции игры * До: <Игра.позиция> - позиция со значками ('+' и 'о') * Прим: каждая клетка занимает два знакоместа в ширину *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА НачатьЗаново; (* Цель: подготовиться к новой игре *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА МышкаВКлетку(x,y:ЦЕЛ); (* Цель: сообразить, что делать, если человек загнал мышку в эту клетку * До: |
▲ \Глагол\Приложения\Иное\
(* НАЗНАЧЕНИЕ: вывод на экран слова "Привет!" *) Запуск приложения Привет в консоле Windows - c:\Глагол\Приложения\Иное >Привет (* НАЗНАЧЕНИЕ: перекодировка текстовых файлов в УНИкод и в кодировку ВИН (1251) *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Ошибка1(ц-:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Работа(ч:Читать.Поток; п:Писать.Поток); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова(); (* НАЗНАЧЕНИЕ: транслитерация в латиницу файла, содержащего русские буквы *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Ошибка1(ц-:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Работа(ч:Читать.Поток; п:Писать.Поток); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова(); (* НАЗНАЧЕНИЕ: перевод служебных слов Оберона в служебные слова Глагола и обратно *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Ошибка1(ц-:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова(); (* НАЗНАЧЕНИЕ: основные задачи для отдела ОберГла.отд *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Сравнить(с1-,с2-:Ряд.Вид):ЦЕЛ; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Перевод-(ч:Читать.Поток; п:Писать.Поток); ЗАДАЧА Пропуск; (* Пропуск знака без обработки *) ЗАДАЧА ЧитатьСлово(ц+:ЦЕПЬ); (* Чтение слова в цепочку знаков *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ВводСл(г-,о-:ЦЕПЬ); (* НАЗНАЧЕНИЕ: вычисление 'ЗНАКОВ'=1024 числа "e" после запятой *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Разделить(X+:Число; i,п0+:ЦЕЛ); (* X:=X/i *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Добавить(E+,X-:Число; п0:ЦЕЛ); (* E:=E+X *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ВыводЧисла(E-:Число); (* Вывод на экран числа E *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Расчёт; (* Распределение памяти, расчёт по алгоритму и вывод ответа на экран *) (* НАЗНАЧЕНИЕ: приближенное вычисление числа "Пи" *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* Расчёт по алгоритму и вывод ответа на экран *) (* НАЗНАЧЕНИЕ: пример использования времени и наделов (кнопок и полей в окнах) *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ОбновитьПоказания(номерЧасов:ЦЕЛ); (* обновить показания секундомера *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Главная; ЗАДАЧА СоздатьПоле; (* создаёт рабочее поле экрана *) Запуск приложения Секундомер в Графическом Окне Запуск приложения Секундомер в Консольном Окне |
▲ \Глагол\Приложения\Календарь\
(* НАЗНАЧЕНИЕ: работа с календарём *) (****************************************************************************** * Переводит дату в число дней, прошедших от начала 1 года н. э. (числовое * представление даты) ******************************************************************************) ЗАДАЧА ВЧисло-(дата-:Вид):ЦЕЛ; (****************************************************************************** * Переводит число дней, прошедших от начала 1 года н.э. в дату ******************************************************************************) ЗАДАЧА ИзЧисла-(n:ЦЕЛ; дата+:Вид); (****************************************************************************** * Вычисляет, является ли год високосным ******************************************************************************) ЗАДАЧА Високосный-(год:ЦЕЛ):КЛЮЧ; (****************************************************************************** * Возвращает число дней в указаном месяце данного года ******************************************************************************) ЗАДАЧА ДнейВМесяце-(месяц,год:ЦЕЛ):ЦЕЛ; (****************************************************************************** * Возвращает число дней, которое необходимо прибавить к дате, чтобы перевести её * из даты Григорианского календаря в дату Юлианского календаря (старый стиль), * используя числовое представление текущей даты ******************************************************************************) ЗАДАЧА СтарыйСтиль-(n:ЦЕЛ):ЦЕЛ; (****************************************************************************** * Возвращает номер текущего дня недели (1-понедельник, … , 7-воскресенье), * используя числовое представление текущей даты ******************************************************************************) ЗАДАЧА ДеньНедели-(дата-:Вид):ЦЕЛ; (* НАЗНАЧЕНИЕ: вычисление даты православной Пасхи для заданного года *) ЗАДАЧА ПравославнаяПасха(год:ЦЕЛ); |
▲ \Глагол\Приложения\Математика\
(* ПРОВЕРКА: точности вычисления специальных функций *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Значений(метка-:ЦЕПЬ; п+:Читать.Поток):ЦЕЛ; (* Цель: 1) открыть поток, содержащий проверочные данные * 2) найти в нём данные для заданной функции * 3) прочитать число проверочных значений этой функции * До: <метка> - строка-метка с названием функции * После: <п> - поток, открытый и установленный в начало данных * для этой функции * Ответ: число проверочных значений этой функции *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Факториал; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА БиномКоэф; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Г; (* Гамма-функция *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА НепГ; (* Неполная Гамма-функция *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Бета; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА НепБета; (* Неполная Бета-функция *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА erf; (* функция ошибок *) (* ПРОВЕРКА: точности вычисления трансцендентных функций *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СлучАрг(x+:Вектор; от,до:Вещ); (* Заполняет вектор аргументов случайными числами от <от> до <до>, * округляет до 4-го знака после запятой и располагает в возрастающем порядке. *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Оборот(прямИмя-,обрИмя-:ЦЕПЬ; прямФ,обрФ:Функция; от,до:Вещ); (* ПРОВЕРКА: скорости вычисления математических функций 1-го аргумента *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Расчет(f:Функция):ВЕЩ; (* ПРОВЕРКА: вычислений с комплексными числами *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Арифметика; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Корень; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Оборот(прямИмя-,обрИмя-:ЦЕПЬ; прямФ,обрФ:Функция);
(****************************************************************************** * ПРОВЕРКА: * решение систем линейных уравнений (A*x=b) методом LU-разложения для * комплексных чисел ******************************************************************************) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова;
(****************************************************************************** * ПРОВЕРКА: * сравнением вычисления быстрого преобразования Фурье (БПФ) и * вычисления обычного ПФ ******************************************************************************) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА f(t:Вещ):Вещ; (* сигнал в определенный момент времени *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: скорости при двойной точности / Double precision Whetstone (A001) *) ЗАДАЧА PA(E+:ARRAY4); ЗАДАЧА P0; ЗАДАЧА P3(X,Y,Z+:ШИРВЕЩ); ЗАДАЧА POUT(N,J,K:ЦЕЛ; X1,X2,X3,X4:ШИРВЕЩ); ЗАДАЧА Work; ЗАДАЧА Голова; (* ПРОВЕРКА: скорости при одинарной точности / Single precision Dhrystone *) ЗАДАЧА Proc7(IntParI1,IntParI2,IntParOut+:OneToFifty); ЗАДАЧА Proc3(inRecIdx+:ЦЕЛ); ЗАДАЧА Func3(EnumParIn:Enumeration):КЛЮЧ; ЗАДАЧА Proc6(EnumParIn,EnumParOut+:Enumeration); ЗАДАЧА Proc1(inIdx:ЦЕЛ); ЗАДАЧА Proc2(IntParIO+:OneToFifty); ЗАДАЧА Proc4; ЗАДАЧА Proc5; ЗАДАЧА Proc8(Array1Par+:Array1Dim; Array2Par+:Array2Dim; IntParI1,IntParI2:OneToFifty); ЗАДАЧА Func1(CharPar1,CharPar2:CapitalLetter):Enumeration; ЗАДАЧА Func2(StrParI1+,StrParI2+:String30):КЛЮЧ; ЗАДАЧА Proc0; ЗАДАЧА Голова; |
▲ \Глагол\Приложения\Матрицы\
(****************************************************************************** * ПРОВЕРКА: * разложение симметрической положительно определенной матрицы A на две * треугольные матрицы L и L', где L - это нижняя треугольная матрица, * а L' - матрица, транспонированная к L ******************************************************************************) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Перемножить(L-,A+:Матр.Вид); (* A=L*L' *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: решение систем линейных уравнений (A*x=b) методом LU-разложения *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: решение систем линейных уравнений (A*x=b) методом QR-разложения *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: решение систем линейных уравнений (A*x=b) методом SV-разложения *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: решение систем линейных уравнений (A*x=b) методом исключений Гаусса *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Гильберт(A+:Матр.Вид; b+:Вект.Вид); (* Построение системы Гильберта n-го порядка A[0..n-1,0..n-1] = матрица системы: ( 1 1/2 1/3 1/4 ... 1/n ) ( 1/2 1/3 1/4 1/5 ... 1/(n+1) ) A = ( 1/3 1/4 1/5 1/6 ... 1/(n+2) ) ( ........................................... ) ( 1/n 1/(n+1) 1/(n+2) 1/(n+3) ... 1/(2N-1) ) b[0..n-1] = вектор свободных членов: n b[i] = Sum A[i,j] j=1 Тогда вектор решения будет x = [1 1 1 ... 1] *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: вычисление определителя и обратной матрицы *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова;
(****************************************************************************** * ПРОВЕРКА: * нахождение тех собственных векторов квадратной матрицы, которые * соответствуют вещественным собственным значениям ******************************************************************************) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; (* ПРОВЕРКА: нахождение собственных значений квадратной матрицы *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова;
(****************************************************************************** * ПРОВЕРКА: нахождение собственных значений симметричной матрицы * рекуррентным методом Якоби ******************************************************************************) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Гильберт(М+:Матр.Вид); (* Построение матрицы Гильберта <порядок>-го порядка ( 1 1/2 1/3 1/4 ... 1/порядок ) ( 1/2 1/3 1/4 1/5 ... 1/(порядок+1) ) М = ( 1/3 1/4 1/5 1/6 ... 1/(порядок+2) ) ( ........................................... ) ( 1/порядок 1/(порядок+1) 1/(порядок+2) 1/(порядок+3) ... 1/(2N-1) ) *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Голова; |
▲ \Глагол\Приложения\Оболочка\
(* НАЗНАЧЕНИЕ: показать нажата клавиша или мыша *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Показать; (* НАЗНАЧЕНИЕ: ввод и преобразование программ на Глаголе в графическом окне *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДПолеНаВесьЭкран; (* Расширяет поле на весь экран или восстанавливает его исходный размер *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДПомощь; (* Неотложная помощь F1 *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДСправка; (* Справка по отделам Ctrl-F1 *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДОткрытьФайл; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДСохранитьКак(холст:Холст.Доступ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДСохранитьХолст(холст:Холст.Доступ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДЗакрытьХолст(холст:Холст.Доступ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДИскать(заменить,сПолем,наоборот:КЛЮЧ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДНастроить; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА БылаОшибка(файлОбмена-:ЦЕПЬ):КЛЮЧ; (* Цель: отработать сообщение об ошибке преобразования * До: <файлОбмена> - имя файла, в котором находятся сообщения от ПГ * Ответ: ВКЛ, если ошибка была найдена *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДЗапуск; (* Файл Оболочка.exe обязательно должен находится в папке \Глагол\Службы\ *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДВыход; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ДПерейти; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СоздатьПоле; (* создает рабочее поле экрана *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Поехали; (* НАЗНАЧЕНИЕ: ввод настроек Преобразователя Глагола *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СписатьИмяФайла-(имя+:ЦЕПЬ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА РазобратьЦепь(цепь+:ЦЕПЬ); (* Цель: обработать <цепь>, содержащую одну настройку * До: <настройки> * После: <срдПуть> <настройки> *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА РазобратьФайлНастроек-; (* Цель: обработать построчно файл с настройками * После: <настройки> и <срдПуть> *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СобратьФайлНастроек; (* Цель: вывести настройки в файл ПГ *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Выполнить-(окружение:Поле.Доступ); (* НАЗНАЧЕНИЕ: ввод строки поиска и замены *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Выполнить-(окружение:Поле.Доступ; холст:Холст.Доступ):ЦЕЛ; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ЧитатьНастройки-(поток:Читать.Поток); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ПисатьНастройки-(поток:Писать.Поток); (* НАЗНАЧЕНИЕ: выбор головного отдела приложения *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(поле:Поле.Доступ; посылка+:Ввод.Посылка); (* получить и обработать управляющие послания *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Выполнить-(окружение:Поле.Доступ); (* НАЗНАЧЕНИЕ: отрисовка положения указки на холсте *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Приём(надел:Надел.Доступ; посылка+:Ввод.Посылка); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Создать-(вс,лк:ЦЕЛ):Доступ; (* НАЗНАЧЕНИЕ: вывод на экран "Привѣтъ, мiръ!" *) Запуск приложения Привет в консоле Windows — c:\Глагол\Приложения\Оболочка >Привет Открытие и редактирование приложения Привет.отд в Оболочке в графическом окне Запуск консольного приложения Привет из Оболочки (* НАЗНАЧЕНИЕ: возраст от заданного года *) ЗАДАЧА Положение(годРождения:ЦЕЛ); |
▲ \Глагол\Приложения\Упорядочивание\
(* НАЗНАЧЕНИЕ: упорядочивание ряда простой вставкой *) ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ); (* Цель: упорядочивание ряда целых чисел простой вставкой * До: <ряд> - исходный ряд * После: <ряд> - упорядоченный ряд *) (* НАЗНАЧЕНИЕ: упорядочивание ряда двоичной вставкой *) ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ); (* Цель: упорядочивание ряда целых чисел двоичной вставкой * До: <ряд> - исходный ряд * После: <ряд> - упорядоченный ряд *) (* НАЗНАЧЕНИЕ: упорядочивание ряда простым выбором *) ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ); (* Цель: упорядочивание ряда целых чисел простым выбором * До: <ряд> - исходный ряд * После: <ряд> - упорядоченный ряд *) (* НАЗНАЧЕНИЕ: пример упорядочивания чисел из внешнего файла быстрым обменом *) (******************************************************************************) ЗАДАЧА Ошибка1(ц-:ЦЕПЬ); (******************************************************************************) ЗАДАЧА Ошибка2(ц1-,ц2-:ЦЕПЬ); (******************************************************************************) ЗАДАЧА Упорядочивание; (* НАЗНАЧЕНИЕ: упорядочивание ряда простым обменом ("пузырьковая сортировка") *) ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ); (* Цель: упорядочивание ряда целых чисел простым обменом * До: <ряд> - исходный ряд * После: <ряд> - упорядоченный ряд *) (* НАЗНАЧЕНИЕ: упорядочивание ряда быстрым обменом ("быстрая сортировка") *) ЗАДАЧА Упорядочить-(ряд+:РЯД ИЗ ЦЕЛ); (* Цель: упорядочивание с помощью разделения на участки (Ч.Хоар) * До: <ряд> - исходный ряд * После: <ряд> - упорядоченный ряд *) (* НАЗНАЧЕНИЕ: проверка упорядочивания рядов *) (******************************************************************************) ЗАДАЧА Вывести(ряд+:РЯД ИЗ ЦЕЛ); (* вывод на экран всех слагаемых ряда *) (******************************************************************************) ЗАДАЧА Заполнить(ряд+:РЯД ИЗ ЦЕЛ); (* заполнение ряда случайными числами *) (******************************************************************************) ЗАДАЧА Испытание(Алгоритм:ЗАДАЧА(ряд+:РЯД ИЗ ЦЕЛ)); (* испытание заданного алгоритма упорядочивания *) (******************************************************************************) ЗАДАЧА Испытания; (* испытание всех алгоритмов упорядочивания *) |
▲ \Глагол\Приложения\Свои\
(* НАЗНАЧЕНИЕ: вывод на экран слова "Привет!" *) Запуск приложения Привет в консоле Windows - c:\Глагол\Приложения\Свои >Привет |
▲ \Глагол\Приложения\Заграница\
(* НАЗНАЧЕНИЕ: демо-версия текстового редактора *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА SetStatusText(Num:ЦЕЛ; Text-:string); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА SelectFile(FName-:TFileName; Open+:КЛЮЧ):КЛЮЧ; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА SaveText; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА AskSave; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА LoadText; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА NewText; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА SelectFont; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА WindowProc( Window:HWnd; AMessage:UINT; WParam:WPARAM; LParam:LPARAM):LRESULT; stdcall; export; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА WinRegister:КЛЮЧ; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА EditCreate(ParentWindow,Status:HWnd):HWnd; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА WinCreate:HWnd; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА StatusCreate(parent:hwnd):HWnd; (* НАЗНАЧЕНИЕ: динамически подключаемая библиотека для отдела "ИспБиблиотеки.отд" *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА GetModuleFileName( hModule:ЦЕЛ; lpFilename+:ЦЕПЬ; nSize:ЦЕЛ):ЦЕЛ; ВЫЗОВ "GetModuleFileNameW" ИЗ "kernel32.dll"; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА* Zadacha1-(адрЦепи:ЦЕЛ); (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА* Zadacha2-(набор+:Набор);
(******************************************************************************) (* НАЗНАЧЕНИЕ: пример использования ДПБ - *) (* динамически подключаемой библиотеки "Biblioteka" *) (******************************************************************************) ЗАДАЧА Задача1(цепь-:ЦЕПЬ); ВЫЗОВ "Zadacha1" ИЗ "Biblioteka.dll"; ЗАДАЧА Задача2(набор+:Набор); ВЫЗОВ "Zadacha2" ИЗ "Biblioteka.dll"; (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Проба; (* НАЗНАЧЕНИЕ: вывод фразы "Открытое окно" через графическую оконную систему *) |
ЗАДАЧА GetModuleHandle(lpModuleName:LPCSTR):HMODULE; ВЫЗОВ "GetModuleHandleW" ИЗ "kernel32.dll"; ЗАДАЧА GetStartupInfo(lpStartupInfo+:STARTUPINFO); ВЫЗОВ "GetStartupInfoW" ИЗ "kernel32.dll"; ЗАДАЧА GetStockObject(_para1:ЦЕЛ):HGDIOBJ; ВЫЗОВ "GetStockObject" ИЗ "gdi32.dll"; ЗАДАЧА BeginPaint(hWnd:HWND; lpPaint+:PAINTSTRUCT):HDC; ВЫЗОВ "BeginPaint" ИЗ "user32.dll"; ЗАДАЧА GetClientRect(hWnd:HWND; lpRect+:RECT); ВЫЗОВ "GetClientRect" ИЗ "user32.dll"; ЗАДАЧА EndPaint(hWnd:HWND; lpPaint+:PAINTSTRUCT); ВЫЗОВ "EndPaint" ИЗ "user32.dll"; ЗАДАЧА PostQuitMessage(nExitCode:ЦЕЛ); ВЫЗОВ "PostQuitMessage" ИЗ "user32.dll"; ЗАДАЧА LoadIcon(hInstance:HINST; lpIconName:ЦЕЛ):HICON; ВЫЗОВ "LoadIconW" ИЗ "user32.dll"; ЗАДАЧА LoadCursor(hInstance:HINST; lpCursorName:ЦЕЛ):HCURSOR; ВЫЗОВ "LoadCursorW" ИЗ "user32.dll"; ЗАДАЧА RegisterClass(lpWndClass+:WNDCLASS):КЛЮЧ; ВЫЗОВ "RegisterClassW" ИЗ "user32.dll"; ЗАДАЧА ShowWindow(hWnd:HWND; nCmdShow:ЦЕЛ); ВЫЗОВ "ShowWindow" ИЗ "user32.dll"; ЗАДАЧА UpdateWindow(hWnd:HWND); ВЫЗОВ "UpdateWindow" ИЗ "user32.dll"; ЗАДАЧА TranslateMessage(lpMsg+:MSG); ВЫЗОВ "TranslateMessage" ИЗ "user32.dll"; ЗАДАЧА DispatchMessage(lpMsg+:MSG); ВЫЗОВ "DispatchMessageW" ИЗ "user32.dll"; ЗАДАЧА CreateWindowEx( dwExStyle:DWORD; lpClassName-:ЦЕПЬ; lpWindowName-:ЦЕПЬ; dwStyle:DWORD; X,Y,nWidth,nHeight:ЦЕЛ; hWndParent:HWND; hMenu:HMENU; hInstance:HINST; lpParam:LPVOID):HWND; ВЫЗОВ "CreateWindowExW" ИЗ "user32.dll"; ЗАДАЧА MessageBox( hWnd:HWND; lpText-:ЦЕПЬ; lpCaption-:ЦЕПЬ; uType:UINT); ВЫЗОВ "MessageBoxW" ИЗ "user32.dll"; ЗАДАЧА GetMessage( lpMsg+:MSG; hWnd:HWND; wMsgFilterMin:UINT; wMsgFilterMax:UINT):КЛЮЧ; ВЫЗОВ "GetMessageW" ИЗ "user32.dll"; ЗАДАЧА DefWindowProc( hWnd:HWND; Msg:UINT; wParam:WPARAM; lParam:LPARAM):LRESULT; ВЫЗОВ "DefWindowProcW" ИЗ "user32.dll"; ЗАДАЧА DrawText( hDC:HDC; lpString-:ЦЕПЬ; nCount:ЦЕЛ; lpRect+:RECT; uFormat:UINT); ВЫЗОВ "DrawTextW" ИЗ "user32.dll"; |
(*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА* ОконнаяЗадача(hwnd:HWND; message:UINT; wParam:WPARAM; lParam:LPARAM):LRESULT; (* Вызывается из ОС *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА ПрописатьОкно():КЛЮЧ; (* Прописывает окно в ОС *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА СоздатьОкно():HWND; (* Создаёт оконный класс *) (*────────────────────────────────────────────────────────────────────────────*) ЗАДАЧА Работа; |
|
▲ Вопросы, замечания и предложения высылайте на atimopheyev@yahoo.com
|