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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
#1

Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей - C++

27.12.2013, 00:00. Просмотров 407. Ответов 6
Метки нет (Все метки)

Здравствуйте, уважаемые программисты. Нужно срочно сдавать лабораторные. Очень благодарен за любую помощь.



Методические указания

Ввод и вывод массива, а также три пункта задания оформить в виде функций, глобальные переменные не использовать. Размерности массивов вводить в основной функции. Первый массив описать статически (размерность задать константой), второй динамически Все результаты данных функций выводятся в основной функции.

Задание

Ввести и обработать два одномерных массива, содержащие соответственно п целых и m вещественных компонентов. Вычислить:

1) количество элементов массива, лежащих в диапазоне от А до В;

2) сумму элементов массива, расположенных после максимального элемента.

3) Упорядочить элементы массива по убыванию модулей элементов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2013, 00:00     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей
Посмотрите здесь:

Упорядочить элементы векторов по убыванию модулей элементов - C++
Задайте два вектора А(n) и B(m). выполните задания: 1)найдите вектора С(n+m) с элементов векторо А и Б, сначала парных в порядке...

Упорядочить элементы массива по убыванию модулей элементов - C++
в 1мерном массиве состоящем из n эл. вычислить: 1 колич эл массива лежащих от А до В 2 сумму эл массива расположенных после макс...

Упорядочить столбцы матрицы по убыванию модулей элементов в столбцах - C++
Дана действительная матрица. Упорядочить ее столбцы по убыванию модулей элементов в столбцах

Отсортировать массивы пузырьковой сортировкой по убыванию модулей элементов - C++
Помогите пожалуйста с решением данной задачи . Буду очень признателен . Перепишите текст в сообщение!

