Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 14.01.2011, 23:02   #1 (permalink)
kitty91
Новичок
 
Регистрация: 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
kitty91 вне форума   Ответить с цитированием

Старый 14.01.2011, 23:02
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

По описанию ваш топик очень схож с этими

Pascal, две задачки, нужна помощь
Решить задачки
Помогите решить задачки в Pascal

Старый 14.01.2011, 23:04   #2 (permalink)
kitty91
Новичок
 
Регистрация: 14.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Сортировки

Упорядочить положительные элементы массива по возрастанию, оставив остальные на своих местах.
kitty91 вне форума   Ответить с цитированием
Старый 14.01.2011, 23:06   #3 (permalink)
kitty91
Новичок
 
Регистрация: 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. Изменить метод разрешения коллизий
kitty91 вне форума   Ответить с цитированием
Старый 14.01.2011, 23:07   #4 (permalink)
kitty91
Новичок
 
Регистрация: 14.01.2011
Сообщений: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Помогите, пожалуйста с задачками!!! буду очень благодарна!!!
kitty91 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Метки
pascal


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:54.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.