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

как применить assert (запрограммировать суждение)? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Составить рекурсивную функцию вычисления НОД http://www.cyberforum.ru/cpp-beginners/thread684243.html
и еще вопрос Данные натуральные числа п и т; найти НОД (n, т). Составить рекурсивную функцию вычисления НОД, основанную на соотношении НОД (n, m) = HOД (m, r), где r - остаток от деления n на т...
C++ справочник автомобилей класс справочник автомобилей, и классы краз, газель и бмв. Методы добавлениеи удаление автомобилей по названию http://www.cyberforum.ru/cpp-beginners/thread684230.html
Даны файлы чисел F и G . Записать в файл H сначала компоненты файла F, за-тем файла G C++
Помогите сделать програму по файлам: Даны файлы чисел F и G . Записать в файл H сначала компоненты файла F, за-тем файла G с сохранением порядка следования
C++ Менеджер памяти
Доброго времени суток. Столкнулся с такой проблемой... Необходимо написать эмулятор менеджера памяти, т.е. создать какой нибудь динамический массив которой будет нашей оперативкой (32MB), и...
C++ Определить площадь круга и площадь заштрихованных областей http://www.cyberforum.ru/cpp-beginners/thread684208.html
Помогите с ответом, как сделать задачу: Напишите функцию double circle_area(double R) которая узнает площадь круга, . С помощью прогарммки надо узнать площадь закрашеной убласти, запрашивая R1...
C++ Класс Phone Создать класс Phone: Фамилия, Имя, отчество, Адрес, Номер, Время внутригородских разговоров, Время междугородних разговоров. Определить процент внутригородских и междугородних разговоров. Помогите... подробнее

Показать сообщение отдельно
oleksandra
0 / 0 / 0
Регистрация: 26.10.2012
Сообщений: 5

как применить assert (запрограммировать суждение)? - C++

30.10.2012, 14:51. Просмотров 228. Ответов 0
Метки (Все метки)

Приветствую! Задание следующее: выбрать алгоритм сортировки(я выбрала быструю сортировку), отсортировать массив, запрограммировать суждение (что-то связанное с assert) для проверки 1. в отсортированном массиве содержаться только те элементы, которые были в не отсортированном
2. каждый элемент отсортированного массива <= следующего элемента отсортированного массива.
Второе задание - еще пол-беды, сделала. а вот суждение (первое задание ) понятия не имею, как запрограммировать.
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
Код реализации:
#include <iostream>
#include <algorithm>
#include <cassert>
#include "quick_sort.h"
using namespace std;
 
void qsort(int *ar, const int size ){
 
  int i = 0, j = size -1 ;      
  int temp, p; 
  p = ar[size/2];       
  
  do {
    while ( ar[i] < p ) i++;
    while ( ar[j] > p ) j--;
 
    if (i <= j) {
         temp = ar[i]; ar[i] = ar[j]; ar[j] = temp;
        i++; j--;
    }
  } while ( i<=j );
 
  if ( j > 0 ) qsort(ar, j+1);
  if ( size > i ) qsort(ar+i, size-i);
 
  }
 
void check_assertion(int* ar, const int size){
for(int i = 0; i < size-1; i++)
        assert( ar[i] <= ar[i+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
#include <iostream>
#include <time.h>
#include <algorithm>
#include <cassert>
#include "quick_sort.h"
using namespace std;
 
int main(void){
    srand((unsigned) time (0));
    const int size = 7;
    int ar[size] = {0};
 
    for (int i = 0; i< size; i++){
        ar[i] = rand()%100 + 1;
        cout << ar[i] << "\t";
        }
 
    qsort(ar, size);
    check_assertion(ar, size);
    cout << endl;
    for (int i = 0; i< size; i++){
        cout << ar[i] << "\t";
        }
 
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru