Форум программистов, компьютерный форум CyberForum.ru

Операции с массивом из файла *.тхт. Проблема. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Помогите с задачей C++ Листинг -есть http://www.cyberforum.ru/cpp-beginners/thread577008.html
Найти: Площадь прямоугольной трапеции с основаниями a, b (b>a) и углом при большем основании α. h=(b-a)tg alfa; s=((b+a)/2)*h Использовать вложенные функции. Вывод через return и заголовок функции. Вот листинг, но выдает ошибку здесь. Помогите. Похожий листинг есть в книге(по ней делал) #include <iostream>
C++ Вычислить значение выражения Ребятки, помогите первокурснику строительного института написать несколько программ! заранее благодарю:) http://www.cyberforum.ru/cpp-beginners/thread577007.html
C++ Переставить местами максимальный элемент и второй элемент со значением, меньшим Р
В упорядоченном по убыванию массиве переставить места ми максимальный элемент и второй элемент со значением, меньшим Р. Нахождение максимального элемента реализовать в виде функции. Помогите решить задачу(
Несложные Задачи по C++ C++
Ребят, помогите пожалуйста решить задачи. Несколько я сама уже сдала, остальные просто не успеваю) Хотелось бы сдать сессию вовремя и без хвостов. 1)Элементы массива M(n) упорядочены по неубыванию. Для заданного x найти наименьшее k такое, что {m}_{k}\leq x\leq {m}_{k+1}, либо показать, что такого нет (выдать сообщение). 2)Задано n произвольных натуральных чисел. Найти все группы по k чисел,...
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread576994.html
В даной действительной матрице розмерностю 6х9, поменять местами строку с максимальным элементом со строкой с минимальным элементом. Предлагается что эти елементы единственны. 1й курс. Дуб-дубом. Помогите.)
C++ Найти сумму элементов массива, расположенных до последнего положительного элемента Вот такое задание нужно сделать на с++ в консольном приложении: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный элемент массива; 2) сумму элементов массива, расположенных до последнего положительного элемента. Сжать массив, удалив из него все элементы, модуль которых находится в интервале . Освободившиеся в конце массива элементы заполнить нулями. ... подробнее

Показать сообщение отдельно
norvik
0 / 0 / 0
Регистрация: 15.05.2012
Сообщений: 5
16.05.2012, 21:37     Операции с массивом из файла *.тхт. Проблема.
Добрый вечер, у меня есть потребность практического свойства обрабатывать данные(двумерные массивы
произвольной размерности), хранящиеся в тхт файлах. Кол-во столбцов не более 10, а строк до миллиона,
поэтому екселем медленно. Я слабо разбираюсь в с++, но нашел здесь на форуме пример решения такой задачи, в общем он меня устраивает, но почему-то работает не со всеми файлами. Обрабатывается без ошибок только файл с массивом целых чисел, и то не всегда. Даже если матрица содержит только целые
числа, но предварительно редактировалась(ексель или ноутпад++) программа виснет с ошибкой "Expression: vector subscript out of range". При попытке обработать массив десятичных дробей та же ошибка. Помогите пожалуйста переделать код что бы можно было считать из файла массив чисел(в строке могут находиться целые числа и десятичные дроби) ,
произвести операции с ним и записать результат в другой файл.
Код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// text5.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <stdio.h>
#include <fstream>
#include <vector>
#include "iostream"
#include <string>
#include <conio.h> 
using namespace std;
 
 
 
class matrica
{
public:
    matrica():mn_minPosStr(0), mn_minPosStb(0),mn_razStr(0),mn_razStb(0){}
 
    void inputParametrs();  
    void work();            
    void outParametr();     
 
private:
    vector <vector <double> > md_ms; // наш массив
    int mn_razStr, // длина строчки
        mn_razStb, // длина столба
        mn_minPosStr, // позиция минимального елемента в строке
        mn_minPosStb; // позиция минимального елемента в столбе
 
};
    void matrica:: inputParametrs(){
        
        ifstream a("sourse.txt",ios::in);
        a >> mn_razStr >> mn_razStb;
        md_ms.assign(mn_razStr, vector<double>(mn_razStb));
        
        for(int i =0; i < mn_razStr ;i++ ){
                   for(int j =0; j < mn_razStb; j++ ){
                a >> md_ms[i][j];
            }
        }
 
        a.close();   
    }  
    void matrica:: work(){
        float temp = md_ms[0][0];
        
        for(int i =0; i < mn_razStr ;i++ ){
                        for(int j =0; j < mn_razStb; j++ ){
                if (temp > md_ms[i][j]){
                    temp = md_ms[i][j];
                    mn_minPosStr = i;
                    mn_minPosStb = j;
                }   
            }
             
        }
    }
 
 
    void matrica:: outParametr(){
        ofstream b("result.txt", ios::out);
 
        cout << "\tВыходящие данные:\n Для массива: \n";
        b <<  "\tВыходящие данные:\n Для массива: \n";
                for(int i =0; i < mn_razStr ;i++ ){
                        for(int j =0; j < mn_razStb; j++ ){
                cout << md_ms[i][j] << " ";
                b << md_ms[i][j] << " ";
            }
            cout << endl;
    }
        _getch();
        
        b << "\n Минимальный элемент: " << md_ms[mn_minPosStr][mn_minPosStb] <<
            ", Позиция: [ " << mn_minPosStr+1 <<"]["<< mn_minPosStb+1 <<"]." << endl;
        
        cout << "\n Минимальный элемент: " << md_ms[mn_minPosStr][mn_minPosStb] <<
            ", Позиция: [ " << mn_minPosStr+1 <<"]["<< mn_minPosStb+1 <<"]." << endl;
        _getch();
        b.close();
    }
    int main(){
        matrica m;
        m.inputParametrs();
        m.work();
        m.outParametr();
        return EXIT_SUCCESS;
    }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru