| 
				
				Помогите написать программу
				 | 
 | 
				
					| valentinshmickov | Дата: Четверг, 26.11.2015, 01:53 | Сообщение # 1 |  
					| 
					 НовичЁк 
					
					Группа: Проверенные 
					
					Сообщений: 4 
					
					
					
					Статус: Оффлайн 
					 
					 | 1. Определить количество строк и столбцов в ней (в случае, если файл имеет неверный формат - выдать сообщение об ошибке), прочитать в двумерный массив все значения в ячейках матрицы. 2. Под неверным форматом понимаются случаи, когда данные в файле не являются матрицей (таблицей) или значения ячеек матрицы не являются вещественными. Вывести пользователю. В консоль количество строк и столбцов в матрице. 3. Вычислить минимальное и максимальное значение в матрице. 4. Отсортировать значения в матрице по возрастанию или убыванию (задать об этом вопрос пользователю) 5. Вывести в файл (название файла принять от пользователя) в виде такой же матрицы значения функций f(x), где "х" - ячейка исходной матрицы. 
					
					
					 |  
					|   | 
					 |  
				  | 
				
					| Алексей | Дата: Четверг, 26.11.2015, 01:56 | Сообщение # 2 |  
					
					 Продвигающийся 
					
					Группа: Администраторы 
					
					Сообщений: 324 
					
					
					
					Статус: Оффлайн 
					 
					 | valentinshmickov, Библиотеку к проекту надеюсь знаешь как подключать?
 
 Код #include <fstream> #include<locale.h> #include<time.h> #include <stdlib.h> #include <stdio.h> #include <Windows.h> #include <iostream> #include <string.h> #include <omp.h> using namespace std;
  struct  maxmin { maxmin() {} double min; double max; };
  double **filein(int n, int m) { double **mass = new double *[n]; cout << "Исходный массив" << endl;
  double nm = n * m, id=0;
  for (int i = 0;i < n; i++) {   mass [i]= new double[m];   for (int j = 0;j < m;j++)   {    id++;    mass [i][j]= 1 + rand() % 1001;       now:    int i1 = i, j1 = j - 1;    while (1)    {     if (i1 == -1) { break; }     if ((mass[i1][j1] == mass[i][j]) && ((i == i1 && j > j1) || (i > i1)))     {      srand(time(NULL));      mass [i][j]= 1 + rand() % 1001;      goto now;     }     j1--;     if (j1 < 0) { i1--; j1 = m - 1; }     if (i1 < 0)     {      break;     }    }    cout << (id * 100) / nm << "% ";   } } cout << endl; for (int i = 0;i < n;i++) {   for (int j = 0;j < m;j++)   {    cout << mass [i][j]<< "\t";   }   cout << endl; }
  return mass; }
  maxmin обработчик1(double **mass, int n, int m) { maxmin res; res.min = res.max = mass[1][1]; for (int i = 0;i < n;i++) {   for (int j = 0;j < m;j++)   {    if (res.max < mass[i][j]) { res.max = mass[i][j]; }    else if (res.min > mass[i][j]) { res.min = mass[i][j]; }   } } return res; }
  double **обработчик2(double **mass, int n, int m) { start: cout << "Как отсортировать элементы матрицы (возрастанию - 1/убыванию - 2)?   "; int ty; cin >> ty; if (ty == 1) {   double tmp;   for (int i = 0; i < n;i++)    for (int j = 0;j < m;j++)     for (int i1 = 0;i1 < n;i1++)      for (int j1 = 0;j1 < m;j1++)      {       if ((mass[i1][j1] < mass[i][j]) && ((i == i1 && j<j1) || (i<i1)))       {        tmp = mass[i][j];        mass [i][j]= mass[i1][j1];        mass[i1][j1] = tmp;       }      } } else if (ty == 2) {   double tmp;   for (int i = 0; i < n;i++)    for (int j = 0;j < m;j++)     for (int i1 = 0;i1 < n;i1++)      for (int j1 = 0;j1 < m;j1++)      {       if ((mass[i1][j1] > mass[i][j]) && ((i == i1 && j<j1) || (i<i1)))       {        tmp = mass[i][j];        mass [i][j]= mass[i1][j1];        mass[i1][j1] = tmp;       }      } } else {   cout << "Вы ввели неправильное значение" << endl;   goto start; } return mass; }
  int main(int argc, char *argv) { setlocale(LC_ALL, "Russian"); srand(time(NULL)); int n, m; cout << "Введите размерность (столбы строки): "; cin >> n >> m; system("pause"); maxmin max_min; double **mass = filein(n, m); double **sortmass;
  #pragma omp parallel { #pragma omp sections { #pragma omp section {   max_min = обработчик1(mass, n, m); } #pragma omp section {   sortmass = обработчик2(mass, n, m); } } }
  cout << "Результаты работы программы" << endl; cout << "Минимальный элемент массива - " << max_min.min << endl; cout << "Максимальный элемент массива - " << max_min.max << endl; cout << "Отсортированный массив:" << endl; for (int i = 0;i < n;i++) {   for (int j = 0;j < m;j++)   {    cout << sortmass [i][j]<< "\t";   }   cout << endl; }
  system("pause"); }  
					 
					
					 |  
					|   | 
					 |  
				  | 
				
					| valentinshmickov | Дата: Четверг, 26.11.2015, 01:58 | Сообщение # 3 |  
					| 
					 НовичЁк 
					
					Группа: Проверенные 
					
					Сообщений: 4 
					
					
					
					Статус: Оффлайн 
					 
					 | Алексей, спасибо. С файлом разберусь, наверное.
					
					
					 |  
					|   | 
					 |  
				  | 
				
					| ladyirina-rom1995 | Дата: Четверг, 26.11.2015, 02:07 | Сообщение # 4 |  
					| 
					 НовичЁк 
					
					Группа: Пользователи 
					
					Сообщений: 4 
					
					
					
					Статус: Оффлайн 
					 
					 | Алексей, а где ввод и вывод из файла?
					
					
					 |  
					|   | 
					 |  
				  | 
				
					| valentinshmickov | Дата: Четверг, 26.11.2015, 02:10 | Сообщение # 5 |  
					| 
					 НовичЁк 
					
					Группа: Проверенные 
					
					Сообщений: 4 
					
					
					
					Статус: Оффлайн 
					 
					 | ladyirina-rom1995, Да я сам сделаю
					
					
					 |  
					|   | 
					 |  
				  | 
				
					| ladyirina-rom1995 | Дата: Четверг, 26.11.2015, 02:12 | Сообщение # 6 |  
					| 
					 НовичЁк 
					
					Группа: Пользователи 
					
					Сообщений: 4 
					
					
					
					Статус: Оффлайн 
					 
					 | valentinshmickov, ты не смог сделать элементарные функции и закрепить их в omp, но ввод и вывод сделаешь...
					
					
					 |  
					|   | 
					 |  
				  | 
				
					| Алексей | Дата: Четверг, 26.11.2015, 15:01 | Сообщение # 7 |  
					
					 Продвигающийся 
					
					Группа: Администраторы 
					
					Сообщений: 324 
					
					
					
					Статус: Оффлайн 
					 
					 | ladyirina-rom1995, ввод/вывод сделает сам. Я откуда знаю какого формата файл из которого получаем информацию, может он из обычного txt это берет, может это бинарный файл, а может excel таблица. В любом случае простейшие моменты типа ввода и вывода молодой человек в силах сделать самостоятельно.
					
					
					 |  
					|   | 
					 |  
				  |