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

Заполнить матрицу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ простые числа http://www.cyberforum.ru/cpp-beginners/thread137213.html
дана задача: вывести простые числа в диапазоне от 0 до 100000
C++ template+read only Доброго времени суток, уважаемые форумчане! Суть проблемы такая: Есть некий класс: template<typename T> class Tree { public: A(); void funk(A<T> *ptr); private: bool processing(A<T> *ptr) const; http://www.cyberforum.ru/cpp-beginners/thread137169.html
Не получается лабораторная.. C++
вообщем саму прогу я сделал, но не до конца, си++ не нравится функция, пишет какую то ошибку, не могу понять в чем проблема.. код: #include <iostream.h> #include <string.h> struct kadry { char rod; char mesto; union { char str;
C++ Программа для работы с картотекой абонентов.
Попытался написать программу на С++, но никак не получается Задание: На междугородной телефонной станции картотека абонентов, содержащая сведения о телефонах и их владельцах, организована как линейный список. Составить программу, которая: обеспечивает начальное формирование картотеки; производит вывод всей картотеки; вводит номер телефона и время разговора;
C++ Матрицы в файлах http://www.cyberforum.ru/cpp-beginners/thread137152.html
Добрый день! Изучаю дальше файлы, и есть парочка задач, но в них уже идёт работа с матрицей внутри файла: Задача 1. Даны два целых числа I, J и файл вещественных чисел, содержащий элементы прямоугольной матрицы (по строкам), причем первый элемент файла содержит количество столбцов матрицы. Вывести элемент матрицы, расположенный в I-й строке и J-м столбце (строки и столбцы нумеруются от 1)....
C++ Запись в словарь! Как мне записать слово в словарь причем сразу в определенное место? Например вот у меня в файле уже есть записанные строчки а в как мне вставить б между а и в ? подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,662
31.05.2010, 04:30     Заполнить матрицу
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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#include<iostream>
#include<iomanip>
 
const size_t m = 9;//Фиксированное значение.
const size_t n = 10;//Может быть любым >= 5.
 
int matrix[m][n];
 
struct T_point
{
    size_t i_;
    size_t j_;
    T_point
        (
            size_t  i = 0,
            size_t  j = 0
        ) : i_(i), j_(j)
    {}
 
    bool operator== (T_point p)
    {
        return i_ == p.i_ && j_ == p.j_;
    }
 
    bool operator!= (T_point p)
    {
        return !(*this == p);
    }
};
 
size_t  val = 1;
 
void fill_line
    (
        T_point&  p_beg,
        int       i_shift,
        int       j_shift
    )
{ 
    T_point  p_end(p_beg.i_ + i_shift, p_beg.j_ + j_shift);
    int i_step = i_shift ? i_shift / abs(i_shift) : 0; 
    int j_step = j_shift ? j_shift / abs(j_shift) : 0;
    
    for( ; p_beg != p_end; p_beg.i_ += i_step, p_beg.j_ += j_step, ++val)
    {
        matrix[p_beg.i_][p_beg.j_] = val;        
        matrix[m - 1 - p_beg.i_][n - 1 - p_beg.j_] = m * n + 1 - val;        
    }
}
 
void  fill_line_vniz
    (
        T_point&  p_beg,        
        int       vniz_shift
    )
 
{
    fill_line(p_beg, vniz_shift, 0);    
}
 
void fill_line_vverx
    (
        T_point&  p_beg,        
        int       vverx_shift
    )
 
{
    fill_line(p_beg, -vverx_shift, 0);    
}
 
void fill_line_vpravo
    (
        T_point&  p_beg,        
        int       vpravo_shift
    )
 
{
    fill_line(p_beg, 0, vpravo_shift);    
}
 
void fill_line_vlevo
    (
        T_point&  p_beg,        
        int       vlevo_shift
    )
 
{
    fill_line(p_beg, 0, -vlevo_shift);    
}
 
void fill_oborot_vlevo
    (
        T_point&  p_beg,        
        size_t&   vert_abs_shift,
        size_t&   horis_abs_shift
    )
{    
    fill_line_vpravo (p_beg, horis_abs_shift++);
    fill_line_vverx  (p_beg, vert_abs_shift++);
    fill_line_vlevo  (p_beg, horis_abs_shift++);
    fill_line_vniz   (p_beg, vert_abs_shift++);
}
 
void fill_matrix()
{
    T_point  p_beg(2, 2);
    size_t   vert_abs_shift   = 1;
    size_t   horis_abs_shift  = n - 4;
    
    for(size_t oborot_count = 1; oborot_count <= 2; ++oborot_count)
    {
        fill_oborot_vlevo(p_beg, vert_abs_shift, horis_abs_shift);
    }    
    fill_line_vpravo(p_beg, (n + 1) / 2);
}
 
void print_matrix()
{
    for(size_t i = 0; i < m; ++i)
    {
        for(size_t j = 0; j < n; ++j)
        {            
            std::cout << std::setw(5) << matrix[i][j];
        }
        std::cout << std::endl;
    }
}
 
int main()
{
    fill_matrix();
    print_matrix();
    return 0;
}
 
Текущее время: 09:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru