рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Динамическая память

Динамическая память - раздел Программирование, Лабораторный практикум по языку программирования Pascal 1. Какие Виды Внешней Памяти Для Персонального Компьютера Вы Знаете? ...

1. Какие виды внешней памяти для персонального компьютера Вы знаете?

2. Какие виды внутренней памяти персонального компьютера Вы знаете?

3. Как распределяется оперативная память при работе программы на Паскале?

4. Каковы размеры статической памяти, выделяемой для хранения данных любой программы на Паскале? В чем ее статичность?

5. Как Вы понимаете термин «динамическая память»? Каковы ее размеры?

6. Что представляет собой адрес ячейки в оперативной памяти?

7. Как образуется абсолютный адрес?

8. Что такое указатель? Какие типы указателей Вы знаете?

9. Как описываются указатели в программе?

10. Какие операции можно производить с указателями?

11. Какой оператор служит для выделения места в динамической памяти? Что происходит при его выполнении?

12. Какой оператор служит для освобождения места в динамической памяти? Что происходит при его выполнении?

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

14. Объясните назначение процедур NEW(X) и DISPOSE(X).

15. Переменные X и Y типа "Указатель". Что произойдет в результате выполнения следующих операций: X := Y ? X^ := Y^ ?

16. Укажите синтаксические и смысловые ошибки в следующих фрагментах:

(1) Var pp:pointer; a,b^:real; k,l:^integer; Begin new(a); new(k); b:=a; pp^:=b; read(a^); l:=k; b^:=a^; pp^:=a^; a^:=a^+1; (2) Var pp:^pointer; a,b^:real; k,l:^integer; Begin new(pp);a^:=b^; new(k);new(a);l:=k; b:=pp; read(a); ^b:=^a;
(3) Var a:^array[1..1000] of real; i,k:^integer; a,b:^real; begin new(a); new(b); new(i); For i^:=1 to 1000 do read(a[i]^); b:=a[13]; (4) Var a:array[1..1000] of ^real; i,k:^integer; B:real; begin for i:=1 to1000 do read(a[i]^); read(b); a[13]:=b;

17. Найдите смысловые ошибки в следующих фрагментах программ и укажите, как будет реагировать машина на данную ошибку:

(1) фрагмент программы создания списка из массива

begin

for i:=1 to n do begin

new(x); x^.f:=A[i]; x:=x^.next end; x^.next:=nil end;

(2) фрагмент программы создания массива из списка

i:=1;

while x<>nil do begin

A[i]:=x^.f; x:=x^.next; i:=i+1 end; n:=i;

(3) добавление элемента после k-го элемента списка

begin i:=1;

while i<k do begin i:=i+1; x:=x^.next end;

new(y); y^.f:=z; x^.next:=y; y^.next:=x^.next end;

(4) меняет местами второй и третий элементы списка

x:=first;

x^.next:=x^.next^.next; x^.next^.next:=x^.next;

(5) создает из массива двунаправленный список

Program spisok;

tipe tip=…;

p=^element;

element=record

f: tip;

next, previous: p end;

var: A: array [1..20] of tip; x, y, first, last: p;

begin {заполняем массив A}

new(x); first:=x; x^.previous:=nil; x^.f:=A[1];

for i:=2 to 20 do begin

new(y); y^.f:=A[i]; x^.next:=y; y^.previous:=x end; last:=x; x^.next:=nil end;

(6) добавление элемента z в двунаправленный список после элемента g (g не последний элемент)

begin

x:=first;

while x<>nil do

if x^.f<>g then x:=x^.next else begin

new(y); y^.f:=z; y^.next:=x^.next; y^.previous:=x; x^.next:=y;

x^.next^.previous:=y end;

(7) добавление элемента z в двунаправленный список перед элементом g (g не первый элемент)

begin

x:=first;

while x<>nil do begin x:=x^.next; if x^.f=g then begin

new(y); y^.previous:=x^.previous; x^.previous:=y; x^.previous^.next:=y; y^.next:=x end end end;

(8) удаление k-го элемента из двунаправленного списка (1<k<len(x))

x:=first; n:=0;

while x<>nil do x:=x^.next; n:=n+1;

if k=n then begin z:=x^.next; y:=x^.previous;

y^.next:=z; z^.previous:=y end;

(9) меняет местами первый и второй элементы в двунаправленном списке

begin

x:=first;

y:=x^.next; y^.next:=x; x^.previous:=y; x^.next:=x^.next^.next;

x^.next^.previous:=x;

(10) поиск элемента g в списке

function poisk (x: p; g: tip): boolean;

var a: boolean;

begin a:=false;

while x<>nil do if x^.f=g then a:=true; x:=x^.next end;

poisk:=a end.

18. Напишите фрагменты программ, которые описывают и определяют некоторые значения для:

(1) указателей на целые и вещественные числа;

(2) указателей на символьные и строковые переменные;

(3) указателя на массив целых чисел;

(4) указателя на массив строк из 10 символов;

(5) массив указателей на вещественные числа;

(6) массив указателей на массивы целых чисел;

(7) массив записей, одно поле которых является числовым, а второе – указателем на строковую переменную максимальной длины;

(8) запись, которая содержит некоторую информацию (по Вашему выбору) и поле – указатель на себе подобную запись.

19. Напишите процедуры:

(1) создания списка из массива;

(2) создания массива из списка;

