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

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

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

Составить алгоритм и программу для замены в заданном массиве - C++

09.04.2009, 02:01. Просмотров 955. Ответов 10
Метки нет (Все метки)

Составить алгоритм и программу для замены в заданном массиве Р(N) всех нулевых элементов, которые стоят на непарных местах, средним квадратичным значением, которое находят из всех отрицательных элементов массива, а те, что стоят на парных местах - средним геометрическим значением, которое находят из всех положительных элементов массива. Преобразованный массив вывести к печати. P = (9, 8, 0, 7, 6, 0, 5, 4, 0, 3, 2, 0, 2, 3, 0)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2009, 02:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Составить алгоритм и программу для замены в заданном массиве (C++):

Составить алгоритм и программу для замены в заданном массиве - C++
Только С++ Составить алгоритм и программу для замены в заданном массиве Р(N) всех нулевых элементов, которые стоят на нечетных местах,...

Составить алгоритм и программу длля поиска в массиве целых чисел из 5 элементов минимального числа. - C++
Составить алгоритм и программу длля поиска в массиве целых чисел из 5 элементов минимального числа.

Разработать алгоритм и программу для удаления в заданном тексте части текста, взятого в скобки (вместе со скобками) - C++
Разработать алгоритм и программу для удаления в заданном тексте части текста, взятого в скобки (вместе со скобками).Помогите плиз для...

Составить программу на языке С для вычисления значения функции y = f(x) при заданном значениях a, b ,c ,x. - C++
Составить программу на языке С для вычисления значения функции y = f(x) при заданном значениях a, b ,c ,x.

Составить алгоритм и программу для вычисления мощности - C++
составить алгоритм и програму для вычисления мощности по формуле P=V*I, gпричем должны удовлетворяться следующие условия если 0<=V<Va,ТО...

Разработать алгоритм и по нему составить программу для вычисления - C++
Разработать алгоритм и по нему составить программу для вычисления заданной величины, определив еѐ зависимость от параметра. Из условий...

10
aNdRyXa
14 / 14 / 0
Регистрация: 28.03.2009
Сообщений: 46
09.04.2009, 02:11 #2
Что значит на непарных местах? мб на нечетных?
И что делать если в массиве нет отрицательных чисел как, например, в твоем примере?
0
Dolya2007
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 33
09.04.2009, 21:38  [ТС] #3
Хрен его знает! Я думал тут кто-то знает.
0
aNdRyXa
14 / 14 / 0
Регистрация: 28.03.2009
Сообщений: 46
10.04.2009, 00:25 #4
тогда спроси у препода - он должен знать.
0
Dolya2007
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 33
10.04.2009, 02:43  [ТС] #5
Задача звучит так:
Составить алгоритм и программу для замены в заданном массиве Р(N) всех нулевых элементов, которые стоят на нечетных местах, средним квадратичным значением, которое находят из всех отрицательных элементов массива, а те, что стоят на четных местах - средним геометрическим значением, которое находят из всех положительных элементов массива. Преобразованный массив вывести к печати. P = (9, 8, 0, 7, 6, 0, 5, 4, 0, 3, 2, 0, 2, 3, 0).
0
aNdRyXa
14 / 14 / 0
Регистрация: 28.03.2009
Сообщений: 46
11.04.2009, 01:20 #6
Pascal
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
program P; 
var IshMas, NulID, PolMas, OtrMas:array [1..N] of integer;   
i, PolCount, OtrCount: integer;   
SredKvad, SredGeom: real; 
begin   
PolCount := 0;   
OtrCount := 0;   
for i := 1 to N do     
  if IshMas[i] > 0 then     
    begin       
     PolCount := PolCount + 1;       
     PolMas[PolCount] := IshMas[i];     
   end;     
  if IshMas[i] < 0 then     
    begin       
      OtrCount := OtrCount + 1;       
      OtrMas[OtrCount] := IshMas[i];     
    end;   
   SredKvad := 0;   
   SredGeom := 0;   
   if OtrCount > 0 then   
     begin     
        for i := 1 to OtrCount do       
           SredKvad := SredKvad + OtrMas[i]*OtrMas[i];     
           SredKvad := SredKvad/OtrCount;     
           SredKvad := sqrt(SredKvad);   
     end;   
     if PolCount > 0 then   
        begin     
           for i := 1 to PolCount do       
             SredGeom := SredGeom * PolMas[i]; 
            {    SredKvad := SredKvad/OtrCount;     
            SredKvad := sqrt(SredKvad);}   
        end;   
     for i := 1 to N do     
        if IshMas[i] = 0 then       
          if i mod 2 = 0 then 
            IshMas[i] := SredGeom       
          else IshMas[i] := SredKvad; 
  end;
обрати внимание на объявление массива: вместо N ты должен поставить размер своего массива, если оно известно, или просто большое число, если N вводится в программе; а также на то, что исходный масств состоит из уелых чисел

осталось добавить нахождение корня n-ой степени (где комменты). надеюся скоро будет
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//n-ая степень числа a 
function Stepen(a: real; n: integer): real; 
var j: integer; 
begin   
  Result := 1;   
  for i := 1 to n do     
    Result := Result * a; 
end;   
//корень n-ой степени числа a 
function Koren(a: real; n: integer): real; 
var j: integer;     x_1, x_2: real; 
begin   
x_1 := 0;   
x_2 := a/2;   
repeat     
  x_1 := x_2;     
  x_2 := ((n - 1)*x_1 + a/Stepen(x_1, n-1))/n   
until abs(x_1 - x_2) < 0.001 
end;
//в том месте где раньше были коменты напиши:
SredGeom := Koren(SredGeom, PolCount);
0
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
11.04.2009, 01:48 #7
aNdRyXa, Интересный у вас C++.
0
aNdRyXa
14 / 14 / 0
Регистрация: 28.03.2009
Сообщений: 46
11.04.2009, 01:51 #8
аааааа малость ошибся
надеюсь перевести будет не труднo
0
ISergey
Maniac
Эксперт С++
1376 / 887 / 53
Регистрация: 02.01.2009
Сообщений: 2,663
Записей в блоге: 1
11.04.2009, 02:06 #9
Цитата Сообщение от aNdRyXa Посмотреть сообщение
надеюсь перевести будет не труднo
Ну знаешь
Delphi
1
2
3
4
5
6
7
function Stepen(a: real; n: integer): real;
var j: integer;//для чего это я так и не понял
begin
  Result := 1;
  for i := 1 to n do
    Result := Result * a;
end;
на C++ так будет
C++
1
2
3
4
5
6
7
float Stepen(float a, int n)
{
    float res = 1;
    for( int i = 0; i <  n; ++i )
        res *= a;
    return res;
}
0
Dolya2007
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 33
11.04.2009, 03:25  [ТС] #10
Так эта задача для с++! А реально ее перевести?
0
aNdRyXa
14 / 14 / 0
Регистрация: 28.03.2009
Сообщений: 46
12.04.2009, 13:26 #11
Да реально:
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
#include <iostream>;
 
int IshMas[N], NulID[N], PolMas[N], OtrMas[N], i, PolCount, OtrCount;
double SredKvad, SredGeom;
 
double Stepen(double a;int n)
{
  int j;  
  double Result := 1;   
  for (j = 1; j <= n; j++)
    Result *= a;
  return Result;
}
 
//корень n-ой степени числа a 
double Koren(double a; int n)
{
  int j;
  double x_1 = 0, x_2 = a/2;
  do
  {
    x_1 = x_2;     
    x_2 = ((n - 1)*x_1 + a/Stepen(x_1, n-1))/n;
  }
  while (abs(x_1 - x_2) < 0.001)
}
 
int main;
{
  PolCount = 0;   
  OtrCount = 0;   
  for (i = 1; i <= N; i++)     
  if (IshMas[i] > 0)
  {
     PolCount++;
     PolMas[PolCount] = IshMas[i];     
  }
  if (IshMas[i] < 0)
  {
      OtrCount++;
      OtrMas[OtrCount] = IshMas[i];     
  }
  SredKvad = 0;   
  SredGeom = 0;   
  if (OtrCount > 0)
  {
    for (i = 1; i <= OtrCount; i++)
      SredKvad += OtrMas[i]*OtrMas[i];     
    SredKvad /= OtrCount;     //если не получится тогда сдделай так SredKvad *= 1/OtrCount
    SredKvad = sqrt(SredKvad);   
  }
  if (PolCount > 0)
  {
    for (i = 1; i <= PolCount; i++)
      SredGeom *= PolMas[i]; 
    SredGeom = Koren(SredGeom, PolCount);   
  }
  for (i = 1; i <= N; i++)
    if (IshMas[i] == 0)
      if (i mod 2 == 0)
        IshMas[i] = SredGeom       
      else IshMas[i] = SredKvad;
  for (i = 1; i <= N; i++)
    cout << IshMax[i] << ' '; 
  return 0;
}
Вроде без ошибок
1
12.04.2009, 13:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.04.2009, 13:26
Привет! Вот еще темы с ответами:

Составить алгоритм и программу для вычисления среднего геометрического значения - C++
Составить алгоритм и программу для вычисления среднего геометрического значения элементов заданного массива В(15), что удовлетворяют ...

Составить универсальную программу для решения математической задачи используя разветвляющий алгоритм - C++
Задание: составить универсальную программу для решения математической задачи используя разветвляющий алгоритм. Подобрать самостоятельно три...

Написать алгоритм, который найдет максимальное число в заданном массиве - C++
Нужно написать алгоритм который найдет max число в заданном массиве. C N=4

Задан двумерный массив. Составить программу для поиска в этом массиве - C++
Суммы элементов каждой диагонали квадратного массива,параллельной главной диагонали,и максимального среди найденных значений. ...


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

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

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