14.01.2011, 23:02 | #1 (permalink) |
Новичок
Регистрация: 14.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Задачки на Pascal
Определить: с какими переменными возможно и желательно работать как с динамическими? Изменить программу, включив работу с динамическими переменными: program kvur; var a,b,c, d, x1,x2: real; begin repeat writeln ('Vvedi koefficienty KVUR (a<>0)'); write ('a='); readln(a); write ('b='); readln(b); write ('c='); readln(c); until a<>0; d:=b*b-4*a*c; if d<0 then writeln ('net korney') else begin x1:=(-b+sqrt(d))/(2*a); x2:=(-b-sqrt(d))/(2*a); writeln ('x1=',x1:5:2,' x2=',x2:5:2) end; readln; end. Опишите тип данных: указатель на данные типа <my_type>. Объявите переменные a, b названного типа. Выделите в динамической памяти участки, достаточные для размещения двух переменных типа <my_type> (применить разные способы). Введите в созданные динамические переменные некоторые значения. Выведите их на экран. Присвойте одному из указателей значение другого указателя (Какие предварительные действия нужно сделать? Осуществите их). Выведите значения динамических переменных на экран. <my_type>: 1). real |
14.01.2011, 23:02 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
По описанию ваш топик очень схож с этими Pascal, две задачки, нужна помощь Решить задачки Помогите решить задачки в Pascal |
14.01.2011, 23:06 | #3 (permalink) |
Новичок
Регистрация: 14.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Хеширование
Модифицировать программу работы с хеш-таблицей, хранящей информацию об абоненте (номер АТС, фамилия, имя, отчество), и выполняющей операции вставки новой информации, поиска фамилии по заданному номеру АТС, печати хеш-таблицы. uses crt; const n=10; type THashItem = record FIO: string [50]; Phone: string [6]; used: boolean; end; THashTable = array [0..n-1] of THashItem; var ht:THashTable; hi:THashItem; size,num,i:integer; procedure HashInit ( var ht: THashTable; var size: integer); var i: 0..n; hi: THashItem; begin size:=0; for i:=0 to n do begin hi.FIO:=''; hi.Phone:=''; hi.used:=false; ht[i]:= hi end; end; function HashAdd (var ht: THashTable; var size: integer; hi:THashItem):boolean; var ind, i, error, c: integer; p: longint; begin val(hi.Phone,p,error); ind:= p mod n; if ht[ind].used=false then begin ht[ind]:=hi; HashAdd:=true; size:=size+1 end else begin c:=27; i:=0; while (ht[ind].used=true) and (ht[ind].phone<>hi.phone) do begin i:=i+1; ind:=(ind+c*i) mod n; end; if ht[ind].used=false then begin ht[ind]:=hi; HashAdd:=true; size:=size+1 end else begin writeln('Add no, phone esist'); HashAdd:=false end end; end; procedure HashFind ( var ht: THashTable; hi:THashItem); var ind, i, error, c: integer; p: longint; begin val(hi.Phone,p,error); ind:= p mod n; c:=27; i:=0; while (ht[ind].used=true) and (ht[ind].phone<>hi.phone) do begin i:=i+1; ind:=(ind+c*i) mod n; end; if ht[ind].used=false then writeln ('phone no') else writeln(ht[ind].FIO) end; begin HashInit (ht,size); repeat Clrscr; writeln ('1. Insert'); writeln ('2. Find'); writeln ('3. Print'); writeln ('4. exit'); write ('vvedi num='); readln (num); case num of 1: begin clrscr; writeln ('vvedi FIO'); readln (hi.FIO); writeln ('vvedi Phone'); readln (hi.Phone); hi.used:= true; if size=n then writeln ('Add no, size(HashTable)=n') else if HashAdd (ht, size, hi) then writeln ('Info Add'); readkey; end; 2: begin clrscr; writeln ('vvedi Phone'); readln (hi.Phone); HashFind (ht, hi); readkey; end; 3: begin clrscr; for i:=0 to n-1 do begin writeln (ht[i].FIO:15, ht[i].Phone: 8, ht[i].used) end; readkey; end; end; until num=4; end. 1. Определить метод вычисления хеш-функции 2. Определить метод разрешения коллизий 3. Изменить метод вычисления хеш-функции 4. Изменить метод разрешения коллизий |
14.01.2011, 23:07 | #4 (permalink) |
Новичок
Регистрация: 14.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите, пожалуйста с задачками!!! буду очень благодарна!!!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
pascal |
|
|