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

Комментарии к программе - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сформировать последовательность из элементов матрицы http://www.cyberforum.ru/cpp-beginners/thread413552.html
Cоставить программу заданной обработки матрицы целых чисел. В процессе обработки использовать перестановки элементов внутри массива, не создавая новых массивов. Заполнение исходного массива организовать с помощью генератора случайных чисел. Исходный и обработанный массив выводить на экран. Во всех вариантах работать с ЗАДАНОЙ матрицей, не создавая дополнительных массивов и матриц (кроме...
C++ Дан массив из 10 значений, вывести числа в порятке убывания Дан массив из 10 значений, он представляет собой рандомные числа, например 3,2,5,9,1,... Сделать сортировку чисел по убыванию. В программе использовать классы. http://www.cyberforum.ru/cpp-beginners/thread413549.html
C++ Какие буквы встречаются чаще
Помогите решить задачи. Ни чего не получается. Дана строка. состоящая из маленьких латинских букв и пробелов, не более 100 символов. Определить. какие буквы встречается в тексте наиболее часто. B выходной файл необходимо записать самые часто встречающиеся буквы без пробелов в алфавитном порядке. Другая задача. Имеется 3 вазы: две круглые и одна квадратная. Требуется определить можно ли...
Сформировать из cтолбцов матрицы В матрицу С, в которой столбцы C++
Сформировать из cтолбцов матрицы В матрицу С, в которой столбцы расположены в порядке убывания модулей сумм их элементов. в матрице С найти сумму элементов строк с четными номерами, содержащих хотя бы один нулевой элемент. помогите пожалуйста Добавлено через 4 часа 13 минут помогите пожалуйста
C++ Алгоритм реализуемый с помощью вложенных циклов типа ПОКА http://www.cyberforum.ru/cpp-beginners/thread413520.html
Очень прошу помочь решить задачу. Брату задали 6 задач, 5 из них я написал, а вот 6 никак не могу.. Текст задания: Выберите три различные точки из заданного множества точек на плоскости так, чтобы внутри треугольника с вершинами в выбранных точках лежала ровно одна точка. P.S. Написать не могу не из за ошибок в коде, а в принципе не понимаю что требуется. Раздел в задачнике называется как...
C++ Метод Гира 2 порядка Здравствуйте всем, нужна помощь, нужно написать программу которая бы всё это высчитавала и если есть такая возможность формулу показать... а то я не совсем понимаю, что да как т.к. в и-нете не могу найти ничего похожего... Заранее спасибо подробнее

Показать сообщение отдельно
krexx
-8 / 0 / 0
Регистрация: 23.01.2011
Сообщений: 52
23.12.2011, 00:56  [ТС]     Комментарии к программе
greeezz, Спасибо большое, но меня попросили написать комментарии именно к этой задаче, которая находится в этой теме!

Добавлено через 1 минуту
Да, и в этой программе похоже не задействованы функции.
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
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
int main() {
 
        const int size = 10;
        int myArray[size];
        bool err = false;
        int x; // для сдвига массива впроаво
        int newSize; // пользователь может ввести меньше чем SIZE цифр
        int lastNegativIndex = -1; // у массива не бывает отрицательных индексов.
                                                           // поэтому если значение этой переменной
                                                           // останется равное -1 то отрицательных элементоа нет
 
        cout << "Please enter " << size << " digits separated by space\n>";
 
        //читаем цифры предоставленные пользователем и сразу проверяем есть ли отрицательные.
        //если есть то сохраняем индекс последнего встретившегося отрицательного элемента
        //выполнения цикла происходит пока не достигнут предел массива или не достигнут конец строки
        for (int i = 0; i < size && cin.peek() != '\n'; ++i) {
                //если от пользователя получен символ не являющийся целым числом то выходим из цикла
                //и сообщаем пользователю об ошибке
                if (!(cin >> myArray[i])) {
                        err = true;
                        break;
                }
                if (myArray[i] < 0) {
                        lastNegativIndex = i;
                }
                newSize = i + 1;
        }
        if (err) {
                cout << "Provided number is incorrect" << endl;
        } else {
                //если найден отрицательный элемент
                if (lastNegativIndex > -1) {
                        cout << "Last negative element is: " << myArray[lastNegativIndex] << endl;
                        //удаляем его смещая все элемены справа от него на 1 в лево
                        //на место последнего записываем 0
                        for (int i = lastNegativIndex; i < newSize; ++i) {
                                if (i == newSize - 1) {
                                        myArray[i] = 0;
                                } else {
                                        myArray[i] = myArray[i + 1];
                                }
                        }
                } else {
                        //выполняем смещение всех элементов массива в право на Х
                        //сдвиг проще выполнять начиная с крайнего правого элемента
                        cout << "Please provide the offset value ";
                        if (cin >> x && x > 0) {
                                for (int i = newSize - 1; i >= 0; --i) {
                                        if (i < x) {
                                                myArray[i] = 0;
                                        } else {
                                                myArray[i] = myArray[i - x];
                                        }
                                }
                        }
                }
                //печатаем результат
                for (int i = 0; i < newSize; ++i) {
                        cout << myArray[i] << " ";
                }
        }
 
        return 0;
}
Добавлено через 21 минуту
Ребята очень срочно нужны комментарии к этой программе!
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
void out(int * a, int n) {
 
        for (int i=0; i<n; i++)
                std::cout << a[i] << ' ';
 
        std::cout << '\n';
 
}
 
void shiftR(int * a, int n, int v) {
 
        int * buf = new int[v];
 
        memmove(buf,a+n-v,v*sizeof(int));
 
        memmove(a+v,a,(n-v)*sizeof(int));
 
        memmove(a,buf,v*sizeof(int));
 
        delete[] buf;
 
}
 
void delPos(int * a, int n, int pos) {
 
        if (pos!=n-1)
                memmove(a+pos,a+pos+1,(n-pos-1)*sizeof(int));
 
        a[n-1]=0;
 
}
 
int retLastNegPos(int * a, int n) {
        for (int i=n-1; i>=0; i--)
                if (a[i]<0) return i;
 
        return -1;
}
 
int main() {
 
        int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8}; // -4,-9,4,5,4,-4,5,3 };
        int size  = sizeof(arr) / sizeof(arr[0]);
 
        int p;
 
        out(arr,size);
 
        if ((p=retLastNegPos(arr,size))!=-1)
                delPos(arr,size,p);
        else
                shiftR(arr,size,1);
 
        out(arr,size);
 
 
 
        getchar();
        return 0;
}
Заранее спасибо!

 Комментарий модератора 
2.14. Чтобы "поднять" тему в разделе и поиске по форуму, используйте осмысленные сообщения, например "Тема/проблема/задача актуальна". Если вы чего-то достигли в решении проблемы на этот момент, сообщите об этом.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru