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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2017, 21:21   #1
Alex Gor
Новичок
Джуниор
 
Регистрация: 03.12.2017
Сообщений: 4
Восклицание Функции - MVS 12

Подскажите, пожалуйста! Фрагменты 1 и 2 нужно забрать в одну функцию, фр. 3 и 4 тоже в одну функцию и эти функции вызывать для обработки каждого массива отдельно. Как это сделать? Очень срочно! Пожалуйста

Код:
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <locale.h>
#include <stdio.h>
#include <iomanip>
using namespace std;
void main ()
{setlocale (LC_ALL, "Russian");
  int const N=3, M=4;
  int i=0, j=0, k=0, l=0;
  int A[N][N], B[M][M];
  //считываем матрицу А
  ifstream in ("D:\\1.1 курс\\matrix.txt");
//Фрагмент 1=======================================
  cout<<"Матрица А:\n";
  for (int i=0; i<N; i++)
  {for (int j=0; j<N; j++)
    {in>>A[i][j];
      cout<<setw(2)<<A[i][j];
    }
    cout<<"\n";
  }
  cout<<"\n\n";
========================================================
  //считываем матрицу В
//Фрагмент 2==============================================
  cout<<"Матрица В:\n";
  for (int k=0; k<M; k++)
  {for (int l=0; l<M; l++)
    {in>>B[k][l];
      cout<<setw(3)<<B[k][l];
    }
    cout<<"\n";
  }
  cout<<"\n\n";
===========================================================
  in.close();
  //находим произведение всех нечетных элементов матрицы А
//Фрагмент3====================================================
  float YA=1;
  for (int i=0; i<N; i++)
  {for (int j=0; j<N; j++)
    {if ((A[i][j]%2) !=0)
      {YA*=A[i][j];
      }
    }
  }
  cout<<"Произведение нечетных элементов матрицы А:\n";
  cout<<"YA="<<YA;  
  cout<<"\n\n";
================================================================
  //находим произведение всех отрицательных элементов матрицы В
//Фрагмент 4========================================================
  float YB=1;
  for (int k=0; k<M; k++)
  {for (int l=0; l<M; l++)
    {if (B[k][l]<0)
      {YB*=B[k][l];
      }
    }
  }
  cout<<"Произведение отрицательных элементов матрицы В:\n";
  cout<<"YB="<<YB;
  cout<<"\n\n";
========================================================================
  //находим К=УА/УВ
  float K=0;
  K=YA/YB;
  cout<<"К=YA/YB:\n";
  cout<<"K="<<K;
  cout<<"\n\n";
  system ("pause");
}

Последний раз редактировалось Аватар; 04.12.2017 в 10:25.
Alex Gor вне форума Ответить с цитированием
Старый 04.12.2017, 10:00   #2
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Код:
#include "stdafx.h"
#include <fstream>
#include <iostream>
#include <locale.h>
#include <stdio.h>
#include <iomanip>

using namespace std;

void ReadData(char* src, int* dest, int n, int m)
{
	ifstream in(src);
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			in >> *(dest + i*m + j);
			cout << setw(5) << *(dest + i*m + j);
		}
		cout << "\n";
	}
	cout << "\n\n";
	in.close();
}


float Mult(int* dest, int n, int m)
{
	float YA = 1;
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			int value = *(dest + i*m + j);
			if ((value % 2) != 0)
			{
				YA *= value;
			}
		}
	}
	return YA;	
}

int main()
{
	setlocale(LC_ALL, "Russian");
	int const N = 3, M = 4;
	int i = 0, j = 0, k = 0, l = 0;
	int A[N][N], B[M][M];


	cout << "Матрица А:\n";
	ReadData("C:\\matrixA.txt", &A[0][0], N, N);

	cout << "Матрица B:\n";
	ReadData("C:\\matrixB.txt", &B[0][0], M, M);


	float YA = Mult(&A[0][0], N, N);
	cout << "Произведение нечетных элементов матрицы А:\n";
	cout << "YA=" << YA;
	cout << "\n\n";


	float YB = Mult(&B[0][0], M, M);
	cout << "Произведение отрицательных элементов матрицы В:\n";
	cout << "YB=" << YB;
	cout << "\n\n";


	//находим К=УА/УВ
	float K = 0;
	K = YA / YB;
	cout << "К=YA/YB:\n";
	cout << "K=" << K;
	cout << "\n\n";
	system("pause");

	return 0;
}
Как то так.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.

Последний раз редактировалось WorldMaster; 04.12.2017 в 10:08.
WorldMaster вне форума Ответить с цитированием
Старый 04.12.2017, 15:13   #3
Alex Gor
Новичок
Джуниор
 
Регистрация: 03.12.2017
Сообщений: 4
По умолчанию

Спасибо большое, но программа работает немного некорректно
Первое: (dest + i*m + j) Что это значит?
Второе: у меня в документе есть отрицательные числа, а на экран выводятся как положительные, пыталась исправить - получилось не очень
Мб подскажете?
Alex Gor вне форума Ответить с цитированием
Старый 04.12.2017, 16:21   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Alex Gor Посмотреть сообщение
программа работает немного некорректно
Обманываете.

Цитата:
Сообщение от Alex Gor Посмотреть сообщение
Первое: (dest + i*m + j) Что это значит?
Доступ к элементу с указанными индексами в 2мерном массиве.


Цитата:
Сообщение от Alex Gor Посмотреть сообщение
Второе: у меня в документе есть отрицательные числа, а на экран выводятся как положительные, пыталась исправить - получилось не очень
Где документ, как пыталась исправить и что значит "получилось не очень"?
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 04.12.2017, 16:37   #5
Alex Gor
Новичок
Джуниор
 
Регистрация: 03.12.2017
Сообщений: 4
По умолчанию

Цитата:
Сообщение от WorldMaster Посмотреть сообщение
Обманываете.
В документе написано:
-1 2 3 -4
5 6 -7 8
9 1 -2 3
4 -5 6 7
А выдает:
1 2 3 4
5 6 7 8
9 -1 2 3
-4 5 6 -7
К тому же считает YA i YB неправильно
и один момент:
Цитата:
Сообщение от WorldMaster Посмотреть сообщение
if ((value % 2) != 0)
Это для первого массива, а для второго мне нужны не непарные, а отрицательные элементы
вот
Alex Gor вне форума Ответить с цитированием
Старый 04.12.2017, 17:11   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от Alex Gor Посмотреть сообщение
В документе написано:
-1 2 3 -4
5 6 -7 8
9 1 -2 3
4 -5 6 7
А выдает:
1 2 3 4
5 6 7 8
9 -1 2 3
-4 5 6 -7
К тому же считает YA i YB неправильно
и один момент:

Это для первого массива, а для второго мне нужны не непарные, а отрицательные элементы
вот
Нормально все загружает. Вот скриншот.
По поводу функций согласен. Не заметил сразу. Ну введите параметр дополнительный в функцию и все. Делов то.
Изображения
Тип файла: jpg 3.jpg (46.6 Кб, 57 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 04.12.2017, 17:41   #7
Alex Gor
Новичок
Джуниор
 
Регистрация: 03.12.2017
Сообщений: 4
По умолчанию

Смотрите на матрицу В
Изображения
Тип файла: jpg Без имени1.jpg (29.7 Кб, 59 просмотров)
Тип файла: jpg Без имени.jpg (44.7 Кб, 29 просмотров)
Alex Gor вне форума Ответить с цитированием
Старый 05.12.2017, 08:18   #8
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Че на нее смотреть то? Я на код смотрю и он читает все правильно.

Код:
void ReadData(char* src, int* dest, int n, int m)
{
	ifstream in(src);
	for (int i = 0; i < n; i++)
	{
		for (int j = 0; j < m; j++)
		{
			int value = 0;
			in >> value;
			*(dest + i*m + j) = value;
			cout << setw(5) << value;
		}
		cout << "\n";
	}
	cout << "\n\n";
	in.close();
}
Изображения
Тип файла: jpg 3.jpg (37.6 Кб, 59 просмотров)
Вложения
Тип файла: txt matrixA.txt (23 байт, 118 просмотров)
Тип файла: txt matrixB.txt (50 байт, 131 просмотров)
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
cmach в MVS FoxRa Visual C++ 22 26.09.2017 15:40
Вопросы по MVS 2008 genrix Обсуждение статей 1 11.09.2011 14:05
MVS 2008 WinApi FreeLove Помощь студентам 4 08.08.2009 21:08
Ошибка в MVS 2008 TheWanderer Общие вопросы C/C++ 9 12.11.2008 13:21