ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1681  
Старый 11.09.2009, 19:35
Аватар для a-l-e-x23
a-l-e-x23
Участник форума
Регистрация: 15.08.2008
Сообщений: 167
Провел на форуме:
15123588

Репутация: 299
По умолчанию

Цитата:
Сообщение от =Zeus=  
Мог бы и потрудится перевести, форум-то русский!
Форум - не русский, а русскоязычный. Не путайте пожалуйста.
 
Ответить с цитированием

  #1682  
Старый 12.09.2009, 12:03
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
По умолчанию

Есть ли в Pascal'e функция для определения отрезка ?

Мне нужно проверить число, чтобы оно не входило в отрезок [0.5-2]
 
Ответить с цитированием

  #1683  
Старый 12.09.2009, 12:14
Аватар для kyoko
kyoko
Участник форума
Регистрация: 17.08.2008
Сообщений: 212
Провел на форуме:
1063099

Репутация: 186
Отправить сообщение для kyoko с помощью ICQ
По умолчанию

Помогите пожалуйста! мне нужно выполнить лабораторку, она маленькая. и сдать через 2 часа. помогите пожалуйста!!!!! на с++

Задание:
Решением дифференциального уравнения является неизвестная функция x(t). Необходимо, используя численные методы решения ДУ, найти эту функцию. Полученное численное решение необходимо сопоставить с точным, чтобы исследовать зависимость величины локальной ошибки от величины шага интегрирования.

1.Написать программу решения ДУ с помощью прямой (явной) формулы Эйлера.
2.Написать программу решения ДУ с помощью обратной (неявной) формулы Эйлера.
3.Написать программу решения ДУ с помощью формулы трапеций.
4.Сопоставить результаты численного и точного решений ДУ на экране монитора.


Дифференциальное уравнение (ДУ) - x'(t)=x(t)+t2

Решение ДУ - x(t) =6exp(t-1)- t2-2t-2

Последний раз редактировалось kyoko; 12.09.2009 в 12:26..
 
Ответить с цитированием

  #1684  
Старый 12.09.2009, 12:32
Аватар для Dosia
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

Цитата:
Есть ли в Pascal'e функция для определения отрезка ?

Мне нужно проверить число, чтобы оно не входило в отрезок [0.5-2]
Все очень просто If (твое число < 0.5) or (твое число > 2) then Пишеш тут что будет выполнятся если число не входит в данный отрезок.

По поводу ДУ, могу лишь предоставить код своей проги которая считала их методом:
1) Модифицированный метод Эйлера
2) Метод Рунге-Кутта

Описанные выше методы мне не знакомы, возможно это одно и тоже просто разными словами?

Код:
program TASK5;
uses graph;
var
   mas:array[1..2]of real;
   x0,y0,y1,y2,y3,h,t,y4,y5,x,y,xk,yk,ye,yr,ya,k1,k2,k3,k4,h1,k11,k21,k31,k41,ye1,yr1:real;
   i,gd,gm,j,n,z:integer;

function xm(x:real):integer;
         begin
              xm:=round(320+960*x);
         end;

function ym(y:real):integer;
         begin
         ym:=round(240-720*x);
         end;

function  f(a:real):real;
          begin
          f:=exp(a)+1;
          end;

procedure linovka;
var x,y:integer;
begin
setcolor(15);{color is white}
x:=5;y:=0;
setlinestyle(2,6,1);
repeat {draw vertical line}
line(x,0,x,GetMaxY);
x:=x+35;
until x>GetMaxX;
repeat {draw horizontal line}
line(0,y,GetMaxX,y);
y:=y+30;
until y>GetMaxY;
end;

procedure DrawAxisA;
begin
setcolor(15);{color is white}
setlinestyle(0,3,3);{line style,border widht,Thickness of line}
{draw axis of ordinate}
line(round(GetMaxX/2),0,round(GetMaxX/2),GetMaxY);
line(round(GetMaxX/2),0,round(GetMaxX/2-5),10);
line(round(GetMaxX/2),0,round(GetMaxX/2+5),10);
{draw axis of abscis}
line(round(GetMaxX),round(GetMaxY /2),GetMaxX-10,round(GetMaxY/2-5));
line(round(GetMaxX),round(GetMaxY /2),GetMaxX-10,round(GetMaxY/2+5));
line(0,round(GetMaxY/2),GetMaxX,round(GetMaxY/2));
end;

begin
     mas[1]:=0.01;
     mas[2]:=0.001;
     x0:=0;
     xk:=10;
     y0:=exp(1)+1;
     writeln ('                  x       1       2          a     ');
     for j:=1 to 2 do
         begin
              x:=x0;
              ye:=y0;
              yr:=y0;
              n:=round((xk-x0)/(mas[j]));
              for i:=1 to n do
                  begin
                       ye:=ye+mas[j]*f(x+mas[j]/2);
                       k1:=mas[j]*f(x);
                       k2:=mas[j]*f(x+mas[j]/2);
                       k3:=mas[j]*f(x+mas[j]/2);
                       k4:=mas[j]*f(x+mas[j]);
                       yr:=yr+(k1+2*k2+2*k3+k4)/6;
                       ya:=exp(x)+x;
                       x:=x+mas[j];
                       if (j=1) and (i mod 100 = 0) then
                       writeln ('step = ', mas[j]:5:3,' ',x:8:5,' ',ye/10000:8:5,' ', yr/10000:8:5,' ', ya/10000:8:5);
                       if (j=2)and(i mod 1000= 0) then
                       writeln ('step = ', mas[j]:5:3,' ',x:8:5,' ',ye/10000:8:5,' ', yr/10000:8:5,' ', ya/10000:8:5);
                  end;
              end;
         readln;
         gd:=detect;
         initgraph(gd,gm,'');
	linovka;
	DrawAxisA;
	setlinestyle(0,3,3);{line style,border widht,Thickness of line}
         x0:=0;
         xk:=10;
         y0:=exp(1)+1;
         x:=x0;
         ye:=y0;
         yr:=y0;
         ye1:=y0;
         yr1:=y0;
         for j:=1 to 5000 do
         begin
         t:=j/500;
                  x:=t/50;
                  h:=0.01;
                  h1:=0.001;
                  ye:=ye+h*f(x+h/2);
                  k1:=h*f(x);
                  k2:=h*f(x+h/2);
                  k3:=h*f(x+h/2);
                  k4:=h*f(x+h);
                  yr:=yr+(k1+2*k2+2*k3+k4)/6;
                  ya:=exp(x)+x;
                  x:=x+h;
                  ye1:=ye1+h1*f(x+h1/2);
                  k11:=h1*f(x);
                  k21:=h1*f(x+h1/2);
                  k31:=h1*f(x+h1/2);
                  k41:=h1*f(x+h1);
                  yr1:=yr1+(k11+2*k21+2*k31+k41)/6;
                  putpixel(xm(x),ym(ye),red);
                  putpixel(xm(x),ym(yr),green);
                  putpixel(xm(x),ym(ye1),yellow);
                  putpixel(xm(x),ym(yr1),blue);
                  putpixel(xm(x),ym(ya),brown);
             end;
         readln;
     end.

Последний раз редактировалось Dosia; 12.09.2009 в 13:52..
 
Ответить с цитированием

  #1685  
Старый 12.09.2009, 12:53
Аватар для kyoko
kyoko
Участник форума
Регистрация: 17.08.2008
Сообщений: 212
Провел на форуме:
1063099

Репутация: 186
Отправить сообщение для kyoko с помощью ICQ
По умолчанию

Dosia мне на с++ (((
 
Ответить с цитированием

  #1686  
Старый 12.09.2009, 13:19
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
Question

Составить структурированнуб программу преобразования заданных вещественных хначений Х и Т по правилу:
  • если Х < 0, то X и Т заменить модулем
  • если X < 0 или T < 0, то Х и Т увеличить на 0.5
  • если Х > T и Т > 0 и ни одно из них не принадлежит отрезку [0.5-2], то Х и Т * 10
в противном случае Х и Т оставить без изменеий

Код:
program z1n17;
 uses crt;
 var
  x,t: real;
 begin
  clrscr;
  writeln ('Enter X,T');
  read(x,t);
  if (x < 0) and (t < 0) then { ШАГ 1 }
                           begin
                            x:=abs(x);
                            t:=abs(t);
                            clrscr;
                            writeln('Result:');
                            writeln('|X|=', x:5:3, ' and |T|=', t:5:3);
                           end

                          else

                           if (x < 0) or (t < 0) then { ШАГ 2 }
                                                   begin
                                                    x:=x+0.5;
                                                    t:=t+0.5;
                                                    clrscr;
                                                    writeln('Result:');
                                                    writeln('X+0.5=', x:5:3, ' and T+0.5=', t:5:3);
                                                   end

                                                  else

                                                   if (x>0) and (t>0) and (x<0.5) and (x>2) and (t<0.5) and (t>2) then { ШАГ 3 }
                                                                                                                    begin
                                                                                x:=x*10;
                                                                                t:=t*10;
                                                                                clrscr;
                                                                                writeln('Result:');
                                                                                writeln('X*10=', x:5:3, ' and T*10=', t:5:3);
                                                                                                                     end

                                                                                                                  else

                                                                                                                    begin

                                                                                clrscr;
                                                                                writeln('Result:');
                                                                                writeln('X=', x:5:3, ' and T=', t:5:3);
                                                                                writeln;
                                                                                writeln('Without changes');
                                                                                                                    end;
  read(x);
 end.
Вот у меня проблема на шаге 3:

if (x>0) and (t>0) and (x<0.5) and (x>2) and (t<0.5) and (t>2)

Это условие ни в какую не хочет работать

P.S. После третьего условия у меня действия "смещены" влево, т.к. в паскале повидимому ограничение на количество символов в строке.
Это как-то можно обойти, чтобы код выглядил "красиво" ?) (но это не принципиально, главная проблема с условием)

P.S.S. первая прога на паскале)
 
Ответить с цитированием

  #1687  
Старый 12.09.2009, 13:21
Аватар для kyoko
kyoko
Участник форума
Регистрация: 17.08.2008
Сообщений: 212
Провел на форуме:
1063099

Репутация: 186
Отправить сообщение для kyoko с помощью ICQ
По умолчанию

Помогите написать программу решения системы нелинейных уравнений методом Ньютона- Рафсона на с++
 
Ответить с цитированием

  #1688  
Старый 12.09.2009, 13:33
Аватар для Dosia
Dosia
Участник форума
Регистрация: 05.06.2009
Сообщений: 127
Провел на форуме:
1313455

Репутация: 249
По умолчанию

Код:
program z1n17;
uses crt;
var
x,t: real;
begin
clrscr;
writeln ('Enter X,T');
read(x,t);

{ ШАГ 1 }
if (x < 0) and (t < 0) then
begin
x:=abs(x);
t:=abs(t);
clrscr;
writeln('Result:');
writeln('|X|=', x:5:3, ' and |T|=', t:5:3);
readkey;
exit;
end;

{ ШАГ 2 }
if (x < 0) or (t < 0) then
begin
x:=x+0.5;
t:=t+0.5;
clrscr;
writeln('Result:');
writeln('X+0.5=', x:5:3, ' and T+0.5=', t:5:3);
readkey;
exit;
end;

{ ШАГ 3 }
{Проверяем условия по порядку}
if (x>t) and (t>0) then
if ((x<0.5) or (x>2)) and ((t<0.5) or (t>2)) then
begin
x:=x*10;
t:=t*10;
clrscr;
writeln('Result:');
writeln('X*10=', x:5:3, ' and T*10=', t:5:3);
readkey;
exit;
end;

clrscr;
writeln('Result:');
writeln('X=', x:5:3, ' and T=', t:5:3);
writeln;
writeln('Without changes');
                                                                              
readkey;
end.
мну ушел. Вроде все так, все должно работать.

если Х < 0, то X и Т заменить модулем. Если так то заменить первое условие на if (x < 0). Но тогда второе не будет выполнятся никогда. Так что ты скорее всего ошибся, когда написал нам условие, а в коде сделал все верно.

Последний раз редактировалось Dosia; 12.09.2009 в 13:51..
 
Ответить с цитированием

  #1689  
Старый 12.09.2009, 14:08
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
Smile

Dosia, спасибо за помощь

Сделал так:

if (x<0) and (t<0) and ((x<0.5) or (x>2)) and ((t<0.5) or (t>2))
 
Ответить с цитированием

  #1690  
Старый 12.09.2009, 18:01
Аватар для deimos_xX
deimos_xX
Banned
Регистрация: 12.08.2009
Сообщений: 2
Провел на форуме:
43821

Репутация: 1
По умолчанию

Ребята, помогите пожалуйста решить задачу ..
Даны действительные x, e (x!=0, e>0) и целые k, n числа. Вычислить
с точностью е бесконечную сумму и указать количество учтенных слагаемых.
Считать, что требуемая точность достигнута, если вычеслена сумма нескольких
первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем е, -
это и все последующие слагаемые можно уже не учитывать. Проверить
правильность вычислений на тестовых примерах, используя возможности
отладчика, проследить изменение значений слагаемых суммы ряда, выполнив
отладку цикла. Определить диапазон возможных значений аргумента.*/
P.S. если можно, то комментарии в проге оставьте, чтоб я разбирался
сам пример - http://slil.ru/27976391
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