Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2010, 10:23   #1
tuyana))
 
Регистрация: 12.12.2010
Сообщений: 6
По умолчанию программирование с использованием подпограмм. Си ++

Даны 3 вещественные квадратные матрицы n-го порядка.Напечатать ту из них, норма которой наименьшая(считать,что такая матрица одна). В качестве нормы матрицы взять максимум абсолютных величин ее элементов. помогите пожалуйста исправить ошибки)))
Код:
#include <stdio.h>
#include <locale.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#define N 10
float norm ( float X[N][N],int n )
{ int i,j;
float max;
max=0;
for (i = 0; i<n; i++)
       for (j = i; j<n ;j++) 
		   if (abs( X[i][j])>max) max=abs(X[i][j]);
return max;
}
void vvod (float Z[N][N],int n )
{ int i,j;
printf( "VVidite matritsu");
scanf("%f",&Z[N][N]);
for (i = 0; i<n; i++)
       for (j = i; j<n ;j++) 
scanf ("%f", &Z [i][j]);
}
void vivod ( float T[N][N],  int n )
{ int i,j;
for (i = 0; i<n; i++)
       for (j = i; j<n ;j++)
printf ("%f", T[i][j]);
}
float minnorma (float max1,float max2,float max3)
{float min;
if (max1<max2)
         if (max1<max3) min=max1; else min=max3;
else if (max2<max3) min=max2; else min=max3;return min;
}
void main ()
{float A[N][N],B[N][N],C[N][N]; int i,j,n;float w,l,m,min;
printf( "VVidite n");
scanf("%d",&n);
vvod (A,n);
vvod (B,n);
vvod (C,n);

w=norm (A,n);

l=norm (B,n);

m=norm (C,n);

min=minnorma(w,l,m);
if (min==w) vivod (A,n);
if (min==l) vivod (B,n);
if (min==m) vivod (C,n);
_getch();
}

Последний раз редактировалось Stilet; 12.12.2010 в 12:05.
tuyana)) вне форума Ответить с цитированием
Старый 12.12.2010, 12:15   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Особо не вникал но думается что нужно что-то вроде такого:
Код:
// gdfgf.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include <stdlib.h>

	const int n=3; // Это размерность массива
	float a[3][n][n],max; //У нас три массива, пусть для удобства в 
//трехмерном кубе эти массивы будут
	int maxi=-1;// Это номер матрицы, которая с максимальным
// Это функа вывода матриц. В нее передаем номер матрицы
	void out(int k){printf("\tMatrix %d\n",k);
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				printf("%10.2f",a[k][i][j]);
			} printf("\n");
		} printf("\n");
	}
int _tmain(int argc, _TCHAR* argv[])
{
	srand(100);// См. в хелп
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
// Вводим в матрицы новые значения. Сразу во все
			a[0][i][j]=rand();
			a[1][i][j]=rand();
			a[2][i][j]=rand();
// Если максимум не в первой, тогда если он не во второй значит в третьей иначе во второй иначе в первой
			maxi=(a[0][i][j]>max)?0:(a[1][i][j]>max?1:2);
max=a[maxi][i][j]; // Это я забыл вписать...
		}
	}
	out(maxi);
	getchar();
	return 0;
}
I'm learning to live...

Последний раз редактировалось Stilet; 12.12.2010 в 20:30.
Stilet вне форума Ответить с цитированием
Старый 12.12.2010, 15:47   #3
tuyana))
 
Регистрация: 12.12.2010
Сообщений: 6
По умолчанию

спасибо, сейчас попробую разобраться))а что можете сказать по моему решению?
что означает эта ошибка?1>.\Debug\RGR.exe.intermedia te.manifest : general error c1010070: Failed to load and parse the manifest. 5 C405BAO =09B8 C:070==K9 D09;
tuyana)) вне форума Ответить с цитированием
Старый 12.12.2010, 15:59   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а что можете сказать по моему решению?
Логичное но для моего уровня сложновато...
Цитата:
что означает эта ошибка?
О!, это не ко мне...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.12.2010, 16:30   #5
ACE Valery
Сама себе режиссер
Старожил
 
Аватар для ACE Valery
 
Регистрация: 27.04.2007
Сообщений: 3,365
По умолчанию

У меня такого никогда не было, но вот что нашла:
Цитата:
В свойствах твоего проекта. Linker->Manifest file. Вырубай.
или
Цитата:
не там создаешь С++File. нажми в solution explorer на название своего проекта правой кнопкой, add, new item..., C++File(.cpp).
Может, поможет...
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
ACE Valery вне форума Ответить с цитированием
Старый 12.12.2010, 17:51   #6
tuyana))
 
Регистрация: 12.12.2010
Сообщений: 6
По умолчанию

я создаю новый элемент срр именно так. попытка найти, где отрубить манифест провалилась((

"Логичное но для моего уровня сложновато..."вы просто скромничаете))

на самом деле, я мало что поняла в вашем решении)))вы можете прокоментировать свои действия пошагово?

Последний раз редактировалось Stilet; 12.12.2010 в 20:26.
tuyana)) вне форума Ответить с цитированием
Старый 12.12.2010, 20:31   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
я мало что поняла в вашем решении
Я как-бы тоже, космос навеял
Я вот тут у него комментарии попросил еще донавеять, см. выше
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программирование с использованием массивов (Pascal) F_U_C_K Помощь студентам 2 14.11.2010 16:19
Программирование с использованием подпрограмм. Александр181189 Паскаль, Turbo Pascal, PascalABC.NET 0 14.06.2010 17:13
программирование с использованием массивов Takada_sony Помощь студентам 0 16.05.2010 18:20