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

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

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

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

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

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



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

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

Задание

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

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

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

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

Найти количество элементов массива, лежащих в диапазоне и сумму модулей, после максимального элемента. - C++
Задание 1. Дан массив из N элементов (вещественные числа). Вычислить: 1) количество элементов массива, лежащих в диапазоне от A до B; 2)...

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

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

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

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

В одномерном массиве вычислить количество отрицательных элементов и сумму модулей элементов, расположенных после минимального по модулю элемента - C++
/* В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) количество отриц. элементов массива; 2) сумму модулей...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
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");
 
}
0
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
27.12.2013, 10:59  [ТС] #3
Большое спасибо за помощь, но работает неправильно
0
Миниатюры
Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей  
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 21:44 #4
Что именно неправильно работает, и как вообще ввод, вывод должен быть оформлен? Должна длина массива читаться, или задается в тексте? Если неправильно вычисляет количество значений в диапазоне, попробуйте включить крайние точки (30 строка), я их исключил. В сортировке по убыванию модулей и сумме после максимального ошибок не вижу.
0
avatar1870
2 / 2 / 0
Регистрация: 28.09.2013
Сообщений: 407
28.12.2013, 20:04  [ТС] #5
Цитата Сообщение от ArtyrSvAn Посмотреть сообщение
Что именно неправильно работает, и как вообще ввод, вывод должен быть оформлен? Должна длина массива читаться, или задается в тексте? Если неправильно вычисляет количество значений в диапазоне, попробуйте включить крайние точки (30 строка), я их исключил. В сортировке по убыванию модулей и сумме после максимального ошибок не вижу.
Про ввод и вывод в задании ничего не сказано, поэтому думаю, что здесь это не особо важно. А вот про точки крайние понять не могу. И в сортировке меня смущает, что выводиться в две строки
0
ArtyrSvAn
1 / 1 / 0
Регистрация: 26.12.2013
Сообщений: 13
30.12.2013, 02:12 #6
Выводится результат для каждого из массивов, а массива всего два, потому и строки две.
Крайние точки - поменяйте > и < на >= и <=, если в задании сказано, что возвращаемое множество, количество элементов которого мы считаем и выводим, должно включать a и b при наличии их в массиве.
0
MrGluck
Модератор
Эксперт CЭксперт С++
7239 / 4407 / 642
Регистрация: 29.11.2010
Сообщений: 11,927
30.12.2013, 09:56 #7
Цитата Сообщение от avatar1870 Посмотреть сообщение
Размерности массивов вводить в основной функции.
Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива
http://ru.wikipedia.org/wiki/Массив_(программирование)
А вы точно уверены?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2013, 09:56
Привет! Вот еще темы с ответами:

Найти количество элементов, меньших заданного числа и сумму элементов, расположенных после максимального - C++
1.количество элементов массива,меньших С; 2.сумму элементов массива,расположенных после максимального элемента. упорядочить элементы...

Упорядочить массив X(N) по убыванию модулей, найти среднее арифметическое положительных элементов массива. - C++
Упорядочить массив X(N) по убыванию модулей, найти среднее арифметическое положительных элементов массива.

Упорядочить массив X(N) по убыванию модулей, найти среднее арифметическое положительных элементов массива - C++
11. Упорядочить массив X(N) по убыванию модулей, найти среднее арифметическое положительных элементов массива.

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
30.12.2013, 09:56
Ответ Создать тему
Опции темы

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