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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
KristinaOchkina
0 / 0 / 0
Регистрация: 22.12.2010
Сообщений: 7
#1

Файлы - C++

21.01.2011, 12:05. Просмотров 354. Ответов 4
Метки нет (Все метки)

Ребят, есть задание, перемножить две матрицы и вывести максимальный элемент.

Я написала простую программу.

Необходимо ее переделать так, что бы матрица1 и матрица2 считывались с разных текстовых файлов, в которых было записано, например, информация в первом файле:

2 2 5 8 7 9

где 2 2 - размерность матрицы,
5 8 7 9 - элементы матрицы;

а результат перемножения матриц и максимальный элемент, хранились в третьем файле. Причем, что бы имена первых двух файлов можно было ввести и считывать с указанных, введенных двух файлов.
Еще, как сделать, что бы массивы задать не указанной размерности (если я захочу массив 101х101 у меня уже программа не будет работать), а что бы я могла ввести любую размерность ( в пределах допустимого типа) и программа работала.

Подскажите, пожалуйста, кто что знает =)) Пусть даже по кусочкам, все равно это огромная помощь! ) Заранее большое спасибо!! )

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
#include "StdAfx.h"
#include <iostream>
 
using namespace std;
 
int m3[100][100];
 
int main()
{ double m1[100][100], m2[100][100];
  int  i, j, k, l,m,n, s,imax, jmax, max;
  
 
   cin>>l>>n;
   for (i=0; i<n; i++)
   for (j=0; j<l; j++)
        cin>>m2[i][j];
 
   cin>>m>>n;
   for (i=0; i<m; i++)
   for (j=0; j<n; j++)
       cin>>m1[i][j]; 
     cout<<endl;
 
    for (i=0; i<m; i++)
    for (j=0; j<l; j++) {
        s=0;
        for (k=0; k<l; k++)
        s=s+m1[i][k]*m2[k][j];
        m3[i][j]=s;
                        }   
    max=m3[0][0];
    for (i=0; i<m; i++)
    for (j=0; j<l; j++) {
    if (m3[i][j]>max){ 
        max=m3[i][j]; 
        }
                        }
 
 
    for (i=0; i<m; i++){
    for (j=0; j<l; j++)
       cout<<m3[i][j]<<" ";
    cout<<endl;       }
 
    cout<<max;
     
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.01.2011, 12:05     Файлы
Посмотрите здесь:

Файлы.Текстовые файлы - C++
Считая t текстовым файлом (файлом типа text), ответить на следующие вопросы: А)Кроме текстовых файлов,файлы какиъ еще типов могут...

Работа со звуком, открывать аудио-файлы, сохранять аудио-файлы - Visual Basic
Такой вопрос. В общем, как можно организовать составление стерео-файла из двух разных *.WAV ? То есть, берем один моно *.WAV и ставим его...

Все файлы на ПК зашиврованы все файлы типа - Better Call Saul - Удаление вирусов
Всем привет друзья! Уважаемый Sandor, вот такая трабла приключилась с моим ПК. Два дна назад, вывожу копм из сна и у меня на мониторе вот...

fopen открывает php файлы и не открывает sql файлы - PHP
Вот такая значит проблема ... необходимо открыть по http некоторый файл test.sql fopen ('$base_url/setup/test.sql', 'r') ... функция...

Вирус зашифровал все файлы ("все ваши файлы зашифрованы") - Удаление вирусов
Здравствуйте, поймал вирус, который зашифровал все файлы. В каждой папке текстовый файл, начало содержания: &quot;Здравствуйте, все ваши...

Пропали файлы на флешке.Вместо них файлы и папки со странными именами - Восстановление данных
Вставил флешку с программами(пользовался ей недавно) и тут такое.... Ни одну папку открыть не могу. Как вернуть нормальные...

Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними - C++
Всем добрый вечер!) Относительно недавно стал изучать c/c++, хочу полюбопытствовать ,так как появился вопрос. Почему при объявлении...

Не могу открыть файлы Word, jpeg, pdf - файлы повреждены - Удаление вирусов
Помогите, пожалуйста, по-глупости словила вирус. Теперь не открываются файлы Word, jpeg, pdf, пишет файл поврежден, или просмотр...

Текстовые файлы. Создать новый файл, объединив исходные файлы - Pascal ABC
даны текстовые файлы Name1 и Name2 .создать Name3 файл объединив Name1 и Name2 текстовые файлы

Почему не отправляются файлы docx, txt и прочие текстовые файлы? - PHP
Архивы и картинки проверял- отправляются на сервер, а текстовые файлы- нет. Что нужно, чтоб они тоже отправлялись? &lt;?php ...

Восстановить удаленные файлы (пропали файлы после нажатия Ctrl +Z) - Восстановление данных
Народ, срочно нужна ваша помощь. Кратко, вчера с флеш-адаптера скопировал себе видео-материал с мероприятия. Сегодня каким-то путем нажал...

Как в IntelliJ IDEA скомпилировать исходные файлы в файлы классов - JAVA IDE
Учусь делать апелты &lt;html&gt; &lt;body&gt; &lt;applet code=&quot;aplet.class&quot;,width=&quot;300&quot; height=300&gt; /*&lt;/aplet&gt; &lt;/body&gt; &lt;/html&gt; import...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.01.2011, 13:48     Файлы #2
KristinaOchkina, отдалённо похожая задача. Правда, оно там на С, и массив, считанный из одного файла, в другой перекладывает, но общие принципы можно разглядеть...
Имена входных файлов на С++ можно например вот так получать:
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
#include <iostream>
#include <string>
...
std::string name;
std::cout << "First file name: ";
std::cin >> name;
std::ifstream ifs1(name.c_str());
if ( ! ifs1.is_open() ){
  // вывести сообщение об ошибке открытия файла и завершить программу
}
 
...
int **matrix1, rows1, columns1;
ifs1 >> rows1, columns1;
matrix1 = new int* [rows1];
for ( int i = 0; i < rows1; ++i )
  matrix1[i] = new int [columns];
for ( int i = 0; i < rows; ++i )
  for ( int j = 0; j < columns; ++j )
    ifs1 >> matrix1[i][j];
ifs1.close();
...
std::cout << "Second file name: ";
std::cin >> name;
std::ifstream ifs2(name.c_str());
...
...
// когда матрицы больше не нужны
for ( int i = 0; i < rows1; ++i )
  delete [] matrix1[i];
delete [] matrix1;
...
KristinaOchkina
0 / 0 / 0
Регистрация: 22.12.2010
Сообщений: 7
21.01.2011, 14:06  [ТС]     Файлы #3
Спасибо! Вот с одним файлом я пробовала, только через функцию freopen , указывая с новой строки значения для первой ив второй матрицы и программа работала правильно, а вот считывать с двух файлов уже проблема возникла... может кто еще знает, ответит..)) Но все равно спасибо!))

Добавлено через 4 минуты
Цитата Сообщение от easybudda Посмотреть сообщение
ifstream ifs1(name.c_str());
if ( ! ifs1.is_open() ){
если вот это рассмотреть не для частного случая а в общем, как я понимаю:
ifs1 - функция работы с файлом, может быть любого имени
name - имя вводимого файла,
.c_str() - а вот это что? как раз-таки ввода имения файла, который необходимо открыть?
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
21.01.2011, 14:14     Файлы #4
Цитата Сообщение от KristinaOchkina Посмотреть сообщение
ifs1 - функция работы с файлом
ifs1 - имя объекта класса ifstream, которому в конструкторе передаётся имя файла в виде С-строки
name - объект класса string, метод которого c_str() как-раз возвращает содержимое в виде С-строки...
KristinaOchkina
0 / 0 / 0
Регистрация: 22.12.2010
Сообщений: 7
22.01.2011, 17:59  [ТС]     Файлы #5
спасибо))
Yandex
Объявления
22.01.2011, 17:59     Файлы
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru