Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   матрицы (http://forum.oszone.net/showthread.php?t=187724)

mego4el 07-10-2010 21:17 1513872

матрицы
 
Добрый вечер. Ув. форумчане пожалуйста помогите решить задачу по программированию, на тему: матрицы.

Условие:
Дано действительную квадратную матрицу порядка n. Получить новую матрицу путем замены элементов, сумма индексов которых четная на среднее геометрическое модулей элементов, находящихся на главной диагонали.

необходимо написать код на С++, пожалуйста помогите это сделать, не могу понять как правильно записать последовательность действий.(((

Hector 07-10-2010 22:34 1513915

PHP код:

#include "stdafx.h"
#include "locale.h"
#include "stdio.h"
#include "math.h"

const int N=4// порядок матрицы 3х3

int inp(float matr[N][N]) // ввод матрицы
{
    
int ij;
    for (
i=1i<=N-1i++)
        for (
j=1j<=N-1j++)
        {
            
printf("\n[%d.%d]=",i,j);
            
scanf("%f",&matr[i][j]);
        }
    return 
0;
}

int out(float matr[N][N]) // вывод матрицы
{
    
int ij;
    for (
i=1i<=N-1i++)
    {
        for (
j=1j<=N-1j++)
            
printf("%.2f ",matr[i][j]);
        
printf("\n");
    }
    return 
0;
}


int _tmain(int argc_TCHARargv[])
{
    
setlocale(LC_ALL"rus"); // вывод русских символов в консоль
    
float A[N][N];
    
printf("Введите значения для матрицы А:\n");
    
inp(A);
    
printf("\nВы ввели:\n\nМатрица А:\n");
    
out(A);
    
int hg;
    
float srGem=1
    
// находим средне-геометрическое элементов главной диагонали
    
for (h=1h<=N-1h++)
        
srGem=srGem*abs(A[h][h]);
    
srGem=sqrt(srGem);    
    
// итоговая обработка матрицы
    
for (h=1h<=N-1h++)
        for (
g=1g<=N-1g++)
            if ((
h+g)%2==0
                
A[h][g]=srGem;
    
printf("\nМатрица A после обработки:\n");
    
out(A);
    return 
0;



LilLoco 07-10-2010 23:19 1513942

Цитата:

Цитата Hector
const int N=4; »

- Матрица 3*3????оО

mego4el 07-10-2010 23:27 1513949

Hector, спасибо большое!


ничего же не должно поменяться если я изменю размеры матрицы до 10х10?

выдает ошибку:

c:\program files\microsoft visual studio\myprojects\ll\ff.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Error executing cl.exe.

Hector 07-10-2010 23:57 1513963

LilLoco, что тебя смущает?
mego4el, в принципе не должно. насчет
Цитата:

Цитата mego4el
c:\program files\microsoft visual studio\myprojects\ll\ff.cpp(1) : fatal error C1083: Cannot open include file: 'stdafx.h': No such file or directory
Error executing cl.exe. »

вроде не может найти stdafx.h

LilLoco 08-10-2010 07:37 1514063

Цитата:

Цитата Hector
LilLoco, что тебя смущает? »

Ну вроде как при N = 4, Матрица Matr[N][N] не будет матрицей с размерностью 3*3!или мне кажется?оО

lxa85 08-10-2010 08:18 1514076

LilLoco, массив позволит вместить в себя матрицу размером 3x3. Т.е. памяти будет задействовано больше, но ошибки не возникнет.
А вообще в дебагере надо посмотреть.

LilLoco 08-10-2010 10:52 1514159

Ошибки то не будет, но матрица то будет при этом содержать 4*4 элементов!А я говорю просто про комментарий, в котором написано, что N = 4 - это порядок матрицы 3*3!Этим и с толку сбить можно же!


Время: 18:42.

Время: 18:42.
© OSzone.net 2001-