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

Шаблонные функции и указатели на функции - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Морской Бой http://www.cyberforum.ru/cpp-beginners/thread557844.html
прошу в помощи написания этой игры ,спасибо
C++ Надо написать программу со структурой.Помогите пожалуйсто Разработать программу, предусмотрев в ней: • определение структуры (структур); • использование в структуре (при необходимости) числовых или символьных динамических массивов , включив в данном случае в структуру размерности массивов в качестве её полей; • формирование динамического массива структур ; • функции для ввода, вывода массива структур; • в зависимости от варианта задания одну или... http://www.cyberforum.ru/cpp-beginners/thread557830.html
C++ База_данных_(С++)
Разработка базы данных, куда можно добавлять,удалять записи. Данные хранятся во внешнем текстовом файле (file1.txt и file2.txt); Условие: Дан файл, содержащий данные о телефонных заказах. Каждая запись содержит дату заказа, город и длительность переговоров. - отсеять города, с которыми количество преговоров было максимально и минимально (Нахождение max и min); Внизу некое...
C++ Шифрование любого файла методом XOR
Подскажите пожалуйста, я никак не могу понять, как сделать так, чтобы зашифровать файл методом XOR по ключу, который вводиться с клавиатуры. Но суть в том что мне его нужно после того как я подключил этот файл, раздать его по потокам для MPI. и через lseek(), или fseek() считывать инфу оттуда для каждого потока отдельно. НО я не могу понять как. кто знаком с MPI и таким шифрованием,...
C++ рекурсия_(фрактал) http://www.cyberforum.ru/cpp-beginners/thread557813.html
помогите пожалуйста с рисунком, никак не могу вразумить, с чего начать, как писать эти фракталы...
C++ Вывести все товары, расположив их в порядке возрастания цены. Предметная область – магазин. Объект – товар. Данные об объекте:  наименование;  категория изделия (мясное, молочное, кондитерское и т.д.);  дата изготовления;  срок годности;  цена. Функции: Вывести все товары, расположив их в порядке возрастания цены. Товары с одинаковой ценой отсортировать по алфавиту по наименованию. подробнее

Показать сообщение отдельно
jvov
1 / 1 / 0
Регистрация: 28.09.2011
Сообщений: 113

Шаблонные функции и указатели на функции - C++

25.04.2012, 17:54. Просмотров 812. Ответов 2
Метки (Все метки)

Помогите доделать и исправить...
Задание:
1. Создать структуру Прямоугольник, с полями Высота и Ширина. Создать массив объектов типа Прямоугольник из 10
элементов и иницилизировать его случайными числами в диапазоне (1,10). Вывести значение на экран. Отсортировать
массив стандартной функцией qsort (отдельно по ширине, по высоте и по площади прямоугольника). Для этого потребуется
написать три разные функции сравнения двух элементов типа Прямоугольник, каждая из которых имеет свое имя и соответсвует
следующему прототипу:
int имя_функции(const void *el1, const void *el2);


вот, что я написал
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
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include <string>
 
#define ARR_SIZE 10
 
struct rectangle  
{
    unsigned int height;
    unsigned int width;
 
    bool operator < (const Rectangle &sg) // bool vozvras4aemyj tip &sg - ssylka
    {
        return (this->width < sg.width); 
    }
};
 
int height_comparator(const void *el1, const void *el2) // dva argumenta ne znaem kakie 
{
    rectangle *r1 = (rectangle *)el1; // ukazatelj na rectangle = k obwemu slu4aju
    rectangle *r2 = (rectangle *)el2; 
    if(r1->height < r2->height)     // sravnievaem goda, vozras4aem komparatorom int
    {
        return -1;              // < to -1   >to 1     =to 0
    }
    else if(r1->height > r2->height)
    {
        return 1;
    }
    return 0;
};
 
int width_comparator(const void *el1, const void *el2) 
{
    rectangle *r1 = (rectangle *)el1; 
    rectangle *r2 = (rectangle *)el2; 
    if(r1->width < r2->width)       
    {
        return -1;              
    }
    else if(r1->width > r2->width)
    {
        return 1;
    }
    return 0;
};
 
int area_comparator(const void *el1, const void *el2)  
{
    rectangle *r1 = (rectangle *)el1; 
    rectangle *r2 = (rectangle *)el2; 
    
    
    if(r1->width < r2->width)       
    {
        return -1;              
    }
    else if(r1->width > r2->width)
    {
        return 1;
    }
    return 0;
};
 
 
 
 
 
void rectangle_singleout(rectangle *item) // item - ukazatelj , funkcija dlja vyvoda (kak vyvoditj)
{
    std::cout << "Height: " << item->height << std::endl;
    std::cout << "Width: " << item->width << std::endl;
    std::cout << std::endl;
};
 
void rectangle_print(rectangle *arr) // pe4atj vseh elementov massvia rectangle        (chto vyvoditj)
{ 
    for (int i = 0; i < ARR_SIZE; i++)
    {
        rectangle_singleout(&arr[i]); // aress i-togo elementa massiva
    }
    std::cout << "-----------------------------------------------" << std::endl;
    std::cout << std::endl;
};
 
 
void rectangle_fill(Person *arr)  // inicializacija , 10 raz shirina, visota ... zapolnenije strukt Rectangle 10 sluch chislami 1-10
{
    for (int i = 0; i < ARR_SIZE; i++)
    {
        std::cout << "[" << i << "]: " << std::endl;
        std::cout << "Height: "; std::cin >> arr[i].height = rand() % 10 + 1; std::cout << std::endl;
        std::cout << "Width: "; std::cin >> arr[i].width = rand() % 10 + 1; std::cout << std::endl;
    }
};
 
 
rectangle_fill(&rectangle[0]); // zapolnenie massiva , adress nulevogo elementa
rectangle_print(&rectangle[0]); // pe4atj massiva
qsort((void *)rectangle, ARR_SIZE, sizeof(rectangle[0]), height_comparator); // sortirovka po visote
rectangle_print(&rectangle[0]); //pechatj massiva                                    
 
qsort((void *)rectangle, ARR_SIZE, sizeof(rectangle[0]), width_comparator); // sortirovka po shirine
rectangle_print(&rectangle[0]); //pechatj massiva
Добавлено через 11 часов 8 минут
Подскажите, как сделать сортировку по площади в рамках задания. Я понимаю, как считается площадь прямоугольника, но вот как все это реализовать не очень понимаю?

Добавлено через 5 часов 28 минут
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 08:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru