Материалы к семинарам по курсу «Алгоритмические языки
программирования» (АЯП). Преподаются на основе изучения языка
Pascal.
2013г. КО-101С, кафедра 806, МАИ, «Комета». Тестирование проводилось для Free Pascal. Некоторые конструкции могут не работать для PascalABC или Turbo Pascal. Все файлы в кодировке UTF8; для работы рекомендуется ОС Linux \ Mac OS. Преподаватели: Лукин В.Н & Никитин И.К. Некоторые из этих работ можно найти по ссылке: Pascal commet workshops Вводный семинар по Pascal. Посвящен обзору простейших средств языка на примере вычисления чисел Фибоначчи и инвертировании целого числа. В исходных файлах приведен пример документирования кода. Массивы Посвящен работе с массивами и логическим типом.Подсчет максимального количества подряд стоящих элементов логического массива, имеющих значение true. Приведены три версии программы. Матрицы Работа с матрицами. Умножение матриц. Считывает со стандартного ввода 2 матрицы. Строки матриц отделены переводом строки, числа в строке пробелами. Выводит на стандартный вывод произведение этих двух матриц в таком же формате. При запуске программы на вход (со стандартного ввода) подается матрицы: каждая строка отделена переводом стоки;
число в одной строке отделены пробелами;
в текущей реализации матрицы используются квадратные;
размерность матрицы определяется константой MAXRANGE;
после умножения результат подается на стандартный вывод:
каждая строка отделена переводом стоки,
число в одной строке отделены пробелами.
Линеаризации матриц по диагоналям (jpeg). Считывает со стандартного ввода 2 матрицы. Сначала считывает размерность матриц. Отроки матриц отделены переводом строки, числа в строке пробелами. Выводит на стандартный вывод произведение этих двух матриц в таком же формате. Если невозможно вычислить произведение матриц, то выводится соответствующая ошибка.
Поиск лишних закрывающихся скобок. Решение через строку и через цикл по символам до конца файла. Рассмотрены на примерах: конкатенация (сложение, concat); поиск подстроки (pos); удаление (delete); вставка (insert); преобразование к числу (val); форматный вывод чисел и строк (writeln). Файлы Работа с файлами.
Чтение из файла, запись в файл.
Операции с файлом: удаление, переименование.
Разбиение файла на строки по заданной ширине.
Поиск лишних закрывающихся скобок, решение через цикл по символам до конца файла. Графика, Динамические картинки.
Графики функций.
Геометрические фигуры.
Движущаяся окружность.
Окружность, управляемая с клавиатуры.
Окружность, движущаяся случайным образом.
Простейшая компьютерная игра, требуется попасть в цель, движущуюся случайным образом.
2013г. КО-101С, кафедра 806, МАИ, «Комета». Тестирование проводилось для Free Pascal. Некоторые конструкции могут не работать для PascalABC или Turbo Pascal. Все файлы в кодировке UTF8; для работы рекомендуется ОС Linux \ Mac OS. Преподаватели: Лукин В.Н & Никитин И.К. Некоторые из этих работ можно найти по ссылке: Pascal commet workshops Вводный семинар по Pascal. Посвящен обзору простейших средств языка на примере вычисления чисел Фибоначчи и инвертировании целого числа. В исходных файлах приведен пример документирования кода. Массивы Посвящен работе с массивами и логическим типом.Подсчет максимального количества подряд стоящих элементов логического массива, имеющих значение true. Приведены три версии программы. Матрицы Работа с матрицами. Умножение матриц. Считывает со стандартного ввода 2 матрицы. Строки матриц отделены переводом строки, числа в строке пробелами. Выводит на стандартный вывод произведение этих двух матриц в таком же формате. При запуске программы на вход (со стандартного ввода) подается матрицы: каждая строка отделена переводом стоки;
число в одной строке отделены пробелами;
в текущей реализации матрицы используются квадратные;
размерность матрицы определяется константой MAXRANGE;
после умножения результат подается на стандартный вывод:
каждая строка отделена переводом стоки,
число в одной строке отделены пробелами.
$ ./ws03_matrix_1Структуры Работа со структурами (записями). Умножения матриц произвольной размерности.
1 2
3 4 1 2
3 4 7 10
15 22
Линеаризации матриц по диагоналям (jpeg). Считывает со стандартного ввода 2 матрицы. Сначала считывает размерность матриц. Отроки матриц отделены переводом строки, числа в строке пробелами. Выводит на стандартный вывод произведение этих двух матриц в таком же формате. Если невозможно вычислить произведение матриц, то выводится соответствующая ошибка.
$ ./ws04_multmatrixЛинеаризация по диагоналям (упрощенная) Линеаризация матриц проходом по диагоналям с юго-запада на северо-восток. Метод линеаризации, похожий на данный используется в сжатии изображений. Его суть в том, чтобы близкие в двумерном пространстве пиксели оказались близки друг другу после линеаризации. При обычном слиянии строк матрицы,s это не возможно. В данном случае приводится упрощенный вариант линеаризации. На самом деле, такая хитрая линеаризация используется, немного по иной причине. Интересует близость, только северо-западного угла, и работа происходит на с пикселями, а со спектральным представлением изображения. Для простоты, такие детали пока будем игнорировать. В решении задачи они роли не играют.
2 2 -{пометка: размерность}
1 2 -{пометка: сама матрица}
3 4 2 2 -{пометка: размерность}
1 2 -{пометка: сама матрица}
3 4 7 10
15 22
$ ./ws04_multmatrix
1 2 -{пометка: размерность}
1 2 -{пометка: сама матрица} 2 1 -{пометка: размерность}
1 -{пометка: сама матрица}
2 5
$ ./ws04_multmatrix
1 2 -{пометка: размерность, несовместимы}
1 2 -{пометка: сама матрица} 1 2 -{пометка: размерность, несовместимы}
1 2 -{пометка: сама матрица}
ERROR: A.ncolumns =/= B.nrows !
$
$ ./ws04_jpeg_lin_simpleСтроки Работа со строками на примере поиска лишних закрывающихся скобок.
3 3 -{пометка: размерность}
1 2 3 -{пометка: сама матрица}
4 5 6
7 8 9
1 4 2 7 5 3 8 6 9 -{пометка: линеаризованное представление
Поиск лишних закрывающихся скобок. Решение через строку и через цикл по символам до конца файла. Рассмотрены на примерах: конкатенация (сложение, concat); поиск подстроки (pos); удаление (delete); вставка (insert); преобразование к числу (val); форматный вывод чисел и строк (writeln). Файлы Работа с файлами.
Чтение из файла, запись в файл.
Операции с файлом: удаление, переименование.
Разбиение файла на строки по заданной ширине.
Поиск лишних закрывающихся скобок, решение через цикл по символам до конца файла. Графика, Динамические картинки.
Графики функций.
Геометрические фигуры.
Движущаяся окружность.
Окружность, управляемая с клавиатуры.
Окружность, движущаяся случайным образом.
Простейшая компьютерная игра, требуется попасть в цель, движущуюся случайным образом.