begin {A} new(x);{B} x↑:=true; y:=not x↑;
{C} dispose(x);{D}writeln(y)
end.
Можно ли переменной x присвоить ссылку на переменную y? Можно ли с помощью процедуры dispose уничтожить переменные x и y?
3. Используя динамически распределяемую область памяти, составьте программу решения задачи: составьте программу вычисления факториала y=n!, (n!=1*2*3*…*n).
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: для целочисленной матрицы N(10,10) найти для каждой строки число элементов, кратных 5, и наибольший из полученных результатов.
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
5*. Одно из возможных представлений «длинного» текста – это разделить его на участки (строки) равной длины и создать массив ссылок на эти строки:
const d = …; {длина строки}
n = …; {максимальное число строк}
type строка = packet array [1..d] of char;
ссылка = ↑строка;
текст = array [1..n] of ссылка;
(Если в тексте менее n строк, то последние элементы массива равны nil; в начале массива ссылок nil не должно быть. Если в операции над текстом указан номер отсутствующей строки, т. е. элемент массива с этим номером равен nil, то такая операция не выполняется.)
Используя данное представление текста, описать: процедуру добавить (Т, i, j), добавляющую после i-й строки текста Т на копию j-й строки.
Вариант №10.
1. var p, q : ↑integer; r:↑char;
Верен ли оператор и почему?
if q=p then write(q)
2. Найти ошибки в следующей программе:
program errors (input, output);
var a, b:↑integer;
begin if a=nil then read(a); a↑:=5;
new(b);read(b↑);writeln (b, b↑);
new(a);b:=a;dispose(a);b↑:=4
end.
3. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить y = (2n-1)!!=1*3*5*..*(2n-1), n > 0
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: найти наибольший и наименьший элементы матрицы R(K*N), К<=20, N<=10 и поменять их местами.
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
5*. Одно из возможных представлений «длинного» текста – это разделить его на участки (строки) равной длины и создать массив ссылок на эти строки:
const d = …; {длина строки}
n = …; {максимальное число строк}
type строка = packet array [1..d] of char;
ссылка = ↑строка;
текст = array [1..n] of ссылка;
(Если в тексте менее n строк, то последние элементы массива равны nil; в начале массива ссылок nil не должно быть. Если в операции над текстом указан номер отсутствующей строки, т. е. элемент массива с этим номером равен nil, то такая операция не выполняется.)
Используя данное представление текста, описать: процедуру удалить(Т, i), удаляющую i-ю строку из текста Т.
Приложение 2
Примерный перечень вопросов к зачету
1. Понятие интегрированной среды языка программирования на примере языка Турбо Паскаль
2. Структура программы на языке Паскаль.
3. Раздел описания переменных.
4. Раздел описания констант.
5. Стандартные процедуры ввода данных.
6. Стандартные процедуры вывода данных. Форматированный вывод.
7. Оператор присваивания.
8. Стандартная процедура очистки экрана.
9. Составной оператор.
10. Условный оператор. Сложные условия.
11. Оператор выбора. Тип Boolean.
12. Особенности Цикла-While.
13. Особенности Цикла-Repeat.
14. Особенности Цикла - For. Вложенные циклы.
15. Массивы. Одномерные массивы.
16. Поиск, вставка, удаление элемента массива.
17. Основные алгоритмы сортировки массива.
18. Функции и процедуры: описание, обращение.
19. Параметры вызова подпрограмм: параметры-значения, параметры-переменные, параметры – константы.
20. Понятие рекурсивной функции. Задание рекурсивной функции.
21. Строки символов. Значения и допустимые операции.
22. Запись. Оператор With
23. Файлы. Типизированные файлы.
24. Множества. Использование множественных переменных.
25. Графические возможности языка Паскаль.
26. Динамические структуры данных. Статические и динамические переменные.
27. Указатели
28. Программные модули. Структура модуля. Пример
Перечень заданий для самостоятельного изучения
Задание 1:
ТЕМА: «Основы языка Turbo Pascal. Операторы присваивания»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Что будет напечатано программой при b=3 и c=2?:
Program korni;
Var b, c,d: real;
Begin read(b, c);
D:=sqrt(sqr(b)-4*c);
Writeln('xl=',(-b+d)/2,' x2=',(-b-d)/2)
End.
3. Решить контрольную работу 1 (см. далее)
Задание 2:
ТЕМА: «Условные операторы. Операторы перехода»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Записать условный оператор, который эквивалентен оператору присваивания x:=a or b and c (все переменные - логические) и в котором не используются логические операции ( например, оператору x:=not a эквивалентен оператор if a then x:=false else x:=true).
Задание 3:
ТЕМА: «Реализация циклических структур»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Составить и записать суть работы цикла решения задачи: Числа Фибоначчи определяются формулами f0=f1=1,fn=fn-1+fn-2. Вычислить сумму всех чисел, которые не превосходят 1000.
Задание 4:
ТЕМА: «Подпрограммы»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Разработать процедуру и функцию для вычисления выражения:
.
Задание 5:
ТЕМА: «Обработка одномерных массивов и матриц»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Значения двух массивов A[1..100] и B[1..100] задаются с помощью следующего фрагмента программы:
for n:=1 to 100 do |
Сколько элементов массива B будут иметь положительные значения?
1) | 10 | 2) | 50 | 3) | 90 | 4) | 100 |
Задание 6:
ТЕМА: «Символьный и строковый типы»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
В приведенном ниже фрагменте алгоритма, записанном на алгоритмическом языке, переменные a, b, c имеют тип «строка», а переменные i, k – тип «целое». Используются следующие функции:
Длина (a) – возвращает количество символов в строке a. (Тип «целое»)
Извлечь (a, i) – возвращает i-тый (слева) символ в строке a. (Тип «строка»)
Склеить (a, b) – возвращает строку, в которой записаны сначала все символы строки a, а затем все символы строки b. (Тип «строка»)
Значения строк записываются в одинарных кавычках
(Например, a := ‘дом’).
Фрагмент алгоритма:
i := Длина (a) k := 2 b := ‘А’ пока i > 0 нц c := Извлечь (a, i) b := Склеить (b, c) i := i – k кц b := Склеить (b, ‘Т’) |
Какое значение будет у переменной b после выполнения вышеприведенного фрагмента алгоритма, если значение переменной a было ‘ПОЕЗД’?
1) | ‘АДЕПТ’ | 2) | ‘АДЗЕОП’ | 3) | ‘АДТЕТПТ’ | 4) | ‘АДЗОТ’ |
Задание 7:
ТЕМА: «Графика языка программирования Turbo Pascal»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Составить сравнительный анализ графических операторов языка Basic и Turbo Pascal.
Задание 8:
ТЕМА: «Модули. Структура модуля»
1. Выучить конспект дидактического материала по данной теме;
2. Ответить на вопросы:
Разработать модуль реализующий выполнение арифметических операций над комплексными числами.
Задание 9:
ТЕМА: Подготовка к зачету
1.
2. Решить контрольную работу 2 (см. далее)
Задания для контрольной работы № 1
Вариант 1
6. Опишите структуру программы на языке Turbo Pascal (основные разделы)
7. Перечислите основные вещественные типы данных.
8. Процедура ввода данных.
9. Работа с окнами в среде программирования Turbo Pascal
10. Используя логический тип переменных определите, принадлежит ли точка А(х, у) указанной области:
Задания для контрольной работы № 2
Вариант 1.
11. Написать программу вычисления площади треугольника, если известна длина основания и высота.
12. Написать программу вычисления площади кольца. Программа должна проверять правильность исходных данных.
13. Написать программу, которая запрашивает у пользователя номер месяца и выводит соответствующее название времени года.
14. Напечатайте таблицу значений функции y=2x+1 на отрезке [0;2,5] с шагом 0,5.
15. Отсортировать элементы одномерного массива по убыванию.
16. Найти среднее значение среди элементов массива А(3´5).
17. Даны две строки. Если они начинаются с одинаковых символов, то напечатать «ДА», в противном случае «НЕТ».
18. Даны координаты трех вершин треугольника. Найти площадь этого треугольника, используя подпрограмму – функцию.
19. Написать программу, которая выводит на экран точечный график функции
Диапазон изменения аргумента – от -15 до 5, шаг аргумента – 0,1. График вывести на фоне координатных осей, точка пересечения которых находится в центре экрана.
20. Написать программу, которая на сменном диске компьютера (А) создает файл numbers. txt и записывает в него 5 введенных пользователем целых чисел.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |


