0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
1

Функции и динамические массивы.

22.03.2010, 21:01. Показов 1046. Ответов 12
Метки нет (Все метки)

Вечер добрый. Помогите пожалуйста написать 2 программы. плз (

N1
Дан одномерный массив, состоящий из 20 целых чисел. Создать другой массив, содержащий элементы исходного массива, большие его среднего арифметического значения. При написании программы использовать функции.

N2
Дана матрица 6х5. Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты. Перегрузить написанные функции для работы с переменными различных типов (где это возможно).
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.03.2010, 21:01
Ответы с готовыми решениями:

Указатели и массивы. Индексация с помощью указателей. Передача массивов в функции. Динамические массивы (обработка матриц)
Для каждого элемента , bij, i= 1,...,n , j=1,...,n определяется свой многоугольник...

Динамические массивы и функции. Динамические массивы.
Дана матрица 6х8 целого типа. Создать одномерный массив, содержащий элементы матрицы, кратные...

Динамические массивы и функции
Помогите решить, пожалуйста))) На динамические массивы: 1.1 Выделить память для трехмерного...

Снова динамические массивы и функции
int ** A=new int*; for (int i=0;i<(NN+1);i++) A=new int; void ZZ (char *E, int **A,...

12
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
23.03.2010, 13:53 2
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
#include <iostream>
 
using namespace std;
 
const int LIMIT=20;
int input (int[], int);
int srednee(int[],int);
void print(int [], int);
int form ( int[], int[], int, int, int);
 
int main ()
{
    int a[LIMIT]={0},b[LIMIT], n, d=0;
 
    n=input(a,LIMIT);
    int sr=srednee(a,n);
    cout<<"Srednee arifmetihceskoe: "<<sr<<endl;
    
    d=form (a,b,n,d,sr);
    print (b,d);
 
    return 0;
}
int form (int a[], int b[], int n, int d, int sr)
{
    for (int i=0; i<n; i++)
    {
        if (a[i]>sr)
            b[d++]=a[i];
    }
    return d;
}
int srednee(int mas[], int r)
{
    int sum=0; int rez=0;
    for (int t=0; t<r; t++)
        sum+=mas[t];
    rez=sum/r;
    return rez;
}
int input(int mas[], int size) 
{   
    int n=0;
    do {
        cout<<"Vvedite kolichestvo elementov: ";
        cin>>n;
        } 
    while(n<1||n>size);
    cout<<"Vvedite "<<n<<" chisel: "<<endl;
    int k=0;
    while((k<n)&&(cin>>mas[k]))
        k++;
    return k;
}
void print(int mas1[], int size)
{
    for (int i=0; i<size; i++)
        cout<<mas1[i]<<" ";
    cout<<endl;
}
Можно, конечно, среднее арифметическое представить как вещественное число, но, наверное, нет смысла, так как числа в самом масиве целые, нет надобности их сравнивать с дробным
1
Эксперт С++
5026 / 2605 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
23.03.2010, 13:56 3
Цитата Сообщение от praeses Посмотреть сообщение
Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты.
Непонятно задание, что за фрагменты? Приведи пример.
0
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
23.03.2010, 14:15  [ТС] 4
NNN777 спасибо большое!

fasked, что-то сам плоховато понимаю суть. ну рассматриваю два варианта:
1) либо просто расположить все элементы матрицы по возрастанию
2) либо так: например есть фрагмент чисел 1 2 3 5 2 1 6 - в нем возрастающий фрагмент 1235 и 16, может быть такие фрагменты и надо сформировать в одномерный массив )
0
Эксперт С++
5026 / 2605 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
23.03.2010, 14:17 5
И тогда эти два фрагмента запихать в один массив, должно получится 123516?
0
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
23.03.2010, 14:20  [ТС] 6
получается что так, только наверно, чтобы было понятно что это фрагменты, необходимо разделить их между собой пробелами ))
0
Эксперт С++
5026 / 2605 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 1
23.03.2010, 14:32 7
Осталось узнать, каким образом совершать обход матрицы, чтобы выцеплять эти фрагменты
0
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
24.03.2010, 16:00  [ТС] 8
оу, да я важную часть задания не скопировал.
Дана матрица 6х5. Сформировать одномерный массив из элементов матрицы,образующих упорядоченные по возрастанию фрагменты каждой строки матрицы.

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

Добавлено через 5 часов 47 минут
help me plz (

Добавлено через 19 часов 32 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Осталось узнать, каким образом совершать обход матрицы, чтобы выцеплять эти фрагменты
ну так что, есть идеи ? буду премного признателен
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
24.03.2010, 16:20 9
А почему бы не попробовать что-то вроде такого обхода?
C++
1
2
3
4
5
for (int j=0; j<5; j++)//проход по столбцам
{
for (int i=0; i<6; i++)//проход по строкам
{if (a[i++]>a[i])
b[k++]=a[i];}
1
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
25.03.2010, 00:15  [ТС] 10
что за массивы a и b ))

можешь написать вторую программу ?(( уже 3ий день сижу, все пытаюсь разбираться, но туго доходят функции и перегрузка их (((

Добавлено через 7 часов 34 минуты
Цитата Сообщение от NNN777 Посмотреть сообщение
А почему бы не попробовать что-то вроде такого обхода?
C++
1
2
3
4
5
for (int j=0; j<5; j++)//проход по столбцам
{
for (int i=0; i<6; i++)//проход по строкам
{if (a[i++]>a[i])
b[k++]=a[i];}
уважаемый, не могли бы вы написать программу эту, или хотя бы набросочки . я буду очень сильно признателен (
0
13 / 13 / 1
Регистрация: 27.02.2010
Сообщений: 46
25.03.2010, 04:24 11
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
char function(char *A, char *B) {
int i,j,k,n,l;
k = n = j = 0;
for(i = 0; i < 6 * 5 - 1; i++) {
   if( a[i + 1] > a[i] || n < 6)
    k++;
   else
   {
     for(l = 0; l < k; l++) {
       B[j] = A[i - k]; k--; j++;
    }
    n++;
    if( n > 6) n = 0;
}
 
return B; //Не уверен, в падлу думать
}
0
302 / 160 / 62
Регистрация: 27.02.2010
Сообщений: 317
25.03.2010, 10:33 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
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main() 
{
    int k=0;
    int b[31]={0};
    int a[5][6]={{1,2,1,2,1,2},{4,5,8,4,2,1},{7,8,4,5,6,1},{4,5,6,1,7,6},{5,6,7,8,2,1}}; // Входные данные
  
    for(int i=0; i<5; i++)
    {
        for (int j=0; j<6; j++)
            cout<<a[i][j]<<" ";cout<<endl;
    }   
    for (int i=0; i<5; i++)//проход по строкам
    {
        for (int j=0; j<6;j++)//проход по столбцам
        {
            if (a[i][j]>a[i][j-1])
                b[k++]=a[i][j];
            else 
            {
                if ((a[i][j+1]>a[i][j])&&(j!=5)) 
                    b[k++]=a[i][j];
            }
        }
    }
    cout<<"Rezultat: "<<endl;
    for (int i=0; i<k; i++)
        cout<<b[i]<<" ";cout<<endl;
}
Вот вроде работает, но нужно протестировать
1
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
25.03.2010, 18:23  [ТС] 13
гигантское спасибо ))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2010, 18:23

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Динамические массивы с передачей в функции
Здравствуйте, завтра у меня обязательная контрольная работа, без права пересдачи, я переболел...

Шаблонные функции и динамические массивы строк
Всем доброго времени суток. Я уже наверное всех достал вопросами, но опять не могу отловить ошибку...

Можно передавать и вызывать из функции в DLL динамические массивы?
Мне нужно создать перегруженные функции удаления элемента из динамического массива с заданным...

Как сделать динамические массивы вместо обычных? Используя функции
Как сделать динамические массивы вместо обычных? Используя функции. Для введения одной матрицы...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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