IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Вычисление значений функции, Заданной в виде разложения в ряд
BDS
сообщение 4.06.2003 15:07
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Надо сделать программу, чтобы она вычисляла таблицу значений функции, заданной в виде разложения в ряд. При этом: границы интервала вычислений a и b, величина шага изменения аргумента h, точность вычисления функции E задаются с экрана.

Сама прога у меня есть (если кому надо, могу кинуть). Но проблема в том, что ее надо с Ассемблерными вставками сделать! Если кто может помочь, пишите!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GLuk
сообщение 4.06.2003 15:19
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Может постишь сюда...?
И вообще для таких вещей есть раздел Ассемблер!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BDS
сообщение 4.06.2003 15:43
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Вот прога:

Код
Program KKR2;
uses crt;
CONST
 path = 'D:BPMYKKR';
LABEL 1;
TYPE
 FileName = string [13];
VAR
 E,x,y,a,ak,b,h:real;
 NameFile:FileName;
 flag:boolean;
 k:integer;
 n:longint;
 p:string;
 f:text;

BEGIN
 REPEAT
 ClrScr;
   REPEAT
     write('Введите границы интервала вычислений a и b (a<b): ');readln(a,B);
   UNTIL a<=b;
   write('Введите величину шага изменения аргумента h: ');readln(h);
   REPEAT
     write('Введите точность вычисления функции E (E>0): ');readln(E);
   UNTIL E>0;
 ClrScr;
   writeln(' a=',a:5:2,' b=',b:5:2,' h= ',h:2:2,' E=',E:2:4);
   write('Все верно? (y/n) ');
   readln(p);
 UNTIL ((p='y') or (p='Y')); {повторять ввод данных пока нет подтверждения о его правильности}
  ClrScr;
  REPEAT
     writeln('Вывод в файл результатов подсчета.');
     write('Введите имя файла: ');
     readln(NameFile);
   assign(f,path+NameFile);
   {$I-} {отключение автоматической проверки ошибок ввода/вывода}
     reset(f);
   {$I+} {включение автоматической проверки ошибок ввода/вывода}
     IF IOResult <> 0 THEN  {проверка существования файла}
       BEGIN
         ClrScr;
         writeln('Указанного файла нет в текущей директории!');writeln;
         flag:=FALSE;
       END
     ELSE flag:=TRUE;
  UNTIL flag=TRUE;
   close(f);
   rewrite(f);
     writeln(f,'Данный файл создан программой Буробина Дмитрия,');
     writeln(f,'которая вычислила таблицу значений функции, заданной в виде разложения в ряд.');
     writeln(f);
     writeln(f,'Границы интервала вычислений a и b равны ',a:5:2,' ',b:5:2);
     writeln(f,'Величина шага изменения аргумента h равна ',h:2:2);
     writeln(f,'Точность вычисления функции E равна ',E:2:4);
     writeln(f);
     writeln(f,'     #      X          F(x)          # чл.р.');
 x:=a;
 n:=1;
 REPEAT
 BEGIN
   k:=2;
   write(f,n:6,x:10:2);
   ak:=(x-1)/(x+1);
   y:=ak;
   IF abs(ak)<E THEN goto 1;
   REPEAT
   BEGIN
     ak:=ak*(((2*k-3)/(2*k-1))*((sqr(x-1))/(sqr(x+1)))); {множитель для нахождения a(k)}
     y:=y+ak;
     Inc(k);
   END UNTIL (abs(ak)<E);
1:  writeln(f,2*y:15:8,k-1:10);
   x:=x+h;
   Inc(n);
 END UNTIL x>b;
 close(f);
 ClrScr;
  writeln('Данные добавлены в фаил "',path+NameFile,'"');
  write('Просмотреть его вы можете нажав в NC клавишу <F3>, ');
  writeln('или блокнотом Windows.');
  writeln;write('Для выхода нажмите <Ввод>');
 readkey;
END.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shadow
сообщение 4.06.2003 20:15
Сообщение #4


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


:D
-=-=
а вставки какие всеиполностью даже формулы
-=-=
или только избавиться от модуля Crt ???


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BDS
сообщение 5.06.2003 8:32
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Любые! Где угодно, чтобы только были!!!!! :o
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shadow
сообщение 5.06.2003 9:49
Сообщение #6


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


ню я уже начал
-=-=
напишу все что могу
-=-=-=
надеюсь ето не очень срочно


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BDS
сообщение 5.06.2003 15:33
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Вообще к понедельнику надо сдать! :-X
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GLuk
сообщение 5.06.2003 15:54
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


Ну и я заодно попробую... по ходу надо и FPU подключать??
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BDS
сообщение 5.06.2003 16:05
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Наверное??  ???
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
BDS
сообщение 5.06.2003 16:10
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 17

Репутация: -  0  +


Ну вообще мне надо хоть что-нибудь на пас+асм, желательно с матрицами, или чем-то, где их использование облегчает решение (асм. вставок)!
Если есть что-нибудь готовое, буду очень благодарен!!!!!!!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shadow
сообщение 5.06.2003 19:19
Сообщение #11


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


Ню вот примерно
-=-=

Код
program KKR1;
{uses crt;} var
E,a,b,s,h,R,x,d,c,integ,integlast:real;
s1:String;
i:integer;
p:Char;
n:longint;

function func(x:real):real;             {}
begin                               {}
if x<=-2*R then func:=d             {}
else                               {}
if x<=0 then func:=sqrt(x*(-x-2*R))       {}
else                               {}
if x>2*R then func:=c                   {}
else                               {}
func:=-sqrt(x*(-x+2*R))             {}
end;                               {}
Procedure ClScr;Assembler;
asm
     mov ax,3
     int 10h
end;
Procedure OutText(sss:String);
Begin
s1:=sss;   {в/Є/ Џ бЄ «м ¬ «Ґ­мЄ® ­Ґ­ 室Ёв ­Ґ Ј®«®Ў «м­лҐ ЇаҐ¬Ґ­­лҐ }
asm
     mov dx,offset s1+1       {+1 Є®а४вЁа®ўЄ }
     {ᬥ饭ЁҐ Є ЇҐаҐ¬Ґ­­®© ў Є®в®а®© Ўг¤Ґв еа ­Ёвбп ўлў®¤Ё¬ бва®Є }
     mov ah,9      {д­Єж ўлў®¤ }
     int 21h       {DOS interrypt}
end;
end;

Procedure InitData;{вгв ­ бва Ёў Ґ¬ ॣЁбв DS ­  бҐЈ¬Ґ­в ¤ ­­ле}
{вॡгҐвбп ®¤Ё­ а § ў б ¬®¬ ­ з «Ґ}
Var
Data:Word;
BEGIN
Data:=DSeg;
asm
     mov ax,data{ ¤аҐб ᥣ¬Ґ­в  ¤ ­­ле ў ॣЁбва Їа®ж }
     mov ds,ax  { ¤аҐб ў ॣЁбв DS в/Є/ ®­ ®вўҐз Ґв §  бҐЈ¬Ґ­в ¤ ­­ле }
     xor ax,ax  {®Ў­г« ­  ўбпЄЁ© б«гз ©}
end;
END;

Procedure MCurXY(x,y:Byte);Assembler;{¤«п ЇҐаҐ¬ҐйҐ­Ёп Єгаб®а }
asm
     mov ah,02       {;function moving the cursor}
     mov bh,0      {;screen number}
     mov dh,y      {;x-posit}
     mov dl,x      {;y-posit}
     int 10h            {;BIOS INTerrypt}

end;

Procedure WaitKey;Assembler;
asm
     mov ah,0
     int 16h
end;
{=============}
{=============}
{=============}
begin                              {}

{ўаҐ§г«мв ⥠Їа®Ја ¬¬Ёа®ў ­Ёп ў®§­ЁЄ ў®Їа®б Ї®зҐ¬г ASM ­Ґ ­Ґ ­ 室Ёв}
{­Ґ Ј«®Ў «м­лҐ ЇҐаҐ¬Ґ­­лҐ}
InitData;                  {}
ClScr;                          {}
MCurXY(5,5);
OutText('Ї®­пв­® § 祬 Їа®жҐ¤ MCyrXY$');  {Џа®Ў  :) }
{ЇаЁ¬Ґз ­ЁҐ §­ Є -=$=- ®Ўп§ ⥫Ґ­ в/Є/ Ґв® Є®­Ґж бва®ЄЁ}
WaitKey;                        {}
ClScr;                          {}
repeat
     repeat
OutText('‚ўҐ¤ЁвҐ A and B (a<b):$');readln(a,B); {}
     until a<b;                         {}
repeat                               {}
OutText('‚ўҐ¤ЁвҐ R (R>0):$');readln®; {}
until r>0;                         {}

repeat                               {}
OutText('‚ўҐ¤ЁвҐ d (d<0):$');readln(d);      {}
until d<0;                         {}

repeat                               {}
OutText('‚ўҐ¤ЁвҐ c (c>0):$');readln©;      {}
until c>0;                         {}

repeat                               {}
OutText('‚ўҐ¤ЁвҐ E (E>0):$');readln(E); {}
until E>0;                         {}
ClScr;

writeln(' a=',a:5:2,' b=',b:5:2,' d=',d:5:2,' c=',c:5:2,' R=',r:5:2, ' E=',E:2:4); {}
OutText('‚ᥠЇа ўЁ«м­® (y/n):$');      {}
readln(p);                         {}

until ((p='y') or (p='Y')); {повторять ввод данных пока нет подтверждения о его правильности} {}
ClScr;                         {}
OutText('Please wait$');             {}
                             {}
repeat                               {}
begin                               {}
ClScr;                               {}
n:=1;                      {г вҐЎп ®­ 0 Ўл«}
writeln('n=',n);                   {}
h:=(b-a)/n;
s:=0;                               {}
for i:=1 to n do                   {}
begin                               {}
x:=a+i*h;                         {}
s:=s+func(x);                         {}
end;                               {}
Integlast:=Integ;                   {}
n:=n*2;                         {}
Integ:=h*s;
end until (abs(Integ-Integlast)<E);       {}
ClScr;                         {}
writeln('Значение интеграла на интервале [',a:0:2,',',b:0:2,'] для функции,'); {}
writeln('заданной графически равно: ',Integ:0:4);                         {}
WaitKey;                         {}
end.                               {}
                             {}
                             {}


Сообщение отредактировано: volvo - 17.12.2004 13:24


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shadow
сообщение 5.06.2003 19:36
Сообщение #12


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


Цитата
Ну и я заодно попробую... по ходу надо и FPU подключать??

расшифруй FPU


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shadow
сообщение 5.06.2003 19:52
Сообщение #13


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


и вот еще есть чтучка как XMM - расширение архитектуры микропроцессора Pentium
-=-=-=-=--=
которая добавляет 8    128-биттных регистров с плавающей точкой
-=-=
как бы ее применить


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
GLuk
сообщение 6.06.2003 15:39
Сообщение #14


Профи
****

Группа: Пользователи
Сообщений: 775
Пол: Мужской

Репутация: -  0  +


FPU -> сопроцессор.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Shadow
сообщение 6.06.2003 18:02
Сообщение #15


Lonely_Raven
****

Группа: Пользователи
Сообщений: 640
Пол: Мужской

Репутация: -  1  +


я так и понял


--------------------
Программа делает то что вы ей приказали а не то что бы ВАМ хотелось бы.
МЕРФИ
---------------------
RTFM - Read the fucking manual
---------------------
http://www.livejournal.com/users/lonley_raven/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 26.07.2025 5:23
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"