Форум программистов, компьютерный форум CyberForum.ru

Создать функцию с параметром - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ У меня жосткий тупняк.. http://www.cyberforum.ru/cpp-beginners/thread221748.html
Описать класс «комната», содержащий сведения о метраже, высоте потолков и количестве окон. Предусмотреть инициализацию с проверкой допустимости значений полей. В случае недопустимых значений полей выбрасываются исключения. Описать методы вычисления площади и объема комнаты и свойства для получения состояния объекта. Написать программу, демонстрирующую все разработанные элементы класса....
C++ проверьте решение прошу помощи: на зачет бежать скоро, написал в блокноте код (за неимением компилятора). проверьте пожалуйста, кому не сложно. условие в файле. #include <iostream.h> #include <conio.h> #include <stdio.h> #include <math.h> void main() { http://www.cyberforum.ru/cpp-beginners/thread221747.html
Составить блок-схему по готовому коду C++
Помогите, пожалуйста, составить блок-схему. Дана целочисленная квадратная матрица порядка 8. Найти наименьшее из значений элементов столбца, который обладает наибольшей суммой модулей элементов. Если таких столбцов несколько, то взять первый из них. #include <iostream> #include <time.h> #include <limits> #include <iomanip> using namespace std;
Вывести количество идеальных вариантов C++
есть три множества одинаковой мощности-мужчины женщины и дома. (все по n) между мужчинами:senor: и женщинами:flirt: есть симпатии. и мужчинам:cofee2: и женщинам:O_O: нравятся некоторые дома. сколько обоюдносимпатизирующих пар:kiss: можно заселить в нравящийся им дом? т.е. надо вывести кол-во идеальных вариантов.. социально важная задача, кстати!:)
C++ fscanf(stream,"%s",s) читает до первого пробела? http://www.cyberforum.ru/cpp-beginners/thread221726.html
как прочитать строку из текстового файла целиком? (до \n)
C++ Односвязный кольцевой список. Ребят, подскажите как реализовать односвязный кольцевой список с ключами. Без ключей я знаю как, а что делают эти самые ключи? подробнее

Показать сообщение отдельно
Anarchy
0 / 0 / 0
Регистрация: 25.12.2010
Сообщений: 23
28.12.2010, 13:23  [ТС]     Создать функцию с параметром
#include <stdio.h>
#include <process.h>


void cls(){
for(int i=0; i<25; i++) printf("\n");
}
void allocmatrix(){
//allocate memory for matrixes
float **a, *b, *x;
int N;
int i,j;
x = new float[N];
b = new float[N];
a = new float*[N];
if(x==NULL || b==NULL || a==NULL){
printf("\nNot enough memory to allocate for %d equations.\n", N);
exit(-1);
}
for(i=0; i<N; i++){
a[i] = new float[N];
if(a[i]==NULL){
printf("\nNot enough memory to allocate for %d equations.\n", N);
}
}
for(i=0; i<N; i++){
for(j=0; j<N; j++){
a[i][j]=0;
}
b[i]=0;
x[i]=0;
}
}
void count_num_lines(){
//count number of lines in input file - number of equations

int N;


FILE* InFile=NULL;
int nelf=0; //non empty line flag
do{
nelf = 0;
while(fgetc(InFile)!='\n' && !feof(InFile)) nelf=1;
if(nelf) N++;
}while(!feof(InFile));
}
void diagonal(){
float **a, *b;
int N;


int i, j, k;
float temp=0;
for(i=0; i<N; i++){
if(a[i][i]==0){
for(j=0; j<N; j++){
if(j==i) continue;
if(a[j][i] !=0 && a[i][j]!=0){
for(k=0; k<N; k++){
temp = a[j][k];
a[j][k] = a[i][k];
a[i][k] = temp;
}
temp = b[j];
b[j] = b[i];
b[i] = temp;
break;
}
}
}
}
}
void freematrix(){
//free memory for matrixes
float **a, *b, *x;
int N;

int i;
for(i=0; i<N; i++){
delete [] a[i];
}
delete [] a;
delete [] b;
delete [] x;
}
void printmatrix(){
//print matrix "a"
float **a, *b;
int N;
int i=0,j=0;
printf("\n");
for(i=0; i<N; i++){
for(j=0; j<N; j++){
printf(" %+.2f*X%d", a[i][j], j);
}
printf(" =%.2f\n", b[i]);
}
}
void printresult(){
int N;
float *x;
int i=0;
printf("\n");
printf("Result\n");
for(i=0; i<N; i++){
printf("X%d = %.2f\n", i, x[i]);
}
}
void readmatrix(){
float **a, *b;
int N;
FILE* InFile=NULL;
int i=0,j=0;
//read matrixes a and b from input file
for(i=0; i<N; i++){
for(j=0; j<N; j++){
fscanf(InFile, "%f", &a[i][j]);
}
fscanf(InFile, "%f", &b[i]);
}
}
void testsolve(){
float **a, *b, *x;
int N;
//test that ax=b
int i=0,j=0;
printf("\n");
for(i=0; i<N; i++){
float s = 0;
for(j=0; j<N; j++){
s += a[i][j]*x[j];
}
printf("%.2f\t%.2f\n", s, b[i]);
}
}
void main(){
float **a, *b, *x;
int N;
FILE* InFile=NULL;

int i=0,j=0, k=0;
cls();
do{

InFile = fopen("test.txt", "rt");
}while(InFile==NULL);
count_num_lines();
allocmatrix();
rewind(InFile);
//read data from file
readmatrix();
//check if there are 0 on main diagonal and exchange rows in that case
diagonal();
fclose(InFile);
printmatrix();
//process rows
for(k=0; k<N; k++){
for(i=k+1; i<N; i++){
if(a[k][k]==0){
printf("\nSolution is not exist.\n");
return;
}
float M = a[i][k] / a[k][k];
for(j=k; j<N; j++){
a[i][j] -= M * a[k][j];
}
b[i] -= M*b[k];
}
}
printmatrix();
for(i=N-1; i>=0; i--){
float s = 0;
for(j = i; j<N; j++){
s = s+a[i][j]*x[j];
}
x[i] = (b[i] - s) / a[i][i];
}

InFile = fopen("test.txt", "rt");
readmatrix();
fclose(InFile);
printmatrix();
testsolve();
printresult();
freematrix();
}

Добавлено через 30 секунд
RUSya82 комп тупит, не привязался файл
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru