1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Замена Столбцов В Матрице.

Тема в разделе "Вопросы новичков и не только", создана пользователем Valya, 17 дек 2012.

  1. Valya

    Valya Гость

    Репутация:
    0
    Пусть в текстовом файле записаны целые числа разделенные пробелами. Первым числом в файле является размерность квадратной матрицы. Далее в файле расположены построчно элементы матрицы. Перепишите в другой текстовый файл данную матрицу, заменив ее j-столбец числами, прочитанными из третьего текстового файла, содержащие целые числа.

    помогите. как написать только то место, где нужно заменить j-стольбец на числа прочитанные из второго файла.


    Код:
    #include "StdAfx.h"
    #include <iostream>
    #include <fstream>
    
    #define size 10
    
    using namespace std;
    
    int main()
    {
    int n, m;									  
    int l;								  
    int flag;
    
    ifstream finA;								 
    ifstream finB;								 
    ofstream foutC;								
    
    int a[size][size], b[size], c[size][size];
    
    do{
    finA.open("fileA.txt");					 
    finB.open("fileB.txt");						 
    foutC.open("fileC.txt");					 
    
    finA >> n >> m;						 
    
    cout << "Matrix A" << endl;	  // Файл из которого считываем матрицу
    for(int i = 0; i < m; i++)				 
    for(int j = 0; j < n; j++)
    finA >> a[j][i];			  
    // выводим матрицу на экран
    for(int i = 0; i < n; i++)											  
    {
    for(int j = 0; j < m; j++)
    cout << a[i][j] << " ";	
    cout << endl;
    }
    int k;
    int p;	 
    
    finB >> l;						 // Файл из которого считываем целые числа, что бы 
    for(int k= 0; k< l; k++)			 // заменить ими j-столбец 
    finB >> b[k];				 
    
    // выводим на экран целые числа, из второго файла
    for(int k = 0; k < l; k++)	  
    cout << b[k] << " ";
    cout << endl;
    
    // как написать так,что бы j-столбец можно было заменить 
    // на числа записанные во втором файле
    foutC << n << " " << m << " ";			
    cout<< "Vvedite nomer stolbza: ";
    cin>>p;
    cout << "Matrix C" << endl;
    for(int i = 0; i < n; i++)				
    { a[i][p]=b[k];}
    cout << endl;
    
    //выводим измененную матрицу на экран
    for(int i = 0; i < n; i++)				 
    for(int j = 0; j < l; j++)
    foutC << c[i][j] << " ";
    
    finA.close();
    finB.close();
    foutC.close();
    
    cout << "Povtorit` vvod? 1-Yes/2-No" << endl;
    cin >> flag;
    }while(flag == 1);
    return 0;
    }
     
  2. rrrFer

    rrrFer Гость

    Репутация:
    0
    Код:
    for (int j = 0; j < n; ++j) 
    for (int i = 0; i < n; ++i)
    a[i][j] = b[j];
     
  3. Valya

    Valya Гость

    Репутация:
    0
    а как сделать так, что бы заменялся именно столбец, номер которого мы вводим с клавиатуры?
     
  4. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    9
    интересно, меняете матрицу а, а выводите с: foutC << c[j] << " ";
     
  5. rrrFer

    rrrFer Гость

    Репутация:
    0
    Код:
    int i; // номер столбца, номер которого мы ...
    for (int j = 0; j < n; ++j) 
    a[j][i] = b[j];
     
  6. Valya

    Valya Гость

    Репутация:
    0


    Код:
    foutC << n << " " << m << " ";			
    cout<< "Vvedite nomer stolbza: ";
    cin>>p;
    cout << "Matrix C" << endl;
    for(int i = 0; i < n; i++)				
    { a[i][p]=b[k];}
    cout << endl;
    
    //выводим измененную матрицу на экран
    for(int i = 0; i < n; i++)				 
    for(int j = 0; j < l; j++)
    foutC << c[i][р] << " ";
    все равно с этим условием, что-то не то. я уже и не знаю как его переписать. но оно не работает.
    матрицу на экран выводит, потом мы вводим номер j-столбца, а дальше программа просто не работает(она выходит, но и в файле С ничего не меняется(хотя там должна быть измененная матрица))
    а дальше ничего не деает
     
  7. Valya

    Valya Гость

    Репутация:
    0
    я ввожу номер заменяемого стобца, но матрица не изменяется и даже не записывается в файл С.
     
  8. rrrFer

    rrrFer Гость

    Репутация:
    0
    Код:
    for(int i = 0; i < n; i++)				
    { a[i][p]=b[k];}
    что за k?
     
  9. hosm

    hosm * so what *

    Репутация:
    0
    Регистрация:
    18 май 2009
    Сообщения:
    2.442
    Симпатии:
    9
    >я ввожу номер заменяемого столбца, но матрица не изменяется и даже не записывается в файл С.
    ну да, ведь компьютер тупой, он не понимает, что когда вы меняете элементы матрицы а на элементы массива b с некорректным индексом k, а в файл записываете другой "левый" (неинициализированный) массив c, внезапно значения с должны получиться правильными (с помощью "некой магии высших сил" туда помещается измененная матрица а, которая должна записаться в файл - ибо кода для заполнения с в теме не написали).
     
  10. Valya

    Valya Гость

    Репутация:
    0
    b[k]-это массив целых чисел, которыми мы должны заменять столбец в failA.

    вот я изменила немного код, но он все равно не работает.
    Код:
     int p; // номер столбца, номер которого заменяем
    cout << "Vvedite nomer zamenyaemogo slolbza: ";	
    cin>>p;
    for (int i = 0; i< n; ++i)
    { a[ i][ p] = b[ i];} //заменили столбец
    // если номер столбца совпадает с введеным номером
    for (int i=0;i<n; i++)
    {for (int j=0; i<n;i++)
    if(j==p)  
    b[i]=a[i][j]; 
    foutC<< a[i][j]<< " ";}  //то записываем матрицу в файл С
     
  11. rrrFer

    rrrFer Гость

    Репутация:
    0
    как это проявляется?
     
  12. Valya

    Valya Гость

    Репутация:
    0
    она выводит на экран матрицу , дальше массив чисел, затем просит ввести номер заменяемого столбца, ввожу, и все работа программы прекращается и ее приходится закрывать. и также в файле С ничего не записывается.
     
  13. rrrFer

    rrrFer Гость

    Репутация:
    0
    finB >> l;
    что такое l?
     
  14. Valya

    Valya Гость

    Репутация:
    0
    спасибо большое за помощь, но я уже сама разобралась)
     
Загрузка...
Похожие Темы - Замена Столбцов Матрице
  1. seoman2
    Ответов:
    5
    Просмотров:
    130
  2. zvr891
    Ответов:
    1
    Просмотров:
    41
  3. Серега_123
    Ответов:
    2
    Просмотров:
    332
  4. anna
    Ответов:
    15
    Просмотров:
    1.492
  5. TomRiddleHPSS
    Ответов:
    0
    Просмотров:
    773

Поделиться этой страницей