BednuuStudent
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Код: #include <iostream.h> #include <stdio.h> #include <math.h> #include <stdlib.h> #include <conio.h> const int SIZE_J=5; const int SIZE_I=4; void gauss(float[][SIZE_J], int, int, int); void gauss_tmp(float[][SIZE_J]); void main()//Создаем пустую функцию для ввода параметров. { clrscr()//отчищаем дисплей; Float mas[SIZE_I][SIZE_J]={{4,5,6,7,1},{8,9,10,11,2},{12,3,3,5,3},{16,-1,-2,3,4}};//создаем матрицу размером IxJ float sum=0; // инициализируем переменную sum,задавая ей начальное значени 0 int kod;//объявляем переменную kod как int(целочисленную) в диапазоне -32767 - 32767 printf("Danaya programa vu4iclyaet CLAY metodom Dgordano-Gaysa\n\n"); //используемых для форматного вывода — вывода в различные потоки значений разных типов, //отформатированных согласно заданному шаблону. Этот шаблон определяется составленной по //специальным правилам строкой (форматной строкой). printf("1 na4at\n0 vuxod\n\n\n"); { kod=getch();// в переменную kod заносим значение введенное с // клавиатуры(getch()-читает без эхо-отображения отдельный символ // прямо с консоли. Напечатанные (введенные) символы не имеют // эхо-отображения. Если введен CONTROLL-C, система выполняет INT // 23H.) switch(kod); //вычисляется выражение в круглых скобках после оператора switch //(предварительная стадия); //это значение последовательно сравнивается со значениями константных выражений за метками case //(стадия определения начальной точки выполнения оператора); // если значения совпадают, управление передаётся соответствующему помеченному оператору (стадия //выполнения); // если ни одно значение не совпадает и в теле оператора case есть оператор, помеченный меткой //default, управление передаётся этому оператору (но даже в этом случае сочетание объявления с //инициализацией недопустимо!) (стадия выполнения); // если ни одно значение не совпадает, и в теле оператора case нет оператора, помеченного меткой //default, управление передаётся оператору, следующему за оператором switch (стадия выполнения). { case 49: { gauss_tmp(mas); printf("\n\n\nnajmite liubuiu klavishu dla vuxoda"); getch(); }break; case 48: { exit(0); }break; } } } void gauss_tmp(float mas[][SIZE_J]) //возвращаемая функция //тип_возврата имя_функции(список_параметров) //{ // Тело_функции //} { float mas_tmp[SIZE_I][SIZE_J]; for(int i=0;i<SIZE_I;i++) //цикл for позволяет выполнить автоматическую //инициализацию и инкременирование переменной счетчика // for(инициализация; условие; инкримент) // { // блок_операторов // } { for(int j=0;j<SIZE_J;j++)mas_tmp[i][j]=mas[i][j]; } gauss(mas_tmp,SIZE_I,SIZE_J,0); } void gauss(float mas[][SIZE_J], int size_i, int size_j, int start) //возвращаемая //функция { float x, y, z, t; if(start==size_j-2) { int i=0; t=mas[i][size_j-1]/mas[i][start]; i++; start--; z=(mas[i][size_j-1]+t)/mas[i][start]; i++; start--; y=(mas[i][size_j-1]+t+z)/mas[i][start]; i++; start--; x=(mas[i][size_j-1]+t+z+y)/mas[i][start]; i++; start--; printf("x=%f\nx=%f\nx=%f\nx=%f\n",x,y,z,t); return; } float del; float tmp; for(int i=0;i<=size_i-(start+1);i++) { del=mas[i][start]; for(int j=0;j<size_j;j++) { mas[i][j]=mas[i][j]/del; } } for(int j=0;j<size_j;j++) { tmp=mas[0][j]; mas[0][j]=mas[size_i-(start+1)][j]; mas[size_i-(start+1)][j]=tmp; } for(i=0;i<size_i-(start+1);i++) { for(int j=0;j<size_j;j++) { mas[i][j]=mas[size_i-(start+1)][j]-mas[i][j]; } } gauss(mas,size_i,size_j,start+1); } |
Ээээ а Хелп запретили использовать или ты хочешь, чтобы тебе тут весь хелп повторили? | Всего записей: 4 | Зарегистр. 20-01-2010 | Отправлено: 22:23 21-01-2010 | Исправлено: ShIvADeSt, 07:29 22-01-2010 |
|