(3) печати списка;

(4) добавления одного элемента в список после k-го элемента;

(5) удаления первого элемента списка;

(6) удаления n-го элемента списка;

(7) удаления последнего элемента списка;

(8) печати списка элементов в обратном порядке;

(9) меняющую местами второй и третий элементы списка;

(10) замены элемента g на h;

(11) объединения двух списков в один.

20. Напишите функции:

(1) подсчета количества элементов в списке;

(2) для нахождения наибольшего из чисел, на которые ссылаются элементы массива X;

(3) поиска элемента g в списке (результат типа boolean);

(4) поиска элемента g в списке (результатом будет указатель на найденный элемент).

21. Перепишите с использованием рекурсии:

(1) процедуру печати списка;

(2) функцию подсчета количества элементов в списке.

(3) Напишите программу, которая из массива создает двунаправленный список.

(4) Напишите программу печати двунаправленного списка в обратном порядке.

22. Напишите процедуры:

(1)добавления элемента z в двунаправленный список после элемента g;

(2)добавления элемента z в двунаправленный список перед элементом g;

(3)удаления элемента g из двунаправленного списка;

(4)меняющую местами в двунаправленном списке элемент с указателем g и следующий за ним, если известно, что g не первый и не последний элемент.

– Конец работы –

Эта тема принадлежит разделу:

Лабораторный практикум по языку программирования Pascal

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

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Динамическая память

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Дополнительные задачи.
1. Даны два натуральных числа M и N, M < N. Определить длину периода десятичной дроби M/N и период данной десятичной дроби M/N. (1 балл). 2. Напечатать в порядке возрас

Дополнительные задачи.
1. На двух прозрачных листах бумаги в клетку размерами 20х20 нарисовано по одной фигуре, состоящей из закрашенных клеток. Составьте программу, которая отвечает на вопрос: конгруентны ли эти фигуры?

Лабораторная работа №14 Линейная комбинация векторов
Цель работы: Овладеть навыками составления алгоритмов решения геометрических задач по теме "Линейные операции над векторами", используя заданный набор процедур.   Ф

Дополнительные залания
1. Бинарный поиск (1 балл) Составить и опробовать работу процедуры, которая определяет, есть ли в данном упорядоченном по возрастанию файле вещественных (целых) чисел данн

Величина. Команды присваивания, ветвления и выбора.
1. Что называется алфавитом языка? 2. Дайте определения величины, выражения, оператора языка программирования. 3. Опишите общую структуру программы на языке Паскаль. Как называютс

Массивы
1. Дайте определение массива. 2. Перечислите три основные свойства табличных величин (массивов). 3. Как описываются массивы на языке Паскаль? 4. Может ли массив содержать

Литерные переменные
1. Дайте определение литерной величины. 2. Как описываются литерные переменные на языке Turbopascal? 3. Объясните, какие значения могут принимать строковые величины А, В, С (что о

Процедуры и функции
1. В каком месте программы и в каком порядке располагаются функции и процедуры? Сравните с алгоритмическим языком. 2. Что такое локальные и глобальные переменные и как они различаются на я

Графика
1. Объясните, для чего предназначен модуль GRAPH. Каким образом он подключается к работе, как совместить его работу с модулем CRT? 2. Как инициализируется и выключается графический режим?

Датчик случайных величин
1. Как вы понимаете термин «случайная величина»? 2. Что такое, по-вашему, равномерно распределенная случайная величина? 3. По какому принципу устроен датчик случайных чисел в язык

Множества
1. Какого типа может быть множество? 2. Как ввести множество с клавиатуры? 3. Как выводить множество на экран? 4. Выполните операции: (1) ['C','l','M','N'] * ['C

Деревья
1) Какую структуру называют деревом? 2) Приведите примеры деревьев. 3) Назовите различные способы графического представления древовидной структуры. 4) Как с помощью масси

Файл PRIMER1.pas
program upr1; uses crt; var f,i,o:string[15]; v,g,year:integer; begin clrscr; write('Введите номер текущего года ');readln(year); write('Введит

Файл lab10.pas
program str_lab; uses crt; type str=string[50]; mass=array[1..20] of str; var s,s1,s2,s3:str; i,j,k,l,n,t:integer; x:mass; {----------------------------------------}

Файл lab11.pas
program matrix_lab; uses crt; type st=array[1..20] of real; matr=array[1..20] of st; var n, m, j, i, k, l, r: integer; s,s1,s2,s3,ext:real; x,y:st; a:matr; {---------------

Файл List1.pas
program upr1; type vector = array[1..20] of real; var m,g,s,f,a,b,c,d,p,q:vector;i,j,k,n:integer;l,w,v,x,y,z:real;   function det2(a,b,c,d:real):real;

Файл List2.pas
program upr1; type vector = array[1..20] of real; var a,b,c,d,p,q,m,g,f,h:vector;i,j,k,n:integer;s,l,u,w,v,x,y,z:real;   function det2(a,b,c,d:real):real;

Файл LAB5.pas
program upr; uses crt; {-----------------описание типов-----------------------} type st=string[20]; str=string[8]; ocenka=record ekz:array[1..6] of integer; zach1,zach2:s

Файл LAB6.pas
program upr; uses crt; {-----------------описание типов-----------------------} type st=string[20]; data=record day:1..31; month:st; year:integer; end;

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги