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

Вычислить матрицу по двум другим - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ МНК, повреждение кучи http://www.cyberforum.ru/cpp-beginners/thread96619.html
Аппроксимация методом наименьших квадратов.. Если не использовать динамическую память, все работает замечательно.. Если описывать массивы как динамические - программа работает через раз.. Если количество исходных точек невелико - скажем, 5, то все хорошо.. Если например 20 - выкидывает - программа пытается записать данные за пределами кучи.. Что не так здесь в работе с динамической...
C++ Электронные часы Приветствую всех специалистов по программированию!!! Мне срочно нужна ваша помощь! помогите пожалуйста разработать программу на С++ в графическом режиме, которая будет показывать в середине экрана время, которое стоит на компе, и оно должно менятся, пока не нажата клавиша, ну короче (какое время на рабочем столе установлено, такое и надо отображать, если на рабочем столе меняется, то и прога... http://www.cyberforum.ru/cpp-beginners/thread96616.html
Рекурсивное вычисление C++
Доброе время суток!!! Помогите пожалуйста решить две задачи с помощью рекурсии. За ранее огромное спасибо!!! Задача №1. Написать функцию, которая рекурсивно вычисляет сумму чисел в заданном диапазоне. Задача №2. Легенда гласит, что где-то в Ханое находится храм, в котором размещена следующая конструкция: на основании укреплены 3 алмазных стержня, на один из которых при сотворении мира...
C++ Используя оператор For и else
Составить программу каторые выводить четные цифры Используя оператор For спс заранее)))))
C++ Функция без условия http://www.cyberforum.ru/cpp-beginners/thread96568.html
Нужно написать программу к этой функции( толкового словесного условия к ней не давали ) Вот f(2)=3x(в кубе, тоесть в 3-й степени)-2x(в квадрате, тоесть во 2-й степени)+4x-1 Тоесть программа и есть сама эта формула(функция)! Помогите пож-ста! Добавлено через 4 минуты Нам вообще ничего не говорили насчет этих заданий без письменного условия и не приводили примеры!
C++ Определить максимальное значение напряжения в сети Народ, плз, помогите :help: В течение суток через каждый час проведены 24 замера напряжения в сети. Определить максимальное значение напряжения в сети в интервале (20,6) час и время, когда оно было зафиксировано. на языке С подробнее

Показать сообщение отдельно
Slav1991
0 / 0 / 1
Регистрация: 07.01.2010
Сообщений: 44
11.03.2010, 20:59  [ТС]     Вычислить матрицу по двум другим
где тут ошибка?С файла не читает и проверка N>8 не выполняется
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#include<stdio.h>
#include <conio.h>
 
void VVOD(float Matrix[8][8],int M);
void VYVOD(float Matrix[8][8],int M);
void MINUS(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M);
void PLUS(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M);
void UMNOGENIE(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M);
void DEISTVIE(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M);
 
 
int main()
{
int N,Pr,i,j;FILE *f;
float A[8][8],B[8][8],C[8][8];
 
     printf("Vvedite Priznak=1-dannye iz faila!; Priznak=2-dannye s klaviatury! \n");
      printf("Priznak="); scanf("%d",&Pr);
      if(Pr==2)
     {
         printf("Vvedite Razmernost Matric N*N \n");
         printf("N=");scanf("%d",&N);
         printf("Vvedite Matritsu A \n");
         VVOD(A,N);
        printf("Vvedite Matritsu B \n");
         VVOD(B,N);
     }
 
     if(Pr==1)
     { f=fopen("D:\\abc.txt","r");
         while(!feof(f))
        {
            fscanf(f,"%d\n",&N); printf("N=%d\n",N);
                 for(i=0;i<N;i++)
                        for(j=0;j<N;j++)
                          fscanf(f,"%f\t",&A[i][j]);
                        for(i=0;i<N;i++)
                        for(j=0;j<N;j++)
                            fscanf(f,"%f\t",&B[i][j]);
     }
        fclose(f);
     }
 
if(N>8)
{ printf("Nedopustimo Bolshaya Razmernost! Vvedite razmernost <=8*8 \n"); return 0;}
 
 
getch();
 
printf("Matritsa A \n");
VYVOD(A,N);
printf("Matritsa B \n");
VYVOD(B,N);
DEISTVIE(A,B,C,N);
 
return 0;
}
 
 
 void VVOD(float Matrix[8][8],int M)
 {
     int i,j;
     for(i=0;i<M;i++)
         for(j=0;j<M;j++)
             scanf("%f",&Matrix[i][j]);
 
 }
 
 void VYVOD(float Matrix[8][8],int M)
 {
      int i,j;
     printf("Vyvod Matritsu \n");
      for(i=0;i<M;printf("\n"),i++)
         for(j=0;j<M;j++)
             printf("%5.2f   \t" ,Matrix[i][j]);
 }
 
 
void MINUS(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M)
{
    int i,j;
     for(i=0;i<M;i++)
         for(j=0;j<M;j++)
             RES[i][j]=Matrix1[i][j]-Matrix2[i][j];
 
 
}
void PLUS(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M)
{
    int i,j;
     for(i=0;i<M;i++)
         for(j=0;j<M;j++)
             RES[i][j]=Matrix1[i][j]+Matrix2[i][j];
 
 
}
void UMNOGENIE(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M)
{
    int i,j,k;
     for(i=0;i<M;i++)
         for(j=0;j<M;j++)
             for(RES[i][j]=0,k=0;k<M;k++)
                 RES[i][j]+=Matrix1[i][k]*Matrix2[k][j];
}
void UMNOGENIE_Na_Chislo(float Matrix[8][8],int Chislo,float RES[8][8],int M)
{
    int i,j;
     for(i=0;i<M;i++)
         for(j=0;j<M;j++)
             RES[i][j]=Matrix[i][j]*Chislo;
}
 
void DEISTVIE(float Matrix1[8][8],float Matrix2[8][8],float RES[8][8],int M)
{
 
float B2[8][8],A2[8][8],T[8][8],U[8][8];
FILE *g;
int i,j;
UMNOGENIE(Matrix2,Matrix2,B2,M);
 
MINUS(Matrix1,B2,T,M);
 
UMNOGENIE_Na_Chislo(Matrix1,2,A2,M);
 
PLUS(A2,Matrix2,U,M);
PLUS(T,U,RES,M);
printf("Vyvod Matrici C: C=(A-B*B)+(2*A+B) \n");
VYVOD(RES,M);
g=fopen("D:\\abc.txt","a");
         if(g!=0)
        {   fprintf(g,"\n");
            for(i=0;i<M;fprintf(g,"\n"),i++)
 
                for(j=0;j<M;j++)
                    fprintf(g,"%5.2f   \t" ,RES[i][j]);
        }
fclose(g);
 
}
 
Текущее время: 13:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru