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

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

Войти
Регистрация
Восстановить пароль
 
praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
#1

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

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

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

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

N2
Дана матрица 6х5. Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты. Перегрузить написанные функции для работы с переменными различных типов (где это возможно).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.03.2010, 21:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции и динамические массивы. (C++):

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

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

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

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

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

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

12
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;
}
Можно, конечно, среднее арифметическое представить как вещественное число, но, наверное, нет смысла, так как числа в самом масиве целые, нет надобности их сравнивать с дробным
1
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.03.2010, 13:56 #3
Цитата Сообщение от praeses Посмотреть сообщение
Сформировать одномерный массив из элементов матрицы, образующих упорядоченные по возрастанию фрагменты.
Непонятно задание, что за фрагменты? Приведи пример.
0
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, может быть такие фрагменты и надо сформировать в одномерный массив )
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.03.2010, 14:17 #5
И тогда эти два фрагмента запихать в один массив, должно получится 123516?
0
praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
23.03.2010, 14:20  [ТС] #6
получается что так, только наверно, чтобы было понятно что это фрагменты, необходимо разделить их между собой пробелами ))
0
fasked
Эксперт С++
4942 / 2522 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
23.03.2010, 14:32 #7
Осталось узнать, каким образом совершать обход матрицы, чтобы выцеплять эти фрагменты
0
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 Посмотреть сообщение
Осталось узнать, каким образом совершать обход матрицы, чтобы выцеплять эти фрагменты
ну так что, есть идеи ? буду премного признателен
0
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];}
1
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];}
уважаемый, не могли бы вы написать программу эту, или хотя бы набросочки . я буду очень сильно признателен (
0
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; //Не уверен, в падлу думать
}
0
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;
}
Вот вроде работает, но нужно протестировать
1
praeses
0 / 0 / 0
Регистрация: 22.03.2010
Сообщений: 8
25.03.2010, 18:23  [ТС] #13
гигантское спасибо ))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2010, 18:23
Привет! Вот еще темы с ответами:

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

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

Динамические массивы - C++
Вот еще с этой задачей помогите пожааалуйста, очень надо 1. Заданы два массива А(N) и В(M). В каждом из массивов найти наименьшее...

Динамические массивы - C++
Даны целое число n и последовательность действительных чисел r1, r2, ..., rn, среди которых заведомо есть как отрицательные, так и...


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

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

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