Алгоритм программы я построил в принципе. По идее необходимо ввести с клавиатуры 1 строчку с вещественными числами. Затем вторую. Потом отсортировать первую строчку по убыванию. Затем вторую. Потом объединить их в одну и упорядочить по убыванию. Как объединять их в одну? Мне код на C++ нужен. А лучше пример программы, чтобы хоть как-то разобраться. Code: #include "SPIS.CPP" // Где начало программы? void main() {Zveno *S1, *S2, *S3, *V1, *V2, *V3; // Что это такое? BT a; int i, n; // Что такое ВТ? clrscr(); // Я так понимаю, это очистка экрана. Зачем? randomize(); // Рандомайз чего? S1=NULL; // создаём первый элемент a=-100+random(201); S1=V_Nachalo(S1, a); n=1+random(20); // формируем список произвольной длины и выводим на печать V1=S1; for (i=2; i<=n; i++) { a=-100+random(201); V1=V_Spisok(V1, a); } Print(S1); V1 = S1; S2 = NULL; S3 = NULL; while (V1) {if (V1->Inf > 0) if (!S2) {S2=V_Nachalo(S2, V1->Inf); V2 = S2;} else {V_Spisok(V2, V1->Inf); V2 = V2->Next;}; if (V1->Inf < 0) if (!S3) {S3=V_Nachalo(S3, V1->Inf); V3 = S3;} else {V_Spisok(V3, V1->Inf); V3 = V3->Next;}; V1= V1->Next;} cout << "Результирующий список из положительных элементов: \n"; Print(S2); cout << "Результирующий список из отрицательных элементов: \n"; Print(S3); S1=Ochistka(S1); S2=Ochistka(S2); S3=Ochistka(S3); } Если я правильно понял - взят тупо кусок программы и выкинут на обозрение. Есть проггеры, которые более менее могут написать программу, которая указана на предыдущей странице и объяснить комментариями?
Мог бы и потрудится перевести, форум-то русский! А вовторых ты что, думаешь тебе уже готовое кто-то напишет? Покажи, что ты пробовал и что не получается.
Есть ли в Pascal'e функция для определения отрезка ? Мне нужно проверить число, чтобы оно не входило в отрезок [0.5-2]
Помогите пожалуйста! мне нужно выполнить лабораторку, она маленькая. и сдать через 2 часа. помогите пожалуйста!!!!! на с++ Задание: Решением дифференциального уравнения является неизвестная функция x(t). Необходимо, используя численные методы решения ДУ, найти эту функцию. Полученное численное решение необходимо сопоставить с точным, чтобы исследовать зависимость величины локальной ошибки от величины шага интегрирования. 1.Написать программу решения ДУ с помощью прямой (явной) формулы Эйлера. 2.Написать программу решения ДУ с помощью обратной (неявной) формулы Эйлера. 3.Написать программу решения ДУ с помощью формулы трапеций. 4.Сопоставить результаты численного и точного решений ДУ на экране монитора. Дифференциальное уравнение (ДУ) - x'(t)=x(t)+t2 Решение ДУ - x(t) =6exp(t-1)- t2-2t-2
Все очень просто If (твое число < 0.5) or (твое число > 2) then Пишеш тут что будет выполнятся если число не входит в данный отрезок. По поводу ДУ, могу лишь предоставить код своей проги которая считала их методом: 1) Модифицированный метод Эйлера 2) Метод Рунге-Кутта Описанные выше методы мне не знакомы, возможно это одно и тоже просто разными словами? Code: 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.
Составить структурированнуб программу преобразования заданных вещественных хначений Х и Т по правилу: если Х < 0, то X и Т заменить модулем если X < 0 или T < 0, то Х и Т увеличить на 0.5 если Х > T и Т > 0 и ни одно из них не принадлежит отрезку [0.5-2], то Х и Т * 10 в противном случае Х и Т оставить без изменеий Code: 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. первая прога на паскале)
Code: 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, спасибо за помощь Сделал так: if (x<0) and (t<0) and ((x<0.5) or (x>2)) and ((t<0.5) or (t>2))
Ребята, помогите пожалуйста решить задачу .. Даны действительные x, e (x!=0, e>0) и целые k, n числа. Вычислить с точностью е бесконечную сумму и указать количество учтенных слагаемых. Считать, что требуемая точность достигнута, если вычеслена сумма нескольких первых слагаемых и очередное слагаемое оказалось по модулю меньше, чем е, - это и все последующие слагаемые можно уже не учитывать. Проверить правильность вычислений на тестовых примерах, используя возможности отладчика, проследить изменение значений слагаемых суммы ряда, выполнив отладку цикла. Определить диапазон возможных значений аргумента.*/ P.S. если можно, то комментарии в проге оставьте, чтоб я разбирался сам пример - http://slil.ru/27976391
Объясни мне сам метод, я тебе программу напишу. http://ru.wikipedia.org/wiki/Метод_Ньютона Можешь постучать в аську. Помогу. 9один46девять3 Господа, нужна помощь... C++ Вообще не понимаю тему "Динамические структуры данных" Проблема актуальна. Надеюсь на помощь
_http://www.machinelearning.ru/wiki/images/c/ca/Kasat.zip (c) _http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B5%D1%82%D0%BE%D0%B4_%D0%BA%D0%B0%D1%81%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D1%85_(%D0%9D%D1%8C%D1%8E%D1%82%D0%BE%D0%BD%D0%B0-%D0%A0%D0%B0%D1%84%D1%81%D0%BE%D0%BD%D0%B0) в гугол полез смотреть что за метод, нашел исходники.
STL и C массивы День добрый! Столкнулся с одной проблемкой, никак не могу ее решить. Нужно одной строкой кода скопировать данные из встроенного С массива в vector. (без циклов и алгоритмов STL) Буду признателен за любую помощь.
std::vector<int> vec; int blabla [] = {1, 2, 3}; vec.resize(3); memcpy(&vec[0], blabla, sizeof(blabla));