Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 19 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
В общем ситуация такая срочно нужны две задачи:
1) Нужен модуль работы с динамическими структурами данных (любой) и программа использующая его.

2)Нужен модуль для решения математических задач (например вычисление arccos, arctg, tg, ctg .......) и программа использующая его.

Можно все это объединить.
Очень срочно нужно:weep:, буду очень очень благодарен.:beer::beer::beer:



Партнер
 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
Текс, во первых, Паскаль или Delphi? Модуль как unit или Модуль как .dll? Уточняй плиз , что именно и как надо


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
паскаль, как unit

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
обьектно или нет?


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
без разницы (давай не объектный), кстати математический я уже сделал, теперь вот модуль работы с динамическими данными повис в воздухе.

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Advanced member
Статус: Не в сети
Регистрация: 09.06.2003
Откуда: USSR
SYSMAN Завтра сделаю, если еще будет надо, правда обьектно было бы удобнее, но могу из без ООП

Добавлено спустя 10 часов, 33 минуты, 29 секунд:
Мдя вот тебе грубый вариант динами ческого массива, есть добавление , вытаскивание и удаление элемента
это unit для работы с массивом
Код:
unit dynmas;

interface
   type PWord=^Word;
        PMyArray=^TMyArray;
        TMyArray=Array[0..35000] of word;
   type TDynaMac=record
        length:longint;
        data_array:pointer;
        end;

procedure AddItem(var dyn:TDynaMac; item:word);
function GetItem(var dyn:TDynaMac;index:longint):word;
procedure DelItem(var dyn:TDynaMac;index:longint);
procedure FreeDynamac(var dyn:TDynaMac);

implementation

procedure AddItem(var dyn:TDynaMac; item:word);
var tmpStorage:pointer;
    tmpData:Pword;
begin
     GetMem(tmpStorage,dyn.length*sizeof(Word)+sizeof(Word));
     if dyn.length>0 then
     begin
          move(dyn.data_array^,tmpStorage^,dyn.length*sizeof(Word));
          FreeMem(dyn.data_array,dyn.length* sizeof(Word));
     end;
     dyn.data_array:=tmpStorage;
     dyn.length:=dyn.length+1;
     tmpData:=dyn.data_array;
     inc(tmpData,dyn.length-1);
     tmpData^:=item;
end;

procedure FreeDynamac(var dyn:TDynaMac);
begin
     FreeMem(dyn.data_array,dyn.length*sizeof(word));
     dyn.length:=0;
end;
function GetItem(var dyn:TDynaMac;index:longint):word;
var
    tmpData:Pword;
begin
     if index>(dyn.length-1) then
     begin
          GetItem:=0;
          exit;
     end;
     tmpData:=dyn.data_array;
     inc(tmpData,index);
     GetItem:=tmpData^;
end;
procedure DelItem(var dyn:TDynaMac;index:longint);
var tmpStorage1:pointer;
    tmpPointer1,tmpPointer2:Pword;
begin
     if index>(dyn.length-1) then exit;
     GetMem(tmpStorage1,dyn.length-1);
     move(dyn.data_array^,tmpStorage1^,index*sizeof(word));
     tmpPointer1:=dyn.data_array;
     tmpPointer2:=tmpStorage1;
     inc(tmpPointer1,(index+1));
     inc(tmpPointer2,(index));
     move(tmpPointer1^,tmpPointer2^,(dyn.length-index)*sizeof(word));
     FreeMem(dyn.data_array,dyn.length*sizeof(word));
     dyn.data_array:=tmpStorage1;
     dec(dyn.length)
end;

end.


Это пример его использования. все писал на Delphi (небыло Паскаля на работе), но по памяти пытался не использовать нововведений так что должно пойти и на досовском паскале.
Код:
program dyntest;

uses  dynmas ;
var T:TDynaMac;
    i:longint;
begin
     for i:=1 to 100 do
     begin
          AddItem(t,i);
     end;
     writeln('Length of dynamic array is ',t.length,#$0a#$0d);
     writeln('GetItem with index 5 = ',GetItem(t,5));
     writeln('GetItem with index 56 = ',GetItem(t,56),#$0a#$0d);
     writeln('Deleting item with index 56');
     DelItem(t,56);
     writeln('Item with Index 56 now is = ',GetItem(t,56),#$0a#$0d);
     writeln('Length of dynamic array is ',t.length);
     readln;
     FreeDynamac(T);
end.


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
Где качнуть большую коллекцию задач (решенных) на зачет. Срочно......
:beer:


 

Member
Статус: Не в сети
Регистрация: 11.05.2003
Дайти ссылку на Setup Паскаля PLZ!!!


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
там нет сетупа, ищи bp.exe или turbo.exe

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Member
Статус: Не в сети
Регистрация: 11.05.2003
Дай ссылку на Install.exe - Паскаля...


 

Member
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Брест
Фото: 47
На всякий случай, для тех кому понадобится, может быть:
есть очень оптимальный(я над ним потел два года) алгоритм нахождения дружественных чисел методом перебора - на PasCal и на Delphi 3.0...

_________________
А ещё недавно ждали AMD Steamroller на AM3+


Последний раз редактировалось AlexZerg 21.06.2004 23:21, всего редактировалось 1 раз.

 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
AlexZerg давай, выкладывай, буду благодарен (с коментариями если можно)

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Member
Статус: Не в сети
Регистрация: 21.10.2003
Откуда: Брест
Фото: 47
SYSMAN У меня без комментариев - тут не сложные инструкции, но смысл понять трудновато... ;)
Код:
Uses Crt,DOS;
Const Con=2;
Var l,j,x,xx:longint;

Function Drug(n1:longint):longint;
Var i,k,Sq : longint;
Begin
 k:=3+(n1 div 2); Sq:=Trunc(Sqrt(n1));
 For i:=3 To Sq-1 Do
  IF n1 mod i = 0 Then
    Inc(k,(n1 div i)+i);
 IF n1 mod Sq = 0 Then
  If (n1 div Sq)<>Sq then Inc(k,(n1 div Sq)+Sq)
                     else Inc(k,Sq);
Drug:=k;
End;

Function Drug1(n1:longint):longint;
Var i,k,NSq : longint;
Begin
 k:=1; i:=3;
 NSq:=Trunc(Sqrt(n1));
 Repeat
  IF n1 mod i = 0 Then
    Inc(k,(n1 div i)+i);
  Inc(i,2);
 Until i>NSq-1;
 IF n1 mod NSq = 0 Then
  If (n1 div NSq)<>NSq then Inc(k,(n1 div NSq)+NSq)
                       else Inc(k,NSq);
Drug1:=k;
End;
                 { -> }
Begin
Clrscr;
Repeat
 Write('Введите число, до которого искать : ');
 ReadLn(l);
 If l<=9 then ClrScr;
 Until l>=9;
 WriteLn('Дружественные числа : ');
{чётные}
 j:=Con;
 While j<=l do
  begin
   x:=drug(j);
   if j<x then Begin
    if x mod 2 = 0 then xx:=drug(x) else xx:=drug1(x);
    if j=xx then Write('{',j,',',x,'} ');
   end;
   inc(j,2);
  end;
{нечётные}
 j:=Con+1;
 While j<=l do
  begin
   x:=drug1(j);
   if j<x then Begin
    if x mod 2 = 0 then xx:=drug(x) else xx:=drug1(x);
    if j=xx then Write('{',j,',',x,'} ');
   end;
   inc(j,2);
  end;
End.

Это мой последний вариант простого алгоритма. Больше я здесь ничего для ускорения не придумал. Проверял на время выполнения, код вычисления которого я отсюда убрал...
Просто есть ещё и сложный, в три раза бюльший, который работает намного быстрее с перебором чётных чисел, особенно больших (это "+"). Но каждый новый поиск этим алгоритмом приходится начинать с самого начала (это "-")... Но сложный алгоритм, думаю, тут не нужен...

_________________
А ещё недавно ждали AMD Steamroller на AM3+


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
Помогите решить, я в принципе ее сделал, но препод говорит, что не правильно
и можно короче.
"Задана матрица m*n, в которой некоторые строки образуют арифметическую
прогрессию. Вывести количество строк которые образуют арифметическую
прогрессию. Матрица берется из файла input.txt, а колличество строк выводится в
файл output.txt. (в программе использовать подпрограммы)."

Вот мой вариант этой задачи:

const
m=2;
n=2;
type
massiv=array[1..m,1..n] of integer;
var
inp,out:text; {Ввод, вывод}
i,j,otv:integer;
a:massiv;
procedure readfile(var mas:massiv);
var
i,j,x:integer;
begin
for i:=1 to m do
begin
for j:=1 to n do
begin
read(inp,mas[i,j]);
end;
readln(inp);
end;
end;
function check(arr:massiv; poz:integer):boolean;
var
i,j,sub:integer;
ok:boolean;
begin
ok:=true;
sub:=arr[poz,1]-arr[poz,2];
for i:=2 to n do
begin
if (arr[poz,i-1])-(arr[poz,i])<>sub then
ok:=false;
end;
check:=ok;
end;
begin
otv:=0;
assign(inp,'input.txt');
assign(out,'output.txt');
reset(inp);
rewrite(out);
readfile(a);
for i:=1 to m do
begin
if check(a,i) then
inc(otv);
end;
write(out,otv);
close(inp);
close(out);
end.

Буду очередной раз безмерно благодарен если поможете.

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
неужели никто помочь не может

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Member
Статус: Не в сети
Регистрация: 09.05.2003
Откуда: Краснодар
ОК благодарствую

_________________
Intel Core 2 Quadr Q8300, Gigabyte P35-DS3, Palit 9800GT-512мб, 4Гб Hynix (800),WD 500AAKS, FSP450Вт
--- HTC Diamond (rom ver.2.03 + radio 1.09)


 

Junior
Статус: Не в сети
Регистрация: 21.06.2004
Откуда: Киев
SYSMAN я могу написать такую прогу заново за 15 минут, но разбиратся в чужой могу с пол-года :)
подожди, скоро будет.

Добавлено спустя 10 минут, 54 секунды:
Всё уже сажусь писать прогу... :)

Добавлено спустя 21 минуту, 38 секунд:
Вот написал:
Цитата:
program sysman;
var
m,n:integer;
rslt:integer;
A:Array [1..100,1..100] of Integer;
T:Text;
procedure cip_h;
var
z,z1:integer;
ap:boolean;
r:integer;
begin
for z:=1 to n do
begin
r:=a[1,z]-a[2,z];
ap:=true;
for z1:=2 to m do
if (a[z1-1,z]-a[z1,z])<>r then ap:=false;
if ap then inc(rslt);
end;


end;
begin
assign(T,'input.txt');
reset(T);
N:=0;
while not eof(T) do begin
m:=0;
inc(n);
while not eoln(T) do begin
inc(m);
read(T,A[m,n]);
end;
readln(T);
end;
close(T);
rslt:=0;
cip_h;
writeln(rslt);
assign(T,'output.txt');
rewrite(T);
writeln(T,rslt);
close(T);
end.


Сорри что так долго. Однако теряю форму паскалиста, давно уже да Delphi пишу.
Вроде пашет.

Добавлено спустя 2 минуты, 3 секунды:
Кстати. Если будут претензии, то попроси препода подробнее сформулировать задачу. Нужно считать только строки, или строки и столбцы и т.п.

_________________
"А с поцелуями торопиться не будем", - сказал принц, слезая со Спящей красавицы...


 

Если есть возможность помогите. На паскале необходимо написать программу.
Разбить экран на 3 равные области(640*160, 640*160, 640*160) и вывести произвоьное количество точек. В каждой области есть квадрат со стороной 160*160, который разбит на 5 областей. квадрат находится в левой части экрана и перемещается в правый. При перемещении расчитать в какой из 5 областей квадрата находится максимальное количество точек и в самую дальную (от центра квадрата) точку перенести центр квадрата. при попадании одной и той же точки в области разных квадратов приоритет у того к кому эта точка ближе (расстояние от точки до центра квадрата). В результате посмотреть какое количество точек окажет не охваченное ни одной областью 3 квадратов???


 

Advanced member
Статус: Не в сети
Регистрация: 23.10.2003
Откуда: Иркутск/Майкоп
Господа студенты, соблюдайте правила раздела. Прошения подаются в этой теме.

_________________
Края каждого совершенно нового крышка процессора не на 100% гладкая. Это связано с тем, что следов мастерства не избежать. (c) Али.


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней. Закрыто  Сообщений: 19 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


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

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan