14. Использование записей позволяет программисту научиться формировать собственные типы данных, структура которых диктуется решаемой задачей.

15. При более наглядной иллюстрации алгоритма иногда необходимо напечатать числа разным цветом, вывести сменяющие друг друга числа в одном месте экрана. Для этих целей используют функции модуля Crt.

Особое внимание следует уделить функции ReadKey, которая считывает код нажатой клавиши без отображения символа клавиши на экране.

16. Подпрограммы модуля Graph позволяют программисту перейти от текстового к гра­фическому режиму для решения специфических задач, например, построение графика функции или вывод комментариев типографским шрифтом.

семестр 3:

1. Рекурсивные подпрограммы дополняют тему “Подпрограммы” и используются для ряда специфических задач(кривые Гильберта, “Ханойские башни”, расстановка 8 ферзей и др.)

2. Любая большая программа состоит из модулей. При изучении модулей следует уделить внимание структуре модуля и структуре программы с модулем.

3. Динамические структуры данных являются обобщением темы “Записи” введением со­ставного указателя. Составной указатель следует рассматривать, как рекурсивный тип данных, позволяющий каждый узел из данных связать с точно таким же узлом и расположить данные в динамической памяти, образуя список, или динамический массив. Все операции со списками удобно представить в виде подпрограмм. Подобный подход дает возможность решать задачи любой сложности, объединяя подпрограммы в программу в исходном виде, или незначительно их модифицируя. Операцию поиска узла с заданной информационной частью и его удаление удобно оформить в виде рекурсивной логической функции. Такой вид функции позволяет ее использовать в заголовке цикла while и решать сложные задачи.

НЕ нашли? Не то? Что вы ищете?

5. Для ряда задач достаточно использовать частный случай списка в виде стека или оче­реди. При формировании очереди следует обратить внимание на использование второго указателя, связанного с последним узлом очереди.

6. При рассмотрении двунаправленного списка следует обратить внимание на преимуще­ство и недостатки его использования в сравнение с однонаправленным списком.

7. При изучении типа данных object, используемого для объявления класса, следует его сравнить с типом данных record. Следует обратить внимание на отличие методов от про­цедур и функций.

8. При рассмотрении наследования следует обратить внимание на его различные варианты: наследование без переопределения методов, наследование с переопределением методов. Во втором варианте ввести в рассмотрение виртуальный метод и конструктор, которые обеспечивают позднее связывание классов.

9. Использование динамических структур данных в классах позволяет все ранее исполь­зуемые процедуры и функции обработки списков использовать, как методы класса.

10. При рассмотрении улучшенных методов сортировки (сортировка Шелла, сортировка с помощью двоичного дерева, быстрая сортировка) следует изучать их, как обобщение простых методов (сортировка прямой вставкой, сортировка прямым выбором, сортировка прямым обменом).

11.В рамках модуля Dos может быть расширена возможности обработки внешних файлов: работа с группой файлов, изменение имени файла, удаление внешнего файла. Про­граммные прерывания, реализуемые при использовании модуля Dos, могут скрывать изображение курсора, подключать к программе указатель мыши.

III УЧЕБНО-МЕТОДИЧЕСКИЕ МАТЕРИАЛЫ

Вопросы для самопроверки

1. Перечислить и кратко охарактеризовать основные языки высокого уровня.

2. Какими действиями наделяет компилятор оператор присваивания?

3. Каким образом можно преобразовать вещественное число в целое?

4. С помощью каких функций можно установить взаимно-однозначное соответствие между символом и его порядковым номером в таблице кодировки ASCII?

5. Как показать, что заданное целое число b является делителем целого числа числа a?

6. С какой целью применяется оператор readln без параметров?

7. Что можно сказать о количестве повторений операторов, расположенных в цикле for и в цикле while?

8. Могут ли операторы цикла while не повториться ни разу? Ответ обосновать.

9. Могут ли операторы цикла repeat... until не повториться ни разу? Ответ обосновать.

10. Как задать массив из констант?

11. Как организовать вывод на экран двумерного массива в виде матрицы?

12. Как сформировать символьный массив, чтобы в него случайным образом входили бы только строчные латинские буквы?

13. Каким образом будет формироваться массив из случайных чисел, если перед формиро­ванием опустить оператор randomize?

14. Чем отличается объявленная длина строки от реальной длины строки?

15. Каким образом следует добавлять символы к строке: заносить символ в элемент строки за последним значащим символом или в качестве операндов использовать идентификатор строки и добавляемый символ?

Что будет в первом случае, а что во втором?

16. Элементы строки нумеруются с 1. Какая информация находится в нулевом элементе строки? С помощью какой функции она может быть выделена?

17. При каком условии процедуры val и str по результату своей работы можно считать вза­имно обратными?

18. Можно ли организовать работу оператора множественного выбор case, чтобы не исполь­зовать альтернативу else? Или существуют такие задачи, когда без альтернативы нельзя обойтись?

19. При работе с файлами, какой из операторов всегда обязателен?

20. Чем отличается текстовый файл от файла, состоящего из массива строк?

21. Чем отличаются объявления двоичного файла и текстового файла?

22. Для чего необходим оператор seek?

23. В чем преимущество и недостаток использования оператора goto?

24. Какие типы данных используются при объявлении множеств? Ответ обосновать.

25. Как задать пустое множество и организовать заполнение множества элементами?

26. Какие отличия в структурах процедуры и функции?

27. Можно ли, организовать работу функции таким образом, чтобы она возвращала более одного параметра?

28. Если считать, что функция возвращает только один параметр, то какого типа может быть этот параметр? Перечислить все возможные типы.

29. Какой из методов сортировки работает быстрее: простыми включениями или бинарными включениями?

Результат обосновать.

30. Что общее у всех простых методов сортировки?

31. В каких случаях удобно использовать составной тип данных?

32. В каких случаях удобно использовать оператор присоединения with?

33. Чем отличаются процедуры ClrScr и ClrEol?

34. Чем отличаются процедуры readln и readkey?

35. Как инициализировать графический режим работы монитора?

36. Как вывести на экран в графическом режиме целое или вещественное число?

37. Какие из побитовых операций позволяют выделить любой двоичный разряд в целом числе?

38. Какие из побитовых операций позволяют инвертировать любой двоичный разряд в це­лом числе?

39. Чем прямая рекурсия отличается от косвенной рекурсии?

40. Когда используется директива forward?

41. В каких задачах не рекомендуется использовать рекурсию?

42. С какой целью используются модули и как они организуются?

43. Что понимается под словосочетанием: “разыменование указателя”?

44. С какой целью используются операторы New и Dispose?

45. Какое минимальное количество полей в составном указателе, определяющем узел од­нонаправленного списка?

46. Чем с формальной точки зрения отличается линейный список от кольцевого?

47. Какие основные операции для обработки списков?

48. Для каких структур данных используются принципы обслуживания LIFO и FIFO?

49. Какое поле необходимо добавить в составной указатель, чтобы список формально стал динамическим массивом?

50. В чем отличие однонаправленного списка от двунаправленного при их итерации?

51. Чем отличается класс от записи,

52. Для чего необходимы виртуальные методы и конструкторы?

53. Может ли составной указатель содержать методы?

54. В чем основные отличия улучшенных сортировок от простых?

55. Что такое инвариант рекурсивного алгоритма?

56. Для чего необходима запись с вариантами Registers?

57. Существует ли возможность одновременного просмотра всех файлов указанной группы, если заранее неизвестно их количество?

58. Можно ли из программы на языке Pascal удалить какой-либо внешний файл или пере­именовать его?

IV МАТЕРИАЛЫ ТЕКУЩЕГО КОНТРОЛЯ, ПРОМЕЖУТОЧНОЙ АТТЕСТАЦИИ
И ИТОГОВОГО КОНТРОЛЯ ЗНАНИЙ

ЗАДАЧИ ДЛЯ ЗАЧЕТА

ЗАДАЧИ ГРУППЫ А

1.  Даны целые числа x, y. Найти наибольшее.

2.  Дано действительное число. Принадлежит ли оно интервалам (1,1, 3] или [5, 10,3).

3.  Вычислить в произвольной точке значение функции t(x), если

4.  Дано натуральное число n. Вычислить: ;

5.  Дано натуральное число n. Вычислить: ;

6.  Дано натуральное число n, действительное x. Вычислить: ;

7.  Дана вещественная матрица размером m×n. Найти сумму элементов.

8.  Дана вещественная матрица размером m×n. Найти минимальный элемент.

9.  Дана вещественная матрица размером m×n. Найти максимальный элемент.

10.  Дана целая матрица размером m×n. Найти количество чётных элементов.

11.  Дана целая матрица размером m×n. Найти количество нечётных элементов.

12.  Дана вещественная матрица размером m×n. Найти количество отрицательных элементов.

13.  Дана вещественная матрица размером m×n. Найти количество нулевых элементов.

14.  Дана строка символов. Найти ее длину.

15.  Дана строка символов и символ x. Подсчитать, сколько раз среди символов строки встречается символ x.

16.  Дана строка символов. Подсчитать, общее число вхождений символов +, - ,*, / в строку.

17.  Дана строка символов. Подсчитать количество предложений в строке.

18.  Дана строка символов. Выяснить, имеется ли в строке пара соседствующих букв но или он.

19.  Задать запись описывающую вектор. Найти сумму двух векторов.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5