Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
110 / 1 / 2
Регистрация: 10.12.2015
Сообщений: 93
1

Написать программу с использованием одномерных динамических массивов вещественных чисел

24.12.2015, 01:20. Показов 1923. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
  • Задание
На основе составленных алгоритмов в среде Visual Studio написать консольную программу (общую для всех трех заданий, т.е. все три задачи в одной программе должны выполняться последовательно одна за другой) на языке С/C++ с использованием одномерных динамических массивов вещественных (!) чисел размера n (n вводит пользователь). Должно быть реализовано два способа заполнения массива: ручное (элементы массива вводит сам пользователь) и автоматическое (элементы массива генерируются случайным образом в задаваемом пользователем диапазоне). Пользователь должен иметь возможность сам выбрать один из этих двух способов заполнения массива. Возможность такого выбора может быть реализована в виде меню. Примечание 1: если в задании сказано, что нужно массив преобразовать (!) (а не упорядочить), то при перемещении элементов в какую-то одну другую часть массива они должны сохранять исходный порядок по отношению друг к другу. Т.е., если массив, например, был такой: {-5.2, 3, -1.5, 10, 2} и, если сказано, что нужно преобразовать его таким образом, чтобы сначала располагались все положительные, а потом все отрицательные элементы, то это не (!) значит, что массив нужно отсортировать по убыванию. Массив в итоге должен выглядеть так: {3, 10, 2, -5.2, -1.5}. Примечание 2: для решения своей 3-й задачи не разрешается использовать дополнительный массив. Все преобразования необходимо выполнять в исходном массиве.
  • Индивидуальное задание
 Комментарий модератора 
П.5.18.Правил
Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.

Написать программу с использованием одномерных динамических массивов вещественных чисел

Нужно решить только индивидуальное задание , все остальное менюшка и т.д. у меня написано
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
#include <iostream>
#include <stdlib.h>  //подключаем библиотеки для rand и time
#include <time.h>  
using namespace std;
 
//заполнение массива случайными числами
void fill_rand(int** a, int n, int m)
{
    int a1=0,a2=-1;
    cout<<"rand in [a;b] "<<endl; 
    while (a1>a2) // спрашиваем отрезок генерирования
    {
        cout<<"input a: ";
        cin>>a1;
        cout<<"input b: ";
        cin>>a2;
    }
    
    for (int i=0; i<n; i++) //генерируем (перебор всех элементов и заполняем)
        for (int j=0; j<m; j++)
            a[i][j]=a1+rand()%(a2-a1+1);
}
 
//заполняем матрицу данными пользователя
void fill_user(int** a,int n,int m)
{
    for (int i=0; i<n; i++) //перебор всех строк
        for (int j=0; j<m; j++) //перебор всех столбцов
        {
            cout<<"input a["<<i<<"]["<<j<<"]: "; //спрашиваем число
            cin>>a[i][j];
        }
}
 
//показ матрицы на экран
void show(int** a,int n,int m)
{
    for (int i=0; i<n; i++) //перебор всех элементов
    {
        for (int j=0; j<m; j++)
        {
            cout<<a[i][j]<<" "; //пока числа
        }
        cout<<endl; //переход на новую строку
    }
}
void task()
{
    srand(time(NULL)); //для генератора
    int** a;
    int n,m;
    n=m=0;
    while (n<=0) //запрос количества строк с проверкой, чтобы >0
    {
        cout<<"Строки n: ";
        cin>>n;
    }
    while (m<=0) //запрос количества столбцов
    {
        cout<<"Столбцы m: ";
        cin>>m;
    }
    a=new int* [n]; //выделяем память
    for (int i=0; i<n; i++)
        a[i]=new int [m];
        
    int menu=0;
    while (menu!=3) //пока в меню не выбран exit
    {
        cout<<"menu: "<<endl<<"1 - random"<<endl<<"2 - user"<<endl<<"3 - exit"<<endl;
        cin>>menu;
 
        if (menu==1)
            fill_rand(a,n,m); //заполняем случайно
        else if (menu==2)
            fill_user(a,n,m); //заполняет пользователь
        else
            break; //выходим из меню
        cout<<"Matrix: "<<endl;
        show(a,n,m); //показываем матрицу
        
        find_line(a,n,m); //ищем строку
    }
    
    //удаляем память
    for (int i=0; i<n; i++)
        delete [] a[i];
    delete [] a;
}
int main()
{
    task();
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.12.2015, 01:20
Ответы с готовыми решениями:

Написать программу, в соответствии с заданием с использованием динамических массивов, вводя разм
17. Дан одномерный массив, состоящий из N целочисленных элементов. 17.1. Ввести массив с...

Написать программу для вычисления СЛАУ методом простой итерации с использованием динамических массивов
Нужно написать программу для вычисления СЛАУ методом простой итерации с использованием динамических...

Написать программу , которая для двух одномерных массивов целых чисел выводит только те элементы
Написать программу , которая для двух одномерных массивов целых чисел выводит только те элементы ,...

Разработать программу, содержащую две функции: • функция обработки одномерных динамических массивов согласно варианту за
Написал первую часть, но с ошибками, нужно дописать вторую и исправить код, но не знаю как, только...

4
13 / 6 / 3
Регистрация: 15.10.2015
Сообщений: 19
24.12.2015, 01:27 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
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
 
int main()
{
    int n, i, j;
    int S = 0;
    printf("Vvedite razmernost' massiva\n");
    scanf("%d", &n);
    int *m;
    m = (int*) calloc(n , sizeof(int));
 
    for(i=0; i<n; i++)
    scanf("%d", &*(m+i));
 
    for(int k=0; k<n; k++)
    printf("%d ", *(m+k));
 
    for(i=0; i<n; i++)
    {
        if( *(m+i)>0)
        S = S + *(m+i);
    }
    printf("\n\nSumma polozhitel'nyh elementov ravna %d\n", S);
 
    // нахождение суммы элементов массива, расположенных до минимального элемента//
 
    int Smin = 0;
    int min = *(m);
    int nomer = 0;
    for ( i = 1; i < n; i ++)
 
        if ( *(m + i) < *(m) )
        {
            min = *(m + i);
            nomer = i;
        }
 
    for ( i = 0; i < nomer; i ++)
        Smin += *(m + i);
    printf("Summa do minimal'nogo ravna %d", Smin);
    getch();
}
0
110 / 1 / 2
Регистрация: 10.12.2015
Сообщений: 93
24.12.2015, 21:17  [ТС] 3
А можете расписать с cin cout?
0
13 / 6 / 3
Регистрация: 15.10.2015
Сообщений: 19
24.12.2015, 23:14 4
Ну замените printf и scanf
0
110 / 1 / 2
Регистрация: 10.12.2015
Сообщений: 93
27.12.2015, 15:38  [ТС] 5
я с ними не работаю не понимаю как :/
0
27.12.2015, 15:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.12.2015, 15:38
Помогаю со студенческими работами здесь

Нахождение чётных и нечётн. чисел(с использованием динамических массивов)
Попытался написать прогу но она не работает( #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

Написать программу по обработке динамических массивов
Из матрицы размером NxM получить вектор B, присвоив его k-му элементу значение 1, если k-я строка...

Обработка одномерных динамических массивов
Помогите написать программу (Динамические массивы) Написать программу, которая создает...

Обработка одномерных динамических массивов
Помогите написать программу (Динамические массивы) Написать программу, которая создает...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru