37807

Вказівники

Лабораторная работа

Информатика, кибернетика и программирование

Мета: навчитися програмувати з використанням вказівників та динамічних змінних, створювати та опрацьовувати черги та стеки.

Украинкский

2013-09-25

2.14 MB

1 чел.

3

Міністерство освіти і науки України

Хмельницький національний університет

Кафедра системного програмування

Лабораторна робота №1

з програмування

на тему:

«Вказівники»

Виконав:

Студент групи КІ-10-1

Ноль М.Г.

Перевірив:

Мостовий С.В.

Хмельницький

2011

Лабораторна робота №1

Тема: вказівники.

Мета: навчитися програмувати з використанням вказівників та динамічних змінних,  створювати та опрацьовувати черги та стеки.

Завдання

Дано число D і «покажчики» P1 й P2 на початок і кінець черги (якщо черга порожня, то P1=P2=nil). Записати елемент зі значенням  D у кінець черги та вивести нові адреси початку і кінця черги.

uses crt;

type vkaz=^cherga;

       cherga=record

           num:integer;

           next:vkaz

           end;

procedure add(var a:vkaz);

   var temp:vkaz;

   begin

   new(temp);

   temp^.next:=a;

   temp^.num:=random(100);

   a:=temp;

   end;

procedure addnew(var a:vkaz; D:integer);

   var temp:vkaz;

   begin

   new(temp);

   temp^.next:=a;

   temp^.num:=D;

   a:=temp;

   end;

function tail(a:vkaz):vkaz;

   begin

   while a<>nil do

       begin

       tail:=a;

       a:=a^.next;

       end;

   end;

procedure create(var a,p1,p2:vkaz; var n:integer);

   var i:integer;

   begin

   write('vvedit kilkist chysel: ');

   readln(n);

   if n<>0 then

       begin

       for i:=1 to n do

           begin

           add(a); write(a^.num,' ');

           if i=1 then p1:=a;

           a:=a^.next;

           end;

        p2:=tail(a);

       writeln;

       writeln('pochatok: ',seg(p1^),ofs(p1^));

       writeln('kinets: ',seg(p2^),ofs(p2^));

       end

       else writeln('pochatok i kinets = NIL');

   end;

procedure newP(var a,p1,p2:vkaz; n:integer);

    begin

    if n=0 then p1:=a;

    p2:=tail(a);

    writeln('pochatok: ',seg(p1^),ofs(p1^));

    writeln('kinets: ',seg(p2^),ofs(p2^));

    end;

procedure free(var a:vkaz; p1:vkaz);

    var temp:vkaz;

    begin  a:=p1;

    while a<>nil do

        begin

       temp:=a;

       a:=a^.next;

       dispose(temp);

       end;

    end;

   var el,p1,p2:vkaz; n,d:integer;

begin clrscr; randomize;

create(el,p1,p2,n);

write('vvedit chyslo D: ');  readln(d);

addnew(el,d);

newP(el,p1,p2,n);

free(el,p1);

repeat until keypressed

end.

Висновок.  Виконавши лабораторну роботу, я навчився працювати з вказівниками та динамічними змінними, створювати черги та додавати нові елементи, виділяти пам'ять для динамічних змінних та звільняти її, а також виводити адреси початку та кінця черги.


 

А также другие работы, которые могут Вас заинтересовать

70669. ОСТРЫЙ И ХРОНИЧЕСКИЙ ХОЛЕЦИСТИТ 100.5 KB
  Исследование органов брюшной полости: осмотр: форма живота участие в дыхании видимое увеличение желчного пузыря; пальпация: а тонус брюшных мышц локализация болезненности пальпация...
70670. ПАНКРЕАТИТ 91.5 KB
  Железа располагается позади желудка, в сальниковой сумке, забрюшинно; спереди и сзади покрыта расходящимися листками брыжейки поперечно-ободочной кишки; позади нее располагается солнечное сплетение.
70671. Перитониты. Анатомия и физиология брюшины 108.5 KB
  Брюшина это серозный покров стенок париетальная брюшина и органов брюшной полости висцеральная брюшина. Нижний этаж брюшной полости может быть осмотрен после того как большой сальник и поперечно-ободочная кишка будут отвернуты вверх.
70672. ПОВРЕЖДЕНИЯ ЖИВОТА 144 KB
  Ранение тканей брюшной стенки. Повреждение органов брюшной полости. Повреждение органов брюшной полости и забрюшинного пространства. Клиника повреждений брюшной полости зависит от: характера травмы локализации повреждения.
70673. ОНКОПАТОЛОГИЯ ЛЕГКИХ ТРАХЕИ И КРУПНЫХ БРОНХОВ 388.98 KB
  В зависимости от характера роста опухоли выделяют три анатомические формы рака легкого. Рост опухоли происходит кнаружи от стенки бронха. Выделяют две разновидности этой опухоли: солитарную и мультицентрическую.
70674. ПОВРЕЖДЕНИЯ ГРУДИ 176.5 KB
  Повреждения груди относятся к категории тяжелых травм мирного и военного времени. Обращает на себя внимание что и сегодня до 15 пострадавших умирают не из-за тяжести и обширности повреждения а от вторичных в большинстве случаев устранимых причин.
70675. ОСЛОЖНЕНИЯ ЯЗВЕННОЙ БОЛЕЗНИ 72.5 KB
  Язвенная болезнь заболевание в основе которого лежит образование и долгое не заживление дефекта слизистой и других слоев желудка и 12 п. К местным факторам принадлежат: 1 повышение кислотно-ферментативного воздействия на слизистые...
70676. ГАСТРОДУОДЕНАЛЬНОЕ КРОВОТЕЧЕНИЕ 72.5 KB
  Язвы желудка и двенадцатиперстной кишки являются причиной около 50 случаев кровотечения из верхних отделов желудочно-кишечного тракта. Одной из причин такого положения является тот факт что нередко язвенная болезнь дебютирует клиникой кровотечения.
70677. Сущность категорий предприимчивость, предприятие, предпринимательство 125.5 KB
  Предпринимательство (предпринимательская деятельность) - самостоятельная, инициативная деятельность граждан, направленная на получение прибыли или личного дохода и осуществляемая от своего имени, на свой риск и под свою имущественную ответственность...