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

В массиве, состоящем из п вещественных элементов, вычислить - C++

Восстановить пароль Регистрация
 
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
01.10.2011, 19:19     В массиве, состоящем из п вещественных элементов, вычислить #1
помогите написать прогу в С++
В массиве, состоящем из п вещественных элементов, вычислить:
- номер минимального по модулю элемента массива (если таких элементов несколько, найти первый);
- сумму модулей элементов массива, расположенных после первого отрицательного элемента.
Сжать массив, удалив из него все элементы, равные заданному числу Р. Освободившиеся в конце массива элементы заполнить нулями.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.10.2011, 19:19     В массиве, состоящем из п вещественных элементов, вычислить
Посмотрите здесь:

В одномерном массиве, состоящем из n вещественных элементов, вычислить... C++
C++ В одномерном массиве,состоящем из N вещественных элементов,вычислить:
C++ В одномерном массиве, состоящем из n вещественных элементов, вычислить:
В одномерном массиве, состоящем из N вещественных элементов, вычислить: C++
В одномерном массиве состоящем из n вещественных элементов вычислить: C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Петррр
 Аватар для Петррр
5915 / 3352 / 333
Регистрация: 28.10.2010
Сообщений: 5,926
01.10.2011, 19:55     В массиве, состоящем из п вещественных элементов, вычислить #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
45
46
47
48
#include <iostream>
 
using namespace std;
 
void del(int *array, int len, int pos, int zeroCount)
{
    for(int i = pos; i < len - 1; i++)
        array[i] = array[i + 1];
    for(int i = len - 1; zeroCount > 0; i--, zeroCount--)
        array[i] = 0;
}
 
int main(int argc, char ** argv)
{
    const int len = 20;
    int *array = new int[len];
    for(int i = 0; i < len; i++)
    {
        array[i] = rand() % 50 - 50;
        cout << array[i] << " ";
    }
    int pos = 0;
    int min = abs(array[pos]);
    
    for(int i = 0; i < len; i++)
        if (min > abs(array[i]))
        {
            pos = i;
            min = abs(array[pos]);
        }
    int sum = 0;
    for(int i = pos; i < len; i++)
        sum += array[i];
    cout << "\nMin position: " << pos << "\nsum: " << sum << endl;
    int p;
    cout << "enter P: ";
    cin >> p;
    int zeroCount = 0;
    for(int i = 0; i < len; i++)
        if (array[i] == p)
            del(array, len, i, ++zeroCount);
    for(int i = 0; i < len; i++)
        cout << array[i] << " ";
    cout << endl;
    delete [] array; 
    system("pause");
    return 0;
}
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
03.10.2011, 21:47  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #3
Использовать статический массив. Максимальную размерность массива задать именованной константой. Реальное количество элементов массива ввести с клавиатуры с контролем на выход за границы массива. Массивы должны состоять не менее, чем из одного элемента.
Предусмотреть два способа заполнения массива: с клавиатуры и с помощью датчика случайных чисел. В последнем случае перед заполнением массива ввести границы интервала, которому должны принадлежать элементы массива.
Вывести результаты расчетов. Если по каким-либо причинам решение задачи невозможно, вывести соответствующее сообщение.
Дополнительных массивов для преобразования данных использовать нельзя.
Almiqui
Почетный модератор
 Аватар для Almiqui
13976 / 3592 / 87
Регистрация: 11.06.2009
Сообщений: 11,800
03.10.2011, 21:53     В массиве, состоящем из п вещественных элементов, вычислить #4
Алексей_123, с кем беседы ведете ? Тихо сам с собою ? Спасибы говорить не учили Вас ? Или все по-барабану ?
vetvet
03.10.2011, 21:57
  #5

Не по теме:

Almiqui, так это товарищ видимо тут как раз выводит результат заполнения массива с помощью датчика случайных букв. ему в тему для теста нужно.

Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
03.10.2011, 22:06  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #6
спасибо, просто я ен все условие скинул(
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
10.10.2011, 18:14  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #7
Использовать статический массив. Максимальную размерность массива задать
именованной константой. Реальное количество элементов массива ввести с клавиатуры с
контролем на выход за границы массива. Массивы должны состоять не менее, чем из одного
элемента.
Предусмотреть два способа заполнения массива: с клавиатуры и с помощью датчика
случайных чисел. В последнем случае перед заполнением массива ввести границы
интервала, которому должны принадлежать элементы массива.
Вывести результаты расчетов. Если по каким-либо причинам решение задачи
невозможно, вывести соответствующее сообщение.
Дополнительных массивов для преобразования данных использовать нельзя.

В массиве, состоящем из п вещественных элементов, вычислить:
- номер минимального по модулю элемента массива (если таких элементов несколько, найти первый);
- сумму модулей элементов массива, расположенных после первого отрицательного элемента.
Сжать массив, удалив из него все элементы, равные заданному числу Р. Освободившиеся в конце массива элементы заполнить нулями.


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
#include <iostream>
using namespace std;
int main()
{ int u,v,n,i,k,p,len,pos,Count;
  const N=100;
  int ar[N];
{
            cout<<"vvedite interval chisel:"<<endl;
            cout<<"nachalo otrezka:"<<endl;
            cin>>u;
            cout<<"koniec otrezka:"<<endl;
            cin>>v;
            cout<<"nachalniy massiv:"<<endl;
            for (int i=0;i<len;i++)
            {
                ar[i]=rand()%(v-u-1)+(u+1);
                cout<<ar[i]<<"yavlyaetsya "<<i<<" elementom massiva"<<endl;
            }
            }
        int pos = 0;
        int min = abs(ar[pos]);
        
        for(int i = 0; i < len; i++)
                if (min > abs(ar[i]))
                {
                        pos = i;
                        min = abs(ar[pos]);
                }
        int sum = 0;
        for(int i = pos; i < len; i++)
                sum += ar[i];
        cout << "\nMin position: " << pos << "\nsum: " << sum << endl;
        int p;
        cout << "enter P: ";
        cin >> p;
for (i=0; i<len; i++)
{
if (ar[i]==p)
{
for (k=i; i<len; k++)
{
ar[k]=ar[k+1] ;
ar[len-1]=0;
}
i--
}
}      
                cout << ar[i] << " ";
        cout << endl;
        
        system("pause");
        return 0;
}

вот, попробовал я эту проге более проще сделать, навылетала куча ошибок, помогите исправить пожалуйста

Добавлено через 18 часов 27 минут
укажите хотябы, какой участок неправильно написан

Добавлено через 3 часа 10 минут
тут уже 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
#include <iostream>
using namespace std;
int main()
{ int u,v,n,i,k,p,len,pos,Count,pos;
int const N=100;
  int ar[N];
    {
            cout<<"vvedite interval chisel:"<<endl;
            cout<<"nachalo otrezka:"<<endl;
            cin>>u;
            cout<<"koniec otrezka:"<<endl;
            cin>>v;
            cout<<"nachalniy massiv:"<<endl;
            for (int i=0;i<len;i++)
            {
                ar[i]=rand()%(v-u-1)+(u+1);
                cout<<ar[i]<<"yavlyaetsya "<<i<<" elementom massiva"<<endl;
            }
            
    }
         pos = 0;
        int min = abs(ar[pos]);
        
        for(int i = 0; i < len; i++)
                if (min > abs(ar[i]))
                {
                        pos = i;
                        min = abs(ar[pos]);
                }
        int sum = 0;
        for(int i = pos; i < len; i++)
                sum += ar[i];
        cout << "\nMin position: " << pos << "\nsum: " << sum << endl;
       p;
        cout << "enter P: ";
        cin >> p;
for (i=0; i<len; i++)
{
if (ar[i]==p)
{
for (k=i; i<len; k++)
{
ar[k]=ar[k+1] ;
ar[len-1]=0;
}
i--;
}
}      
                cout << ar[i] << " ";
        cout << endl;
        
        system("pause");
        return 0;
}
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
10.10.2011, 18:21     В массиве, состоящем из п вещественных элементов, вычислить #8
в строке
C++
1
 int u,v,n,i,k,p,len,pos,Count,pos;
один pos лишний

Но вообще компилятор же обо всем сообщает, читайте просто сообщения об ошибках
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
11.10.2011, 18:08  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #9
спасибо большое, но все равно прога не работает, я вооже начало и конец интервала, а затем выскакиевает ошибка, связанная с len, помогите тееперь с ней разобраться

Добавлено через 1 час 33 минуты
а именно пишет, что len не инициализирован

Добавлено через 2 часа 8 минут
вроде все уже сделал, осталось с последним заданием разобраться , там где Сжать массив, удалив из него все элементы, равные заданному числу Р. Освободившиеся в конце массива элементы заполнить нулями. помогите решить проблему
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
#include <iostream>
#include <time.h>
#include <cmath>
 
using namespace std;
int main()
{ int u,v,n,i,k,p,len,pos,Count;
srand(time(NULL));
int const N=100;
  int ar[N];
  cout<<"vvedite kilichestvo chisel:"<<endl;
  cin>>len;
    {
            cout<<"vvedite interval chisel:"<<endl;
            cout<<"nachalo otrezka:"<<endl;
            cin>>u;
            cout<<"koniec otrezka:"<<endl;
            cin>>v;
            cout<<"nachalniy massiv:"<<endl;
            
            for (int i=0;i<len;i++)
            {
                ar[i]=rand()%(v-u-1)+(u+1);
                cout<<ar[i]<<"yavlyaetsya "<<i<<" elementom massiva"<<endl;
            }
            
    }
         pos = 0;
        int min = abs(ar[pos]);
        
        for(int i = 0; i < len; i++)
                if (min > abs(ar[i]))
                {
                        pos = i;
                        min = abs(ar[pos]);
                }
        int sum = 0;
        
        for(int i = pos; i < len; i++)
                sum += ar[i];
        cout << "\nMin position: " << pos << "\nsum: " << sum << endl;
       p;
        cout << "enter P: ";
        cin >> p;
        for (i=0; i<len; i++)
        {
if (ar[i]==p)
   {
for (k=1; k<len; k++)
{
ar[k]=ar[k+1] ;
ar[k+1]=0;
   }
i--;
}
        } 
 
      for(i=0;i<len;i++)
                cout << ar[i] << " ";
        cout << endl;
        
        system("pause");
        return 0;
}
Добавлено через 18 часов 53 минуты
мб все же ето-нибудь поможет исправить, не правильно находит сумму модулей элементов массива, расположенных после первого отрицательного элемента. и все то же число P

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
#include <iostream>
#include <time.h>
#include <cmath>
 
using namespace std;
int main()
{ int u,v,i,k,p,len,pos,x;        
srand(time(NULL));
int const N=100;
  int ar[N];
  cout<<"vvedite kilichestvo chisel:"<<endl;
  cin>>len;
  cout<<"vvodit dannye:1-c kklaviaturi; 2-generator"<<endl;
  cin>>x;
  if(x==1)
  {
      for(i=0;i<len;i++)
      {
          cout<<"vvedite "<<i<<"element massiva"<<endl;
          cin>>ar[i];
      }
  }
  if(x==2)
    {
            cout<<"vvedite interval chisel:"<<endl;
            cout<<"nachalo otrezka:"<<endl;
            cin>>u;
            cout<<"koniec otrezka:"<<endl;
            cin>>v;
            cout<<"nachalniy massiv:"<<endl;
            
            for (int i=0;i<len;i++)
            {
                ar[i]=rand()%(v-u-1)+(u+1);
                cout<<ar[i]<<"yavlyaetsya "<<i<<" elementom massiva"<<endl;
            }
            
    }
         pos = 0;
        int min = abs(ar[pos]);
        
        for(int i = 0; i < len; i++)
                if (min > abs(ar[i]))
                {
                        pos = i;
                        min = abs(ar[pos]);
                }
        int sum = 0;
        
        for(int i = pos; i < len; i++)
                sum += abs(ar[i]);
        cout << "\nMin position: " << pos << "\nsum: " << sum << endl;
        cout << "enter P: ";
        cin >> p;
        for (i=0; i<len; i++)
        {
                if (ar[i]==p)
                   {
                        for (k=i+1; k<len; k++)
                        {
                            ar[k]=ar[k+1] ;
                            ar[k+1]=0;
                        }
                        i--;
                    }
        } 
 
      for(i=0;i<len;i++)
                cout << ar[i] << " ";
        cout << endl;
        
        system("pause");
        return 0;
}
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 18:16     В массиве, состоящем из п вещественных элементов, вычислить #10
Цитата Сообщение от Алексей_123 Посмотреть сообщение
не правильно находит сумму модулей элементов массива, расположенных после первого отрицательного элемента
так вы сумму считаете не для элементов после первого отрицательного, а для элементов после минимального по модулю

вам сначала надо найти индекс первого отрицательного pos2 и считать сумму, начиная с pos2+1
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
11.10.2011, 18:33  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #11
я уже не понимаю как это сделать)
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 18:56     В массиве, состоящем из п вещественных элементов, вычислить #12
Этот кусок
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 pos = 0;
        int min = abs(ar[pos]);
        
        for(int i = 0; i < len; i++)
                if (min > abs(ar[i]))
                {
                        pos = i;
                        min = abs(ar[pos]);
                }
        int sum = 0;
                
        for(int i = pos; i < len; i++)
                sum += abs(ar[i]);
        cout << "\nMin position: " << pos << "\nsum: " << sum << endl;