Массивы. Найти минимальный по модулю элемент массива. Найти сумму модулей элементов после первого нуля - C++
народ,траблы,никак не могу понять массивы,подскажите пожалуйста /*1. Найти минимальный по модулю элемент массива. 2. Найти сумму...

Одномерные массивы: вычислить сумму модулей элементов - C++
Здравствуйте, дорогие форумчане. Так как модераторы закрыли мою прошлую тему из - за не правильности в оформлении, я создаю новую тему. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 01:12     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей #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
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>
using namespace std;
void read(int* arr,float* arr1,int count1,int count2)
{
    for (int i=0;i<count1;i++)
        cin>>arr[i];
    for(int i =0;i<count2;i++)
        cin>>arr1[i];
}
void write(int* arr,float* arr1,int count1,int count2)
{
    for (int i=0;i<count1;i++)
        cout<<arr[i]<<"; ";
    cout<<'\n';
    for(int i =0;i<count2;i++)
        cout<<arr1[i]<<"; ";
    cout<<'\n';
}
float* toFloat(int* arr,int count)
{
    float* a = new float[count];
    for (int i=0;i<count;i++)
        a[i] = (float)arr[i];
    return a;
}
int diaposon(float a, float b,float* arr,int count)
{
    int rez = 0;
    for (int i=0;i<count;i++)
        if (arr[i]>a&arr[i]<b)
            rez++;
    return rez;
}
int diaposon(float a, float b,int* arr,int count)
{
    return diaposon(a,b,toFloat(arr,count),count);
}
float afterMax(float* arr,int count)
{
    float rez = 0;
    int max = 0;
    for (int i = 1;i<count;i++)
        if(arr[i]>arr[max]) max = i;
    for (int i = max+1;i<count;i++)
        rez+=arr[i];
    return rez;
}
float afterMax(int* arr,int count)
{
    return afterMax(toFloat(arr,count),count);
}
void absSort(float *arr,int count)
{
    float t;
    for (int i=0; i+1<count;i++)
    {
        if (abs(arr[i])<abs(arr[i+1])) 
        {
            t = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = t;
            if (i<=0) i=-1; else i-=2;
        }
    }
}
void absSort(int *arr,int count)
{
    int t;
    for (int i=0; i+1<count;i++)
    {
        if (abs(arr[i])<abs(arr[i+1])) 
        {
            t = arr[i];
            arr[i] = arr[i+1];
            arr[i+1] = t;
            if (i<=0) i=-1; else i-=2;
        }
    }
}
int main()
{
    const int count1 = 3;   
 
    int arr1[count1];
    float *arr2 = new float [count1];
 
    read(arr1,arr2,count1,count1);
 
    cout<<"After max. (int)"<<(int)afterMax(arr1,count1)<<'\n';
    cout<<"After max. (float)"<<afterMax(arr2,count1)<<'\n';
 
    float a,b;
    cout<<"in a,b for interval";
    cin>>a>>b;
 
    cout<<"on interval (int)"<<diaposon(a,b,arr1,count1)<<'\n';
    cout<<"on interval (float)"<<diaposon(a,b,arr2,count1)<<'\n';
 
    absSort(arr1,count1);
    absSort(arr2,count1);
    write(arr1,arr2,count1,count1);
 
    system("pause");
 
}
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
27.12.2013, 10:59  [ТС]     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей #3
Большое спасибо за помощь, но работает неправильно
Миниатюры
Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей  
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 21:44     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей #4
Что именно неправильно работает, и как вообще ввод, вывод должен быть оформлен? Должна длина массива читаться, или задается в тексте? Если неправильно вычисляет количество значений в диапазоне, попробуйте включить крайние точки (30 строка), я их исключил. В сортировке по убыванию модулей и сумме после максимального ошибок не вижу.
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
28.12.2013, 20:04  [ТС]     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей #5
Цитата Сообщение от ArtyrSvAn Посмотреть сообщение
Что именно неправильно работает, и как вообще ввод, вывод должен быть оформлен? Должна длина массива читаться, или задается в тексте? Если неправильно вычисляет количество значений в диапазоне, попробуйте включить крайние точки (30 строка), я их исключил. В сортировке по убыванию модулей и сумме после максимального ошибок не вижу.
Про ввод и вывод в задании ничего не сказано, поэтому думаю, что здесь это не особо важно. А вот про точки крайние понять не могу. И в сортировке меня смущает, что выводиться в две строки
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
30.12.2013, 02:12     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей #6
Выводится результат для каждого из массивов, а массива всего два, потому и строки две.
Крайние точки - поменяйте > и < на >= и <=, если в задании сказано, что возвращаемое множество, количество элементов которого мы считаем и выводим, должно включать a и b при наличии их в массиве.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 09:56     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей
Еще ссылки по теме:

Вычислить сумму ненулевых элементов, кратных 5; упорядочить элементы второго столбца по убыванию - C++
Помогите написать 2 функции в массиве,пожалуйста,очень нужно для экзамена!))) -вычислить сумму ненулевых элементов, кратных числу 5; ...

Элементы массива по убыванию модулей упорядочить методом выбора! - C++
Дан целочисленный массив A(n) с элементами, сгенерированными случайными числами в диапазоне (-20, 20). Требуется: Упорядочить методом...

Определить сумму элементов в каждом столбце матрицы, и упорядочить номера столбцов по убыванию сумм - C++
Дана квадратная матрица размером n x n, содержащая вещест-венные числа. Определить сумму элементов в каждом столбце мат-рицы и упорядочить...

Вычислить сумму элементов вещественного массива, находящихся до минимального и после максимального элементов - C++
Помогите пожалуйста доделать программу по условию : Вычислить сумму элементов вещественного массива, находящихся до минимального и после...


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

Или воспользуйтесь поиском по форуму:
MrGluck
Модератор
Эксперт CЭксперт С++
7162 / 4328 / 632
Регистрация: 29.11.2010
Сообщений: 11,750
30.12.2013, 09:56     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей #7
Цитата Сообщение от avatar1870 Посмотреть сообщение
Размерности массивов вводить в основной функции.
Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива
http://ru.wikipedia.org/wiki/Массив_(программирование)
А вы точно уверены?
Yandex
Объявления
30.12.2013, 09:56     Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru