zemlo Опубликовано 23 ноября, 2009 Жалоба Поделиться Опубликовано 23 ноября, 2009 Здравствуйте уважаемые специалисты. Помогите студенту пожайлуста. У меня две проблеммы: 1.Решить методом Крамера. Протестировать решение с помощью программы.(на языке Pascal): методом Крамера я решил, а программу написать немогу |3 2 4| |х1| |0| |2 1 1| |х2| = |0| |7 0 1| |х3| |0| Главный определитель системы получился= -15, а все дополнительные= 0 (нули) и значения всех неизвестных по формулам Крамера для решения системы n линейных уравнений с n неизвестными тоже (нули). 2. (тоже на языке Pascal) Составить и протестировать на компьютере программу, реализующую нахождение первой производной для таблично заданной функции по разностной формуле Лагранжа первого порядка точности. Видоизмените программу для вычисления второй производной (файл сохранит под другим именем!). Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 ноября, 2009 Жалоба Поделиться Опубликовано 23 ноября, 2009 zemlo: По первой задаче - метод Крамера самому писать не надо, это стандартный алгоритм, проще поискать в Интернете, например, тут есть. А приведенную систему и решать не надо - всякая однородная система (то есть с нулевыми свободными членами) имеет так называемое тривиальное решение - все иксы равны нулю. Вторая задача - например, так: var i,n:integer; s:real; y:array[1..100]of real;beginwrite('N ? '); readln(n); write('Step? '); readln(s);for i:=1 to n do begin write('Y[',i:2,'] ? '); read(y[i]) end; writeln; readln;for i:=2 to n do writeln((y[i]-y[i-1])/s); readlnend. и var i,n:integer; s:real; y:array[1..100]of real;beginwrite('N ? '); readln(n); write('Step? '); readln(s); s:=s*s;for i:=1 to n do begin write('Y[',i:2,'] ? '); read(y[i]) end; writeln; readln;for i:=3 to n do writeln((y[i]-2*y[i-1]+y[i-2])/s); readlnend. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 23 ноября, 2009 Жалоба Поделиться Опубликовано 23 ноября, 2009 Нексус: #include<stdio.h>main(){unsigned i,j,a[4],m[4],r[4]; unsigned long n=1;printf("IP ? "); scanf("%u.%u.%u.%u",&a[0],&a[1],&a[2],&a[3]); printf("Mask? "); scanf("%u.%u.%u.%u",&m[0],&m[1],&m[2],&m[3]); for(i=0;i<4;i++)r[i]=(~m[i]|a[i])&255; printf("%3u.%3u.%3u.%3u\n",r[0],r[1],r[2],r[3]-1); for(i=0;i<4;i++)r[i]=(m[i]&a[i])&255; printf("%3u.%3u.%3u.%3u\n",r[0],r[1],r[2],r[3]+1); for(i=0;i<4;i++)for(j=0;j<8;j++){if(!(m[i]%2))n*=2; m[i]/=2;}printf("%lu\n",n-2); getchar(); getchar();} Адреса задаются в обычном виде, с разделением октетов точками. Ссылка на комментарий Поделиться на другие сайты Поделиться
Нексус Опубликовано 23 ноября, 2009 Жалоба Поделиться Опубликовано 23 ноября, 2009 благодарю :bye1: Ссылка на комментарий Поделиться на другие сайты Поделиться
voin Опубликовано 24 ноября, 2009 Жалоба Поделиться Опубликовано 24 ноября, 2009 Спасибо за пояснения :bye1: Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 24 ноября, 2009 Жалоба Поделиться Опубликовано 24 ноября, 2009 Я все понял, ок! Ссылка на комментарий Поделиться на другие сайты Поделиться
KCEHbKA!!! Опубликовано 25 ноября, 2009 Жалоба Поделиться Опубликовано 25 ноября, 2009 Всем доброго дня! Помогите,пожалуйста, решить задачку на паскале : Сортировать по возрастанию элементы массива A(n) и B(n), а затем создать новый массив C(n+n). Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 ноября, 2009 Жалоба Поделиться Опубликовано 25 ноября, 2009 KCEHbKA!!!: Неясно, что должно быть в массиве C. Запишем в него подряд содержание отсортированных массивов A и B. var a,b:array[1..100]of integer; c:array[1..200]of integer; i,j,n,t:integer;begin write('Length of the source arrays? '); readln(n); write('Array A? '); for i:=1 to n do read(a[i]); readln; write('Array B? '); for i:=1 to n do read(b[i]); readln; for i:=1 to n-1 do for j:=1 to n-i do if a[j]>a[j+1] then begin t:=a[j];a[j]:=a[j+1];a[j+1]:=t end; for i:=1 to n-1 do for j:=1 to n-i do if b[j]>b[j+1] then begin t:=b[j];b[j]:=b[j+1];b[j+1]:=t end; for i:=1 to n do begin c[i]:=a[i]; c[i+n]:=b[i] end;for i:=1 to 2*n do write(c[i]:8);writeln; readlnend. Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 25 ноября, 2009 Жалоба Поделиться Опубликовано 25 ноября, 2009 Ошибок не выдает, но на экран почему-то не выводит. подскажите в чем причина. #include <iostream.h>#include <math.h>class compl{public:float a,b;compl(float ac,float bc){a=ac;b=bc;}compl(){}~compl(){}/* Оператор сложения двух комплексных чисел*/compl operator+(compl c2){compl c1=*this,c3;c3.a=c1.a+c2.a;c3.b=c1.b+c2.b;return c3;}/* Оператор умножения двух комплексных чисел*/compl operator*(compl c2){compl c1=*this,c3;c3.a=c1.a*c2.a-c1.b*c2.b;c3.b=c1.a*c2.b+c1.b*c2.a;return c3;}/* Вывод комплексного числа */void vivod (){cout <<a;if (b>0)cout <<"+"<<b<<"i";else cout <<b<<"i";}};void main(){compl k1(2,3),k2(1,1),k3;k3=k1+k2;cout<<"\nРезультат сложения:\t";k3.vivod();compl k4(2,-1),k5(3,2), k6;cout<<"\nРезультат умножения:\t";k6=k4*k5;k6.vivod();} И такая же причина здесь ( тут на Pascal) const n = 3; { razmernost matrizi }type matr = array[1..n, 1..n] of longint;procedure GetMatr(a:matr; var b:matr;m,i,j:integer);{ vicherkivanie iz matrizi stroki i stolbza }var ki,kj,di,dj:integer;begindi:=0;for ki:=1 to m-1 dobeginif (ki=i) then di:=1;dj:=0;for kj:=1 to m-1 dobeginif (kj=j) then dj:=1;b[ki,kj]:=a[ki+di,kj+dj];end;end;end;Function Determinant(a: matr; n: integer) : longint;{ vichislrnie opredelitelja matrizi }var i,j,d,k:longint;b:matr;begind:=0; k:=1;if (n<1) thenbeginwriteln('Determinant: Cann''t run. N=',n); halt;end;if (n=1)then d:=a[1,1]else if (n=2)then d:=a[1,1]*a[2,2]-a[2,1]*a[1,2]else { n>2 }for i:=1 to n dobeginGetMatr(a,b,n,i,1);{writeln('i=',i,' a[',i,',1]=',a[i,1]);PrintMatr(b,n-1);}d:=d+k*a[i,1]*Determinant(b,n-1);k:=-k;end;Determinant:=d;end;vara: matr;b: array [1..n] of integer;i, j, dt: longint;temp: integer;begin{ zapolnenie matriz }a[1, 1]:=2; a[2, 1]:= 5; a[3, 1]:=4; b[1]:=30;a[1, 2]:=1; a[2, 2]:= 3; a[3, 2]:=2; b[2]:=150;a[1, 3]:=2; a[2, 3]:= 10; a[3, 3]:=9; b[3]:=110;{ vichislenie opredelitelja }dt := Determinant(a, n);for i:=1 to n do begin{menjaem mestami b s tekyshim stolbzom matrizi a}for j:=1 to n do begintemp := b[j];b[j] := a[i, j];a[i, j] := temp;end;writeln('x(', i, ') = ', Determinant(a, n) / dt);{nazad: {menjaem mestami b s tekyshim stolbzom matrizi a}for j:=1 to n do begintemp := b[j];b[j] := a[i, j];a[i, j] := temp;end;end;end. Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 25 ноября, 2009 Жалоба Поделиться Опубликовано 25 ноября, 2009 zemlo: Выводит, только сразу закрывает окно вывода. В первую программу добавь в конце (перед последней } ) getchar(); Во вторую программу добавь в конце (перед end.) readln Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 26 ноября, 2009 Жалоба Поделиться Опубликовано 26 ноября, 2009 Досада! Такую ошибку не заметил! Спасибо за поправку! Ссылка на комментарий Поделиться на другие сайты Поделиться
core_st Опубликовано 26 ноября, 2009 Жалоба Поделиться Опубликовано 26 ноября, 2009 задача. Есть две строки. Используя указатели найти и вьівести на екран общие последовательности из 5 и больше символов Ссылка на комментарий Поделиться на другие сайты Поделиться
volchok91 Опубликовано 26 ноября, 2009 Жалоба Поделиться Опубликовано 26 ноября, 2009 здравствуйте. помогите пожалуйста с прогой (лаб.раб) Разработать программу, которая вводит целочисленную матрицу из n строк и m столбцов (1 <n<= 100, 1<m<=50) и упорядочивает элементы матрицы Упорядочить каждую строку по возрастанию элементов Ссылка на комментарий Поделиться на другие сайты Поделиться
zemlo Опубликовано 26 ноября, 2009 Жалоба Поделиться Опубликовано 26 ноября, 2009 Просто зашиваюсь, всвязи с командировками появилось много хвостов. Незнаешь за что хвататься. Помогите пожайлуста. Есть код. #include<iostream.h>#include<math.h>int main(){int x1,x2;int b;int a;int c;cout<<"\n Vvedite a";cin>>a;cout<<"\n Vvedite b";cin>>b;cout<<"\n Vvedite c";cin>>c;if(b<a,b<c){cout<<"\nB dolghno byt bolshe A i C";return 1;}x1=((-b+sqrt(b*b))-(4*a*c))/(2*a);x2=((-b-sqrt(b*b))-(4*a*c))/(2*a);cout<<"\n x1="<<x1;cout<<"\n x2="<<x2;return 0;} Нужно добавить сложение двух матриц по формулам: S1 - первая матрица с элементами (s1.a11 s1.a12) (s1.a21 s1.a22) S2 - вторая матрица с элементами (s2.a11 s2.a12) (s2.a21 s2.a22) S3 = S1 + S2 s3.a11 = s1.a11 + s2.a11 s3.a12 = s1.a12 + s2.a12 s3.a21 = s1.a21 + s2.a21 s3.a22 = s1.a22 + s2.a22 Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 ноября, 2009 Жалоба Поделиться Опубликовано 26 ноября, 2009 core_st: задача. Есть две строки. Используя указатели найти и вьівести на екран общие последовательности из 5 и больше символовНе совсем ясно, как поступать с вложенными общими последовательностями. Например, 12345678 и 234567 имеют общие последовательности из 5 и больше символов 23456, 234567, 34567. В таких случаях будем выводить все варианты, и длинные, и короткие. #include<stdio.h>#include<string.h>main(){char s1[100],s2[100],s3[100]; int i,j,k,l1,l2,m=5; gets(s1); gets(s2); l1=strlen(s1); l2=strlen(s2); for(i=0;i<=l1-m;i++) for(j=0;j<=l2-m;j++) {k=0; *s3='\0'; while(*(s1+i+k)==*(s2+j+k)&&i+k<l1&&j+k<l2) {*(s3+k)=*(s1+i+k); *(s3+ ++k)='\0'; if(k>=m)puts(s3);}}getchar();} Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 26 ноября, 2009 Жалоба Поделиться Опубликовано 26 ноября, 2009 volchok91: вводит целочисленную матрицу из n строк и m столбцов (1 <n<= 100, 1<m<=50) и упорядочивает элементы матрицы. Упорядочить каждую строку по возрастанию элементов var i,j,k,m,n,t:integer; a:array[1..100,1..50]of integer;beginwrite('Dimensions ? '); read(n,m); readln;for i:=1 to n do begin write('Line',i:3,' : '); for j:=1 to m do read(a[i,j]); readln end;for i:=1 to n do for k:=1 to m-1 do for j:=1 to m-i do if a[i,j]>a[i,j+1] then begin t:=a[i,j];a[i,j]:=a[i,j+1];a[i,j+1]:=t end; for i:=1 to n do begin writeln; for j:=1 to m do write(a[i,j]:8) end;writeln; readlnend. zemlo: Ничего не понятно. Есть код решения квадратного уравнения (с точки зрения вычислительной математики плохой), добавить сложение матриц... ;) Ссылка на комментарий Поделиться на другие сайты Поделиться
Radu Опубликовано 27 ноября, 2009 Жалоба Поделиться Опубликовано 27 ноября, 2009 :) Помогите пож. решить пару задачи по С++ ;) C++ Strings Вводим текст в Strings. В данном тексте, найти и показать слова, содержащие как минимум 2 указаные буквы. Struct Вводим данные про 10 учеников ( ФИО,група ) в типе Struct. Отобразить список учеников в порядке возрастания их фамилии. Routines Rom-Bios Вкл. и выкл. по очереди индикаторы клавиатуры (Num Lock,Cups Lock,Scroll Lock). int16h Ссылка на комментарий Поделиться на другие сайты Поделиться
volchok91 Опубликовано 27 ноября, 2009 Жалоба Поделиться Опубликовано 27 ноября, 2009 огромное спасибо)) забыл сказать это надо было на С++ сделать... Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 ноября, 2009 Жалоба Поделиться Опубликовано 27 ноября, 2009 (изменено) volchok91: забыл сказать это надо было на С++ сделать...А надо было... Ну, переписать несложно: #include<iostream.h>#include<iomanip.h>main(){int i,j,k,m,n,t,a[100][50];cout<<"Dimensions ? "; cin>>n; cin>>m; for(i=0;i<n;i++){cout<<"Line "<<i+1<<" : "; for(j=0;j<m;j++)cin>>a[i][j];}for(i=0;i<n;i++)for(k=0;k<m-1;k++)for(j=0;j<m-k-1;j++)if(a[i][j]>a[i][j+1]) {t=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=t;}for(i=0;i<n;i++){cout<<endl; for(j=0;j<m;j++)cout<<setw(8)<<a[i][j];}cout<<endl; getchar(); getchar();} Изменено 27 ноября, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 ноября, 2009 Жалоба Поделиться Опубликовано 27 ноября, 2009 (изменено) Radu: Помогите пож. решить пару задачи по С++ Можно и пару... В данном тексте, найти и показать слова, содержащие как минимум 2 указаные буквы.Не слишком ясно... Будем считать, что вводятся две буквы, которые должны присутствовать в каждом выведенном слове. #include<iostream.h>main(){char c,d,t[1000]; int i=0,j,k=0,l=0,m=0;cout<<"text ? "; cin.getline(t,200); fflush(stdin);cout<<"two letters ? "; cin>>c; cin>>d; do{if(t[i]>'@'){k++; if(t[i]==c)l=1; if(t[i]==d)m=1;} else{if(l+m==2){for(j=i-k;j<i;j++)cout<<t[j];cout<<endl;}k=0;l=0;m=0;}}while(t[i++]); getchar();getchar();} Вводим данные про 10 учеников ( ФИО,група ) в типе Struct.Отобразить список учеников в порядке возрастания их фамилии. #include<iostream>#include<string>using namespace std;main(){int m=10,j,k; struct{string f,i,o;int g;}a[10],t;for(j=0;j<m;j++){cout<<"F I O G ? ";cin>>a[j].f;cin>>a[j].i;cin>>a[j].o;cin>>a[j].g;}for(k=0;k<m-1;k++)for(j=0;j<m-k-1;j++)if(a[j].f>a[j+1].f){t=a[j];a[j]=a[j+1];a[j+1]=t;}for(j=0;j<m;j++){cout<<a[j].f<<" "<<a[j].i<<" "<<a[j].o<<" "<<a[j].g<<endl;}getchar(); getchar();} Чтобы не мучиться с тестовым вводом, можно временно заменить значение m на 2 или 3 - это число вводимых записей. Изменено 27 ноября, 2009 пользователем Тролль Ссылка на комментарий Поделиться на другие сайты Поделиться
volchok91 Опубликовано 27 ноября, 2009 Жалоба Поделиться Опубликовано 27 ноября, 2009 volchok91: А надо было... Ну, переписать несложно: #include<iostream.h>#include<iomanip.h>main(){int i,j,k,m,n,t,a[100][50];cout<<"Dimensions ? "; cin>>n; cin>>m; for(i=0;i<n;i++){cout<<"Line "<<i+1<<" : "; for(j=0;j<m;j++)cin>>a[i][j];}for(i=0;i<n;i++)for(k=0;k<m-1;k++)for(j=0;j<m-k-1;j++)if(a[i][j]>a[i][j+1]) {t=a[i][j];a[i][j]=a[i][j+1];a[i][j+1]=t;}for(i=0;i<n;i++){cout<<endl; for(j=0;j<m;j++)cout<<setw(8)<<a[i][j];}cout<<endl; getchar(); getchar();} СПАСИБО)) а как откомпелировать в devc++? Ссылка на комментарий Поделиться на другие сайты Поделиться
Тролль Опубликовано 27 ноября, 2009 Жалоба Поделиться Опубликовано 27 ноября, 2009 volchok91: Вставляешь текст в окно ввода, выбираешь в меню наверху Execute -> Compile & Run. При вводе данных в процессе выполнения программы размерности матрицы, а также числа каждой ее строки удобно вводить друг за другом, разделяя их пробелами. Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 28 ноября, 2009 Жалоба Поделиться Опубликовано 28 ноября, 2009 Доброго времени суток) Помогите плиз набросать классы для задачи, начали недавно c# изучать ну вообщем после делфей немного сложно( Суть задачи нужна схема работы маршрутного такси с возможностью добавления удаления остановок и пассажиров и схематической симуляцией....т.е. показать на какой остановке такси, сколько в нем пассажиров на остановке и т.д. Заранее спасибо за любую помощь Ссылка на комментарий Поделиться на другие сайты Поделиться
Ф@РТОВЫЙ Опубликовано 28 ноября, 2009 Жалоба Поделиться Опубликовано 28 ноября, 2009 (изменено) AutoGen: вот набросал примерчик: class mTaxi{private string[] stopsets; //остановкиprivate int curstopset; //текущая остановкаprivate int napravlenie; //направление движения (1 или -1)public int marshrut; //номер маршрутаpublic int passagirs; //сколько пассажиров в таксиpublic string stopset //текущая остановка{ get { return stopsets[curstopset]; } set { }}public mTaxi(int Marshrut, string[] Stopsets){ //конструктор класса, в параметре передается номер маршрута и массив с остановками stopsets = Stopsets; marshrut = Marshrut; curstopset = 0; passagirs = 0; napravlenie = 1;}public void add_passagir(){ //добавляет 1 пассажира passagirs++;}public void add_passagir(int n){ //добавляет n пассажиров passagirs += n;}public bool del_passagir(){ //высаживает 1 пассажира if (passagirs == 0) return false; passagirs--; return true;}public bool del_passagir(int n){ //высаживает n пассажиров if (passagirs < n) return false; passagirs -= n; return true;}public string go_to_next_stopset(){ //едет на следующую остановку curstopset += napravlenie; if (curstopset == 0) napravlenie = 1; //меняем направление if (curstopset == stopsets.Length - 1) napravlenie = -1; //на конечных остановках return stopsets[curstopset];}} Изменено 28 ноября, 2009 пользователем Ф@РТОВЫЙ Ссылка на комментарий Поделиться на другие сайты Поделиться
AutoGen Опубликовано 28 ноября, 2009 Жалоба Поделиться Опубликовано 28 ноября, 2009 Ф@РТОВЫЙ: спасибо большое) уже понятней. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти