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

В бинарном файле содержатся числа. Сформировать квадратную матрицу... - C++

Восстановить пароль Регистрация
 
CiLbBePMeH
 Аватар для CiLbBePMeH
1 / 1 / 0
Регистрация: 17.05.2012
Сообщений: 17
17.05.2012, 18:05     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #1
Всем доброго времени суток)Есть задача,решения которого я не могу найти(т.к саму задачу непонимаю).Если есть желание ,посмотрите пожалуйста.
"В бинарном файле содержатся числа. Сформировать квадратную матрицу из 25 последних чисел файла. Посчитать сумму элементов над главной диагональю полученной матрицы." на с++ естественно))
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2012, 18:05     В бинарном файле содержатся числа. Сформировать квадратную матрицу...
Посмотрите здесь:

C++ Сформировать матрицу размера M*N, у которого в каждом столбце содержатся все числа из исходного набора
Сформировать квадратную матрицу C++
C++ Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора
Сформировать и распечатать квадратную матрицу C++
C++ Сформировать квадратную матрицу по образцу
Сформировать квадратную матрицу по образцу C++
C++ Сформировать квадратную матрицу
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5656 / 3135 / 356
Регистрация: 29.11.2010
Сообщений: 8,402
17.05.2012, 18:16     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #2
1. Открываешь бинарный файл.
2. Пока не конец файла считаешь количество чисел (N).
3. Снова обходишь файл и начиная с N - 24 до N считываешь эти числа в двумерный массив, размерностью 5x5.
4. Как подсчитать сумму элементов над диагональю спрашивают на форуме каждый день по несколько раз. Посмотрите решения в прошлых темах.
CiLbBePMeH
 Аватар для CiLbBePMeH
1 / 1 / 0
Регистрация: 17.05.2012
Сообщений: 17
17.05.2012, 18:21  [ТС]     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #3
А можно продемонстрировать первые 3 пункта?
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5656 / 3135 / 356
Регистрация: 29.11.2010
Сообщений: 8,402
17.05.2012, 18:45     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #4
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
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream in("testbin.txt", std::ios::binary);
    if (!in) return 1;
    int count = 0, tmp, arr[25], matrix[5][5], index = 0;
    while(!in.eof() && in.read((char*)&tmp, sizeof(tmp)))
        count++;
    in.clear(); // Г±ГЎГ°Г*ñûâГ*ГҐГ¬ ГґГ«Г*ГЈГЁ
    in.seekg(0, std::ios::beg);
    for(int i=0; i < count && in.read((char*)&tmp, sizeof(tmp)); i++)
        if(i >= count - 25) arr[index++] = tmp;
    for (int i=0; i < 25; i++)
        matrix[i % 5][i / 5] = arr[i];
    // âûâîäèì Г¬Г*òðèöó Г*Г* ГЅГЄГ°Г*Г*
    for (int i=0; i < 5; i++)
    {
        for (int j=0; j < 5; j++)
            std::cout<< matrix[i][j]<< " ";
        std::cout<< std::endl;
    }
    return 0;
}
перед этим оформи простенькую запись чисел в бинарный файл в цикле
CiLbBePMeH
 Аватар для CiLbBePMeH
1 / 1 / 0
Регистрация: 17.05.2012
Сообщений: 17
17.05.2012, 18:48  [ТС]     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #5
Спасибо))Очень помогли
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
5656 / 3135 / 356
Регистрация: 29.11.2010
Сообщений: 8,402
17.05.2012, 18:51     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #6
вот фактически вся прога, что уж там, одну строчку дописать.
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
#include <iostream>
#include <fstream>
 
int main()
{
    std::ifstream in("testbin.txt", std::ios::binary);
    std::ifstream iz("testbin.txt", std::ios::binary);
    if (!in) return 1;
    int count = 0, tmp, arr[25], matrix[5][5], index = 0, sum = 0;
    while(!in.eof() && in.read((char*)&tmp, sizeof(tmp)))
        count++;
    in.clear(); // Г±ГЎГ°Г*ñûâГ*ГҐГ¬ ГґГ«Г*ГЈГЁ
    in.seekg(0, std::ios::beg);
    for(int i=0; i < count && in.read((char*)&tmp, sizeof(tmp)); i++)
        if(i >= count - 25) arr[index++] = tmp;
    for (int i=0; i < 25; i++)
        matrix[i % 5][i / 5] = arr[i];
    // âûâîäèì Г¬Г*òðèöó Г*Г* ГЅГЄГ°Г*Г*
    for (int i=0; i < 5; i++)
    {
        for (int j=0; j < 5; j++)
        {
            std::cout<< matrix[i][j]<< " ";
            if (i + j > 2 * i) sum+= matrix[i][j];
        }
        std::cout<< std::endl;
    }
    std::cout<< sum;
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2012, 20:02     В бинарном файле содержатся числа. Сформировать квадратную матрицу...
Еще ссылки по теме:

Сформировать квадратную матрицу C++
Сформировать квадратную матрицу C++
C++ Сформировать и распечатать квадратную матрицу
C++ Сформировать квадратную матрицу
Сформировать квадратную матрицу порядка n C++

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

Или воспользуйтесь поиском по форуму:
CiLbBePMeH
 Аватар для CiLbBePMeH
1 / 1 / 0
Регистрация: 17.05.2012
Сообщений: 17
17.05.2012, 20:02  [ТС]     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #7
Я сделал ввод в бинарный файл,но он забивает массив другими(левыми числами) похоже из памяти.
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
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <windows.h>
 
int main()
{ FILE *f;
 int k=1, i=0;
 float a, A[5][5];
 srand((unsigned)time(NULL));
 SetConsoleOutputCP(1251);
 SetConsoleCP(1251);
 
 f=fopen("matrix.bin", "wb");
 while(k!=0)
      {
      a=rand()%5+25;
      fwrite(&a, sizeof(float), 1, f);
      i++;
      printf("ÄîáГ*âëåГ*Г® Г§Г*Г*Г·ГҐГ*ГЁГҐ %.1f\n", a);
      printf("Г‚ ГґГ*éëå Г*Г*õîäèòüñÿ %d Г§Г*Г*Г·ГҐГ*ГЁГ©. ÄîáГ*ГўГЁГІГј ГҐГ№Вё Г§Г*Г*Г·ГҐГ*ГЁГї? 1 - Г¤Г*, 0 - Г*ГҐГІ\n", i);    
      scanf("%d", &k);
      }
 fclose(f);
    std::ifstream in("matrix.txt", std::ios::binary);
    std::ifstream iz("matrix.txt", std::ios::binary);
    //if (!in) return 1;
    int count = 0, tmp, arr[25],  index = 0, sum = 0;
    while(!in.eof() && in.read((char*)&tmp, sizeof(tmp)))
        count++;
    in.clear(); // Г±ГЎГ°Г*ñûâГ*ГҐГ¬ ГґГ«Г*ГЈГЁ
    in.seekg(0, std::ios::beg);
    for(int i=0; i < count && in.read((char*)&tmp, sizeof(tmp)); i++)
        if(i >= count - 25) arr[index++] = tmp;
    for (int i=0; i < 25; i++)
        A[i % 5][i / 5] = arr[i];
    // âûâîäèì Г¬Г*òðèöó Г*Г* ГЅГЄГ°Г*Г*
    for (int i=0; i < 5; i++)
    {
        for (int j=0; j < 5; j++)
        {
            std::cout<< A[i][j]<< " ";
            if (i + j > 2 * i) sum+= A[i][j];
        }
        std::cout<< std::endl;
    }
    std::cout<< sum;
    
     system("pause");
}
Yandex
Объявления
17.05.2012, 20:02     В бинарном файле содержатся числа. Сформировать квадратную матрицу...
Ответ Создать тему
Опции темы

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