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

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

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

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

17.05.2012, 18:05. Просмотров 492. Ответов 6
Метки нет (Все метки)

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

Сформировать матрицу размера M*N, у которого в каждом столбце содержатся все числа из исходного набора - C++
Даны целые положительные числа М и N инабор из М чисел. Сформировать матрицу размера M*N, у которого в каждом столбце содержатся все...

Сформировать матрицу размера M × N, у которой в каждом столбце содержатся все числа из исходного набора - C++
Есть задача Даны целые положительные числа M, N и набор из M чисел. Сформировать матрицу размера M × N, у которой в каждом столбце...

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

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

Сформировать квадратную матрицу - C++
Сформировать квадратную матрицу порядка n по заданному образцу: 1 2 3 … n n n-1 n-2 … 1 1 2 ...

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

Сформировать квадратную матрицу - C++
Сформировать квадратную матрицу порядка n по заданному образцу: 1 2 3 … n-2 n-1 n 2 3 4 … n-1 n 0 ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6998 / 4169 / 594
Регистрация: 29.11.2010
Сообщений: 11,050
17.05.2012, 18:16     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #2
1. Открываешь бинарный файл.
2. Пока не конец файла считаешь количество чисел (N).
3. Снова обходишь файл и начиная с N - 24 до N считываешь эти числа в двумерный массив, размерностью 5x5.
4. Как подсчитать сумму элементов над диагональю спрашивают на форуме каждый день по несколько раз. Посмотрите решения в прошлых темах.
CiLbBePMeH
1 / 1 / 0
Регистрация: 17.05.2012
Сообщений: 17
17.05.2012, 18:21  [ТС]     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #3
А можно продемонстрировать первые 3 пункта?
MrGluck
Модератор
Эксперт CЭксперт С++
6998 / 4169 / 594
Регистрация: 29.11.2010
Сообщений: 11,050
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
1 / 1 / 0
Регистрация: 17.05.2012
Сообщений: 17
17.05.2012, 18:48  [ТС]     В бинарном файле содержатся числа. Сформировать квадратную матрицу... #5
Спасибо))Очень помогли
MrGluck
Модератор
Эксперт CЭксперт С++
6998 / 4169 / 594
Регистрация: 29.11.2010
Сообщений: 11,050
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++
Сформировать и распечатать квадратную матрицу А(10,10) следующего вида: 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 3 0...

Сформировать квадратную матрицу порядка n - C++
Сформировать квадратную матрицу порядка n С++ , cпасибо

Сформировать квадратную матрицу по образцу - C++
Сформувати квадратну матрицю порядку n за заданим зразком: 0 0 0 . 0 0 0 1 0 . 0 0 0 0 2 . 0 0

Сформировать и распечатать квадратную матрицу - C++
Задача такая: Сформировать и распечатать квадратную матрицу А(n;n), так чтобы числа от 1 до n располагались по побочной диагонали. Кое-как...

Сформировать квадратную матрицу по образцу - C++
Здравствуйте..Помогите реализовать программу. Сформировать и распечатать квадратную матрицу A(15,15) следующего вида:


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

Или воспользуйтесь поиском по форуму:
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     В бинарном файле содержатся числа. Сформировать квадратную матрицу...
Ответ Создать тему
Опции темы

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