Вычисление значений функции, Заданной в виде разложения в ряд |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Вычисление значений функции, Заданной в виде разложения в ряд |
BDS |
Сообщение
#1
|
Новичок Группа: Пользователи Сообщений: 17 Репутация: 0 |
Надо сделать программу, чтобы она вычисляла таблицу значений функции, заданной в виде разложения в ряд. При этом: границы интервала вычислений a и b, величина шага изменения аргумента h, точность вычисления функции E задаются с экрана.
Сама прога у меня есть (если кому надо, могу кинуть). Но проблема в том, что ее надо с Ассемблерными вставками сделать! Если кто может помочь, пишите! |
BDS |
Сообщение
#2
|
Новичок Группа: Пользователи Сообщений: 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. |
Текстовая версия | 19.04.2024 9:30 |