Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 12.04.2019
Сообщений: 1

Переписать программу с использованием ООП

18.06.2019, 02:18. Показов 1041. Ответов 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
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
#include <iostream>
#include <conio.h>
#include <cmath>
#include <stdio.h>
#include <ctime>
using namespace std;
int* random(int *a, int n)
{
    for (int i = 0; i < n; i++)
    {
        a[i] = 100 - rand() % 200;
 
    }
    return a;
}
int* kv(int *a, int n, int l, int h) {
    for (int i = 0; i < n; i++) {//1
        if (a[i] >= l && a[i] <= h) {
            a[i] = pow(a[i], 2);
        }
        else {
            a[i] = 0;
        }
        printf("\n\t\tA[%d] = %d\n", i, a[i]);
    }//1
    return a;
}
 
void printmass(int *a, int n)
{
    for (int i = 0; i < n; i++)
    {
        printf("\n\t\tA[%d] = %d\n", i, a[i]);
    }
}
void sort(int *a, int n) {
    int temp; // временная переменная для обмена элементов местами
    // Сортировка массива пузырьком
    for (int y = 0; y < n - 1; y++) {//2
        for (int j = 0; j < n - y - 1; j++) {
            if (a[j] > a[j + 1]) {
                // меняем элементы местами
                temp = a[j];
                a[j] = a[j + 1];
                a[j + 1] = temp;
            }
        }
    }//2
}
int* medin(int *a, int n) {
    if (n % 2 == 0) {
        printf("\tмедиана преобразованного массива: %i\t%i", a[(n / 2) - 1], a[n / 2]);
    }
    else {
        printf("\tмедиана преобразованного массива: %i", a[n / 2]);
    }
    return a;
}
int* sred_znch(int *a, int n, int sum, int sred) {
    for (int i = 0; i < n; i++)
    {
        sum = sum + a[i];
    }
    sred = sum / n;
 
    printf("\n\tсреднее преобразованного массива: %i", sred);
    return a;
}
int main()
{//3
    setlocale(0, "Rus");
    int sum = 0, sred = 0, l = 0, h = 0;
    srand(time(0));
    int a[15], n = 0;
 
    printf("\n\tВведите нижний порог интервала:");
    cin >> l;
    while (1) {
        printf("\n\tВведите верхний порог интервала не меньше нижнего:");
        cin >> h;
        if (h > l) break; else printf("\tВведено не верно, повторите ввод\n");
    }
    while (2) {
        printf("\n\tКол-во элементов массива не больше 15 = ");
        cin >> n;
        if (n <= 15 && n > 1) break; else printf("\tВведено не верно , повторите ввод\n");
 
    }
    printf("\n\t      исходный массив\n ");
    random(a, n);
    printmass(a, n);
    printf("\n\t      преобразованный массив\n");
    kv(a, n, l, h);
    sort(a, n);
    printf("\n\t      отсортированный преобразованный массив\n");
    printmass(a, n);
    medin(a, n);
    sred_znch(a, n, sum, sred);
    _getch();
    return 0;
}
Попросили эту прогу переделать на ООП
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
#define _CRT_SECURE_NO_WARNINGS 
#include <iostream>
#include <conio.h>
#include <cmath>
#include <stdio.h> 
#include <math.h> 
#include <iomanip> 
 
 
using namespace std;
class massiv {
private:
    int kol;
    float min, max;
    float sred , sum ;
public:
    void set_kol(int n)
    {
        kol = n;
    }
    void set_min_max(int x1, int x2)
    {
        min = x1;
        max = x2;
    }
    void vvod(float *arr, int n) {
            for (int i = 0; i < n; i++)
            {
            
                printf("a[%d] = ", i);
            
                cin>> arr[i];
            }
            
    }
    
    void sredznach( float *arr, int n)
    {
        for (int i = 0; i < n; i++)
        {
            sum = sum + arr[i];
        }
        sred = sum / n;
 
        printf("\n\tсреднее преобразованного массива: %d", sred);
    }
    void medin(float *arr, int n)
    {
        if (n % 2 == 0) {
            printf("\tмедиана преобразованного массива: %d", (arr[(n / 2) - 1]+arr[n / 2])/2);
        }
        else {
            printf("\tмедиана преобразованного массива: %d", arr[n / 2]);
        }
    }
    void sort(float *arr, int n) 
    {
        int temp; 
        for (int y = 0; y < n - 1; y++) 
        {
            for (int j = 0; j < n - y - 1; j++) 
            {
                if (arr[j] > arr[j + 1]) 
                {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
    }
    void printmass(float *arr, int n)
    {
        for (int i = 0; i < n; i++)
        {
            printf("\n\t\tA[%d] = %d\n", i, arr[i]);
        }
    }
    float* kv(float *arr, int n, float x1, float x2) {
        for (int i = 0; i < n; i++) {
            if (arr[i] >= min && arr[i] <= max) {
                arr[i] = pow(arr[i], 2);
            }
            else {
                arr[i] = 0;
            }
            
        }
        return arr;
    }
};
 
int main() {
    setlocale(LC_ALL, "Russian");
    int n;
    float x1, x2;
    
 
    while (2) {
        printf("\n\tКол-во элементов массива не больше 15 = ");
        cin >> n;
        if (n <= 15 && n > 1) break; else printf("\tВведено не верно , повторите ввод\n");
 
    }
    massiv A;
    float *a;
    a = new float[n];
    A.set_kol(n);
    A.vvod(a,n);
    printf("Введи нижний порог интервала:");
    scanf("%f", &x1);
    printf("Введи верхний порог интервала:");
    scanf("%f", &x2);
    printf("\n\tисходный массив\n ");
    
    printf("\n\tпреобразованный массив\n");
    A.kv(a,n,x1,x2);
    A.printmass(a, n);
    A.sort(a,n);
    printf("\n\tотсортированный преобразованный массив\n");
    A.printmass(a,n);
    A.medin(a,n);
    A.sredznach(a,n);
    _getch();
    return 0;
}
НЕ работает
подскажите в чем ошибка, не могу врубиться
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.06.2019, 02:18
Ответы с готовыми решениями:

Средства для проектирования больших проектов с использованием ООП
Всем привет! Когда пишешь небольшую программу, все получается уместить в голове и ничего проектировать не нужно. Сейчас впервые я пытаюсь...

Переписать реализацию стека с использованием ООП
Найти элемент с заданным ключом в стеке . У меня написана программа эта через структуру . Нужно переписать её через классы при этом...

Переписать программу по всем канонам ООП
Помогите пожалуйста записать эту программу с помощю ооп на паскале uses graph, crt; var x, y, gd, gm, : integer; ...

1
1498 / 1213 / 821
Регистрация: 29.02.2016
Сообщений: 3,630
18.06.2019, 11:30
в классе не объявлен массив, нет конструктора и т.д.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class massiv {
private:
    float *arr;
    int N;
    float min, max;
    float sred, sum;
public:
    massiv(int n) //конструктор с одним параметром
    {
        N = n;
        arr = new float[N];
    
    }
...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.06.2019, 11:30
Помогаю со студенческими работами здесь

Создать программу-автопарк с использованием ООП
Здравствуйте, помогите пожалуйста. Нужно решить ооп на С#. Я начинающий программист и есть кое какие трудности с этим( мало опыта( Буду...

Написать программу с использованием 3 принципов ООП
Здравствуйте! нужно написать программу с использованием 3 принципов ООП в java. помогите,пожалуйста!!!

Написать программу вычисления 6*x^3+4*y+2 с использованием ООП и архитектуры
Help me, plz Имеется некое арифметическое выражения вида: 6*x^3+4*y+2 1. Разработать архитектуру с применением принципов и...

Разработать программу для учета сотрудников с использованием средств ООП
Всем привет от новичка. Мне отправили 2 тестовых задания по вакансии стажер-программист C#. 1-е я сделал консольное, но без применения...

Переписать программу с использованием Try Catch
Добрый день! написала вот такую программу Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru