, ( ). , , . . , , () .
ü ! , .
(a, b) (ssa, ssb) . , . , (a, b, ssa, ssb). () , .
.
(. 9.1.1.2) , .
! . , ( ).
, A(mxn) 10x15,
float a[10][15];
...
func(a[0], m, n, 15);
...
, ,
void func(float *z, int k, int p, int t)
zij
*(z + i * t + j)
, 10.4. . 10.4.
10.4
m | n | t | s | i | j | aij | bij | ||
m | n | t | s | i | j | a[i][j] | b[i][j] |
. 10.4
ssai | ssbi | mp | tp | k | p | ss | d | sszd | zij | |
ssa[i] | ssb[i] | mp | tp | k | p | ss | d | ssz[d] | z[i][j] |
, . , , :
sum_str(a, m, n, 15, ssa, &mp); sum_str(b, t, s, 7, ssb, &tp);
|
|
m, n, t, s , 15 7 A B, &mp &tp .
:
void sum_str(float *z, int k, int p, int pmax, float *ssz, int *d)
k p , pmax Z, *d .
define, .
#include<stdio.h>/* -*/
#include<conio.h>/* getch(), clrscr()*/
#include <windows.h> /* CharToOem*/
#define M 10 /* */
#define N 15 /**/
#define T 9 /**/
#define S 7 /* */
void sum_str(float* z, int k, int p, int pmax, float *ssz, int *d);
main() /* */
{
float ap, bp, a[M][N], b[T][S], ssa[M], ssb[T]; /* */
int i, j, n, m, t, s, mp, tp; /* */
char buf[30];
clrscr();
CharToOem(" n, m, t, s: ",buf);
printf("\n %s \n",buf);
scanf("%d%d%d%d", &m, &n, &t, &s);
printf("\n m=%d n=%d \n t=%d s=%d \n", m, n, t, s);
CharToOem(" A ",buf);
printf("\n %s (%d*%d):\n", buf, m, n);
for(i = 0; i < m; i++)/* a[i][j]*/
for(j = 0; j < n; j++)/* . a[i][j]*/
scanf("%f", a[0] + i * N + j);
CharToOem(" A ",buf);
printf("\n %s \n", buf);
for(i = 0; i < m; i++)/* . a[i][j]*/
{
for(j = 0; j < n; j++)/* . a[i][j]*/
printf(" %6.2f", a[i][j]);
printf("\n");
}
CharToOem(" B ",buf);
printf("\n %s (%d*%d):\n", buf, t, s);
for(i = 0; i < t; i++) /* b[i][j]*/
for(j = 0; j < s; j++) /* . b[i][j]*/
scanf("%f", b[0] + i * S + j);
CharToOem(" B ",buf);
printf("\n %s \n", buf);
for(i = 0; i < t; i++) /* . b[i][j]*/
{
for(j = 0; j < s; j++) /* . b[i][j]*/
printf(" %6.2f", b[i][j]);
printf("\n");
}
sum_str(a[0], m, n, N, ssa, &mp);
CharToOem(" SSA ",buf);
printf("\n %s \n", buf);
for(i = 0; i < mp; i++) /* ssa[ i ] */
printf(" %.2f",ssa[i]);
printf("\n"); /* */
sum_str(b[0], t, s, S, ssb, &tp);
CharToOem(" SSB ",buf);
printf("\n %s \n", buf);
for(i = 0; i < tp; i++) /* ssb[ i ] */
printf(" %.2f",ssb[i]);
printf("\n"); /* */
getch();
}
void sum_str(float *z, int k, int p, int pmax, float *ssz, int *d)
|
|
{
int i, j; /* */
float ss; /* */
*d = 0;
for(i = 0; i < k; i++) /* . ss*/
{
ss = 0;
for(j = 0; j < p; j++) /* . ss */
{
ss = ss + *(z + i * pmax + j);
}
if(ss >= 0)
{
ssz[*d] = ss;
*d=*d + 1;
}
}
}
3 4 2 3 ;
8.53 9.3 5.7 -3.5
46 -32.1 28.5 -52.6
4.7 56 65 -7.2 ;
1.6 7.3 15
4.2 -10.18 12 .
.
10.7.
.
|
|
n, m, t, s (EditN, EditM, EditT, EditS). A B (EditA, EditB). ssa ssb - (ListBoxA, ListBoxB, ListBoxSSA, ListBoxSSB).
, . .
.
#include <stdio.h>/* -*/
#define M 10 /* */
#define N 15 /**/
#define T 9 /**/
#define S 7 /* */
void sum_str(float* z, int k, int p, int pmax, float *ssz, int *d);
void TSumprDlgClient::BNClickedOk()
{
// INSERT>> Your code here.
float ap, bp, a[M][N], b[T][S], ssa[M], ssb[T]; /* */
int i, j, n, m, t, s, mp, tp; /* */
char buf[15], buf1[50]="";
ListBoxA->ClearList();
ListBoxB->ClearList();
ListBoxSSA->ClearList();
ListBoxSSB->ClearList();
EditN->GetText(buf,10); /* */
n=atoi(buf); /* n*/
EditM->GetText(buf,10); /* */
m=atoi(buf); /* m*/
EditT->GetText(buf,10); /* */
t=atoi(buf); /* t*/
EditS->GetText(buf,10); /* */
s=atoi(buf); /* s*/
for(i = 0; i < m; i++)/* . a[i][j]*/
for(j = 0; j < n; j++)/* . a[i][j]*/
{
EditA->GetLine(buf, sizeof(buf),i*n+j);
a[i][j] = atof(buf);
}
for(i = 0; i < m; i++)/* . a[i][j]*/
{
strcpy(buf1, "");
for(j = 0; j < n; j++)/* . a[i][j]*/
{
sprintf(buf,"%.2f ", a[i][j]);
strcat(buf1, buf); /* buf buf1*/
}
ListBoxA->AddString(buf1);
}
for(i = 0; i < t; i++)/* . b[i][j]*/
for(j = 0; j < s; j++)/* . b[i][j]*/
{
EditB->GetLine(buf, sizeof(buf),i*s+j);
b[i][j] =atof(buf);
}
for(i = 0; i < t; i++)/* . b[i][j]*/
{
strcpy(buf1, ""); /* buf1*/
for(j = 0; j < s; j++) /* . b[i][j]*/
{
sprintf(buf,"%.2f ", b[i][j]);
strcat(buf1, buf); /* buf buf1*/
}
ListBoxB->AddString(buf1);
}
sum_str(a[0], m, n, N, ssa, &mp);
for(i = 0; i < mp; i++) /* ssa[ i ] */
{
sprintf(buf,"%.2f ", ssa[i]);
ListBoxSSA->AddString(buf);
}
sum_str(b[0], t, s, S, ssb, &tp);
for(i = 0; i < tp; i++) /* ssb[ i ] */
{
sprintf(buf,"%.2f ", ssb[i]);
ListBoxSSB->AddString(buf);
}
}
void sum_str(float *z, int k, int p, int pmax, float *ssz, int *d)
{
int i, j; /* */
float ss; /* */
*d = 0;
for(i = 0; i < k; i++)/* ss*/
|
|
{
ss = 0;
for(j = 0; j < p; j++) /* . ss */
{
ss = ss + *(z + i * pmax + j);
}
if(ss >= 0)
{
ssz[*d] = ss;
*d=*d + 1;
}
}
}
3 4 2 3 ;
8.53 9.3 5.7 -3.5
46 -32.1 28.5 -52.6
4.7 56 65 -7.2 ;
1.6 7.3 15
4.2 -10.18 12 .
.
10.8.
() , .
() .
, , . (), . () , . () , .
. .
( ). . () .
. () , ( ). , ( ).
/++ . , , . , . , ( ).
. /++ . () . ( ).
. : (), , . () , , (, , ), . .
. , .
, . . - .
1. , ?
|
|
3. ?
4. , ?
6. ?
7. ?
8. ?
9. , ?
11. ?
12. ?
13. ?
16. ?
17. , ?
19. ?
20. ?
21. ?
22. ?