должен быть таким
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
pos = 0;
        int min = abs(ar[pos]);
        
        for(int i = 0; i < len; i++)
                if (min > abs(ar[i]))
                {
                        pos = i;
                        min = abs(ar[pos]);
                }
        cout<<"Min element="<<min<<" position of min is "<<pos<<endl;
        
        //теперь находим позицию первого отрицательного
        pos=-1;
        for(int i=0;i<len;i++)
            if(ar[i]<0)
            {
                 pos=i;
                 break;
            }
       if(pos==-1)
          cout<<"No negative elements in array!\n";
       else
       {
            int sum = 0;
             
        for(int i = pos+1; i < len; i++)//pos+1 - чтобы не включать само первое отрицательное в сумму
                sum += abs(ar[i]);
        cout << "\nSum: " << sum << endl;
     }
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
11.10.2011, 19:12  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #13
не могли бы вы написать этот участок?

Добавлено через 39 секунд
спасибо, просто не заметил, что уже на другую страницу сообщения перескачили
aeshes
 Аватар для aeshes
437 / 200 / 13
Регистрация: 07.10.2011
Сообщений: 462
11.10.2011, 19:26     В массиве, состоящем из п вещественных элементов, вычислить #14
Алексей_123, кто? и какой участок? если вы про мой предыдущий пост, то это вычисление суммы модулей после первого отрицательного
Просто в своей программе находите первый (верхний) кусок кода и заменяете его на второй (нижний)

Добавлено через 12 минут
вот удаление
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
        cout << "enter P: ";
        cin >> p;
        for (int i=0; i<len; i++)
        {
            if (ar[i]==p)
            {
                   for (k=i; k<len-1; k++)
                   {
                       ar[k]=ar[k+1] ;
                   }
                  ar[len-1]=0;
             i--;
           }
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2011, 19:35     В массиве, состоящем из п вещественных элементов, вычислить
Еще ссылки по теме:

В одномерном массиве, состоящем из п вещественных элементов, вычислить: C++
C++ В одномерном массиве, состоящем из N вещественных элементов, вычислить
В одномерном массиве,состоящем из N вещественных элементов,вычислить: C++

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

Или воспользуйтесь поиском по форуму:
Алексей_123
0 / 0 / 0
Регистрация: 22.09.2011
Сообщений: 51
11.10.2011, 19:35  [ТС]     В массиве, состоящем из п вещественных элементов, вычислить #15
aeshes, большое спасибо,очень помогли, уже разобрался, просто вначале запутался в сообщениях.
Yandex
Объявления
11.10.2011, 19:35     В массиве, состоящем из п вещественных элементов, вычислить
Ответ Создать тему
Опции темы

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