С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407

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

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

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



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

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

Задание

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

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

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

3) Упорядочить элементы массива по убыванию модулей элементов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2013, 00:00
Ответы с готовыми решениями:

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

Упорядочить элементы массива по убыванию модулей элементов
2)Упорядочить элементы массива по спаданию модулей элементов. (Visual studio)

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

6
1 / 1 / 1
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 01:12
Криво, но работает вроде.
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
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
27.12.2013, 10:59  [ТС]
Большое спасибо за помощь, но работает неправильно
Миниатюры
Массивы. Количество элементов в диапазоне, сумму после максимального, упорядочить по убыванию модулей  
0
1 / 1 / 1
Регистрация: 26.12.2013
Сообщений: 13
27.12.2013, 21:44
Что именно неправильно работает, и как вообще ввод, вывод должен быть оформлен? Должна длина массива читаться, или задается в тексте? Если неправильно вычисляет количество значений в диапазоне, попробуйте включить крайние точки (30 строка), я их исключил. В сортировке по убыванию модулей и сумме после максимального ошибок не вижу.
0
2 / 2 / 4
Регистрация: 28.09.2013
Сообщений: 407
28.12.2013, 20:04  [ТС]
Цитата Сообщение от ArtyrSvAn Посмотреть сообщение
Что именно неправильно работает, и как вообще ввод, вывод должен быть оформлен? Должна длина массива читаться, или задается в тексте? Если неправильно вычисляет количество значений в диапазоне, попробуйте включить крайние точки (30 строка), я их исключил. В сортировке по убыванию модулей и сумме после максимального ошибок не вижу.
Про ввод и вывод в задании ничего не сказано, поэтому думаю, что здесь это не особо важно. А вот про точки крайние понять не могу. И в сортировке меня смущает, что выводиться в две строки
0
1 / 1 / 1
Регистрация: 26.12.2013
Сообщений: 13
30.12.2013, 02:12
Выводится результат для каждого из массивов, а массива всего два, потому и строки две.
Крайние точки - поменяйте > и < на >= и <=, если в задании сказано, что возвращаемое множество, количество элементов которого мы считаем и выводим, должно включать a и b при наличии их в массиве.
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
30.12.2013, 09:56
Цитата Сообщение от avatar1870 Посмотреть сообщение
Размерности массивов вводить в основной функции.
Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива
http://ru.wikipedia.org/wiki/М... ммирование)
А вы точно уверены?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.12.2013, 09:56
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru