(Если в тексте менее n строк, то последние элементы массива равны nil; в начале массива ссылок nil не должно быть. Если в операции над текстом указан номер отсутствующей строки, т. е. элемент массива с этим номером равен nil, то такая операция не выполняется.)
Используя данное представление текста, описать: процедуру вывод (Т), печатающую построчно текст Т.
Вариант №4.
1. var p, q : ↑integer; r:↑char;
Какие из следующих операторов неправильные и почему?
а) r:=nil;
б) q:=p↑;
в) p↑:=nil
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. Используя динамически распределяемую область памяти, составьте программу решения задачи: составьте программу вычисления функции p=(1-1/22)*(1-1/32)*…*(1-1/n2) для n>2.
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить среднее геометрическое элементов натурального массива Y(20).
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
5*. Одно из возможных представлений «длинного» текста – это разделить его на участки (строки) равной длины и создать массив ссылок на эти строки:
const d = …; {длина строки}
n = …; {максимальное число строк}
type строка = packet array [1..d] of char;
ссылка = ↑строка;
текст = array [1..n] of ссылка;
(Если в тексте менее n строк, то последние элементы массива равны nil; в начале массива ссылок nil не должно быть. Если в операции над текстом указан номер отсутствующей строки, т. е. элемент массива с этим номером равен nil, то такая операция не выполняется.)
Используя данное представление текста, описать: логическую функцию поиск(T, c, i, j), определяющую, входит ли литера с в текст Т, и, если входит, присваивающую параметрам i и j «координаты» первого вхождения этой литеры: i – номер строки, а j – номер позиции в этой строке
Вариант №5.
1. var p, q : ↑integer; r:↑char;
Какие из следующих операторов неправильные и почему?
а) p↑:=nil;
б) r↑:=p↑;
в) q↑:=ord(r↑);
г) q:=p↑
2. type ref =↑integer;
var p, q:ref;
Пусть переменные p и q имеют значения, показанные на рисунке.


Что является значением переменной р: ссылкам на объект (переменную) целого типа или сам этот объект? Что обозначает переменная р↑: ссылку на объект целого типа, сам этот объект или целое 5? Каковы типы переменных р и р↑?
3. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить сумму s=1/n3 для n=1,2,3,..,40.
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить и запомнить сумму и число положительных элементов каждого столбца матрицы A(10,15). Результаты отпечатать в виде двух строк.
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
5*. Одно из возможных представлений «длинного» текста – это разделить его на участки (строки) равной длины и создать массив ссылок на эти строки:
const d = …; {длина строки}
n = …; {максимальное число строк}
type строка = packet array [1..d] of char;
ссылка = ↑строка;
текст = array [1..n] of ссылка;
(Если в тексте менее n строк, то последние элементы массива равны nil; в начале массива ссылок nil не должно быть. Если в операции над текстом указан номер отсутствующей строки, т. е. элемент массива с этим номером равен nil, то такая операция не выполняется.)
Используя данное представление текста, описать: функцию число строк(Т) для подсчёта числа строк в тексте Т.
Вариант №6.
1. var p, q : ↑integer; r:↑char;
Какие из следующих операторов неправильные и почему?
а) p↑:=nil;
б) r↑:=p↑;
г) q:=p↑
2. type ref =↑integer;
var p, q:ref;
Пусть переменные p и q имеют значения, показанные на рисунке.


Что будет выдано на печать в результате выполнения следующих операторов?
p↑:=q↑;
if p=q then p:=nil else if p↑=q↑ then q:=p;
if p=q then q↑:=4;
writeln(p↑)
3. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить значение функции
y= sin 1+ sin 1.1 + sin 1.2 + ..+sin 2.
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить среднее геометрическое элементов натурального массива Y(20).
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
5*. Одно из возможных представлений «длинного» текста – это разделить его на участки (строки) равной длины и создать массив ссылок на эти строки:
const d = …; {длина строки}
n = …; {максимальное число строк}
type строка = packet array [1..d] of char;
ссылка = ↑строка;
текст = array [1..n] of ссылка;
(Если в тексте менее n строк, то последние элементы массива равны nil; в начале массива ссылок nil не должно быть. Если в операции над текстом указан номер отсутствующей строки, т. е. элемент массива с этим номером равен nil, то такая операция не выполняется.)
Используя данное представление текста, описать: логическую функцию элем(T,I,j,c), проверяющую есть ли в тексте Т строка с номером i, и, если есть, присваивающую j-ю литеру этой строки параметру с.
Вариант №7.
1.var p, q :↑integer; r:↑char;
Какие из следующих операторов неправильные и почему?
а) r↑:=p↑;
б) q↑:=ord(r↑);
в) p↑:=nil;
2. Имеется программа
program dynamic (output);
var x: ↑boolean; y:Boolean;
begin {A} new(x);{B} x↑:=true; y:=not x↑;
{C} dispose(x);{D}writeln(y)
end.
Какие переменные существуют в каждой из точек А, В, С, D и каковы их значения в эти моменты?
3. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить значение функции y=
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: найти в каждой строке матрицы P (N, N),N<=15, наибольший элемент и поменять его местами с элементом главной диагонали. Отпечатать полученную матрицу в общепринятом виде.
а) используя механизм 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-ю текста Т.
Вариант №8.
1. var p, q : ↑integer; r:↑char;
Верен ли оператор и почему?
if r < > nil then r↑:=nil
2. Имеется программа
program dynamic (output);
var x: ↑boolean; y:Boolean;
begin {A} new(x);{B} x↑:=true; y:=not x↑;
{C} dispose(x);{D}writeln(y)
end.
Почему объекты (переменные), создаваемые процедурой new и уничтожаемые процедурой dispose, называют динамическими? Почему им не дают имена?
3. Используя динамически распределяемую область памяти, составьте программу решения задачи: составьте программу вычисления (1+2)*(1+2+3)*…*(1+2+…+10).
а) используя механизм New, Dispose ( )
б) используя механизм Getmem ( ), Freemem ( )
4. Используя динамически распределяемую область памяти, составьте программу решения задачи: вычислить и запомнить сумму и количество положительных элементов каждого столбца матрицы C(10X15). Результаты отпечатать в виде двух строк.
а) используя механизм 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-й строки.
Вариант №9.
1. var p, q :↑integer; r:↑char;
Верен ли оператор и почему?
if q > nil then q↑:=p↑
2. Имеется программа
program dynamic (output);
var x: ↑boolean; y:Boolean;
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |


