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

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

Восстановить пароль Регистрация
 
praeses
 Аватар для praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
22.03.2010, 21:01     Функции и динамические массивы. #1
Вечер добрый. Помогите пожалуйста написать 2 программы. плз (

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

N2
Дана матрица 6х5. Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты. Перегрузить написанные функции для работы с переменными различных типов (где это возможно).
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NNN777
299 / 157 / 19
Регистрация: 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;
}
Можно, конечно, среднее арифметическое представить как вещественное число, но, наверное, нет смысла, так как числа в самом масиве целые, нет надобности их сравнивать с дробным
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
23.03.2010, 13:56     Функции и динамические массивы. #3
Цитата Сообщение от praeses Посмотреть сообщение
Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты.
Непонятно задание, что за фрагменты? Приведи пример.
praeses
 Аватар для praeses
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, может быть такие фрагменты и надо сформировать в одномерный массив )
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
23.03.2010, 14:17     Функции и динамические массивы. #5
И тогда эти два фрагмента запихать в один массив, должно получится 123516?
praeses
 Аватар для praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
23.03.2010, 14:20  [ТС]     Функции и динамические массивы. #6
получается что так, только наверно, чтобы было понятно что это фрагменты, необходимо разделить их между собой пробелами ))
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
23.03.2010, 14:32     Функции и динамические массивы. #7
Осталось узнать, каким образом совершать обход матрицы, чтобы выцеплять эти фрагменты
praeses
 Аватар для praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
24.03.2010, 16:00  [ТС]     Функции и динамические массивы. #8
оу, да я важную часть задания не скопировал.
Дана матрица 6х5. Сформировать одномерный массив из элементов матрицы,образующих упорядоченные по возрастанию фрагменты каждой строки матрицы.

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

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

Добавлено через 19 часов 32 минуты
Цитата Сообщение от fasked Посмотреть сообщение
Осталось узнать, каким образом совершать обход матрицы, чтобы выцеплять эти фрагменты
ну так что, есть идеи ? буду премного признателен
NNN777
299 / 157 / 19
Регистрация: 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];}
praeses
 Аватар для praeses
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];}
уважаемый, не могли бы вы написать программу эту, или хотя бы набросочки . я буду очень сильно признателен (
siger
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; //Не уверен, в падлу думать
}
NNN777
299 / 157 / 19
Регистрация: 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;
}
Вот вроде работает, но нужно протестировать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2010, 18:23     Функции и динамические массивы.
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
praeses
 Аватар для praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
25.03.2010, 18:23  [ТС]     Функции и динамические массивы. #13
гигантское спасибо ))
Yandex
Объявления
25.03.2010, 18:23     Функции и динамические массивы.
Ответ Создать тему
Опции темы

Текущее время: 04:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru