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

КАК ИСПРАВИТЬ ОШИБКУ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Исключения http://www.cyberforum.ru/cpp-beginners/thread891474.html
Помогите реализовать класс исключения в данном коде. Задание: Реализуемая функция должна генерировать подходящие исключения. Обработку исключений нужно выполнять главной функцией, которая должна демонстрировать обработку всех перехватываемых исключений. Функция обязана выполнять проверку передаваемых параметров и генерировать исключение в случае ошибочных. Можно реализовать функцию со...
C++ отобразить падение шарика по осям X,Y Нужно создать два поля ввода: в первое - альфа, во второе - V0 ( в нулевое). Даны 4 формулы. Нужно нарисовать маленький шарик, и ось Х и У. По формулам отобразить падение шарика, чтобы он двигался( двигается он по перевернутой параболе) V*sin(L) V*cos(L) Х=Vx*t Y=Vy*t-(10*t)/2 http://www.cyberforum.ru/cpp-beginners/thread891473.html
C++ укажите на ошибку в листинге
#include "stdafx.h" #include <iostream> #include <iomanip> using namespace System; void main( ) { cout << "I love"; cout << "\"Algorithmization and programming!\"\n" );
Работа с файлами (считать очередь, вывести на экран, дополнить ее элементами и перезаписать в фай) C++
Есть очередь, записаная в файле. Нужно считать ее, вывести на екран, дополнить ее елементами и перезаписать в файл. Я так делаю, но файл не перезаписывается, а продолжается. Помогите чтоб, содержимое удалялось старое. #include "stdafx.h" #include <fstream> #include <iostream> #define N 15 using namespace std; class situation{ }; template <class T>
C++ ошибка realloc C++ http://www.cyberforum.ru/cpp-beginners/thread891441.html
Как изменить размер выделенной памяти? (например выделено 15 байт, как в C++ увеличить размер выделенной памяти("перераспределить")) в c++ realloc выдает ошибку.
C++ нужно наисать main часть Основное требование – в примере должно быть продемонстрировано использование всех методов класса. В одном из примеров объект конкретизированного класса должен создаваться в динамической памяти. Сам класс template <class T> class Queue { protected: protected: T *list; подробнее

Показать сообщение отдельно
NickПавел
10 / 10 / 0
Регистрация: 07.12.2012
Сообщений: 39
04.06.2013, 23:57     КАК ИСПРАВИТЬ ОШИБКУ
В общем задача такая создать матрицу, рандомно заполнить ее и отсортировать по возрастанию и заполнять матрицу змейкой по диагонали. Все работает но что-то с сортировкой(сортировка вставками). Может кто хорошо в этом понимает и найдет ошибку
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
135
136
137
138
139
140
141
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <ctime>
#include <iomanip>
using namespace std;
void print(int **arr,int n)
{  
for (int ix = 0; ix < n; ix++)
    {
        for (int jx = 0; jx < n; jx++)
            cout << setw(4) << arr[ix][jx] << " ";
        cout << endl;
    }
return;
}
void top(int **arr,int n,int &i,int &j)
{   
    int value = 0;
    for (int diag = 0; diag < n; diag++) // выполняем проход по диагоналям
    {
        if (diag % 2 == 0) // по четным диагоналям
        {
            i = 0; // х-координата первого лемента массива на диагонали - diag
            j = diag; // у-координата элемента массива на диагонали - diag
 
            while (j >= 0) 
            {
                arr[i][j] = value;
                value++;
                i++;     
                j--;  
            }
        }
        else // по нечетным диагоналям
        {
           i = diag; 
           j = 0; 
 
            while (i >= 0) // пока x-координата находится в левой части диагонали
            {
                arr[i][j] = value; // записать значение в массив
                value++;
                i -= 1;  // по горизонтали, смещаемся вправо
                j +=  1; // по вертикали, смещаемся вверх
            }
        }
    } 
for (int diag = 1; diag < n; diag++)
    {
        if (diag % 2 == 0) // по четным диагоналям
        {
            i = n-1; // х-координата первого элемента массива на диагонали - diag
            j = diag;  // у-координата элемента массива на диагонали - diag
 
            while (j <= n-1) // Пока не кончилась диагональ
            {
                arr[i][j] = value;
                value++;
                i--; // по горизонтали, смещаемся влево
                j++; // по вертикали, смещаемся вниз
            }
        }
        else // по не четным диагоналям
        {
            i = diag; // х-координата первого элемента к-ой диагонали
            j = n-1;  // у-координата первого элемента к-ой диагонали
 
            while (i <= n-1) // Пока не кончилась диагональ
            {
                arr[i][j] = value;
                value++;
                i++; // по горизонтали, смещаемся вправо
                j--; // по вертикали, смещаемся вверх
            }
        } // конец if-else
    } return;
 
}
 
void job ()
{
    cout<<"-----------------------------------------------------------------------"<<endl;
    cout<<"******||Лабораторная работа №5 по курсу Основы программирования||******"<<endl;
    cout<<"******||Выполнил студент гр.  :||******"<<endl;
    cout<<"******||Задание: Заполнение матрицы по спирали.                ||******"<<endl;
    cout<<"-----------------------------------------------------------------------\n"<<endl;
    return;
}
void matrix(int **&arr,int n)
{ 
 arr=new int *[n];
 for(int e=0 ;e<n;e++)
     arr[e]= new int [n];
}
void record(int **arr,int n)
{
    srand(time(NULL));
    for (int i=0;i<n;i++)
        for(int j=0;j<n;j++)
            arr[i][j]=rand()%100;
    return;
}
void shortint(int**&arr,int n)
{  for (int k = 0; k < n*n; k++)
    {
        int i,j,i2,j2;
        top(arr,n,i,j);
        int x = arr[i][j];
        int k2 =k;
        top(arr-1,n,i2,j2);
        while(k2 >0 && arr[i2][j2] > x)
        {   top(arr,n,i,j);
            top(arr-1,n,i2,j2);
            arr[i][j] = arr[i2][j2];
            k2--;
        }
top(arr,n,i,j);
        arr[i][j] = x;
 
    }
  return;
}
int main()
{  int n; 
   setlocale(LC_CTYPE, "Russian");
   job(); 
   cout<<"Введите размер матрицы"<<endl;
   cin>>n;
   int **arr;
   matrix(arr,n);
   record(arr,n);
   cout<<"Исходная матрица"<<endl;
   print(arr,n);
 
   cout<<"Отсортированная"<<endl;
   shortint(arr,n);
   print(arr,n);  // вывод масиива на экран
  // delete arr;
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru