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

Программка на С с массивом - C++

Восстановить пароль Регистрация
 
ildarn
0 / 0 / 1
Регистрация: 07.12.2009
Сообщений: 14
13.01.2010, 13:27     Программка на С с массивом #1
Помогите пожалуйста.
Задача:

Вычислить массив R, в соответствии с формулами, где i=l,n и x,h,a - заданы.
1) ri=0,9 sin (2ax-ih);
2) все элементы, удовлетворяющих условия |ri| < 0,5;
3) среднее арифметическое элементов, расположенных между первыми и последними положительными элементами.

Её надо сделать на С.
Эта же программа уже сделана на паскале.

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
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
75
76
77
78
79
80
81
82
uses
crt;
var
x,h,a,n,i,s,f,j,p:integer;
r,k:array [1..100] of real;
sum,sredar:real;
begin
clrscr;
writeln('введите количество элементов массива');
write('N=');
readln(n);
writeln('введите X');
write('X=');
readln(x);
writeln('введите H');
write('H=');
readln(h);
writeln('введите A');
write('A=');
readln(a);
if n>0 then
 begin
 for i:=1 to n do
  begin
  r[i]:=0.9*(sin((2*a*x)-(i*h)));
  end;
 clrscr;
 writeln('массив R');
 for i:=1 to n do
  begin
  write('R[',i,']=',r[i]:4:2,'  ');
  end;
 writeln;
 s:=1;
 for i:=1 to n do
  begin
  if abs(r[i])>=0.5 then
   begin
   k[s]:=r[i];
   s:=s+1;
   end;
  end;
 writeln('массив K');
 for i:=1 to (s-1) do
  begin
  write('K[',i,']=',k[i]:4:2,'  ');
  end;
 writeln;
 sum:=0;
 j:=1;
 while (r[j]<=0) and (j<n) do
  begin
  j:=j+1;
  end;
 if n=0 then
  begin
  j:=0;
  end;
 writeln('первый положительный элемент массива R находится на ',j,' позиции');
 p:=n;
 while (r[p]<=0) and (p>1) do
  begin
  p:=p-1;
  end;
 writeln('последний положительный элемент массива R находится на ',p,' позиции');
 if j<p then
  begin
  for i:=(j+1) to (p-1) do
   begin
   sum:=sum+r[i];
   end;
  end;
 if (p-j)>1 then
  begin
  sredar:=sum/(p-j-1);
  writeln('среднее арифметическое =',sredar:0:2);
  end
  else writeln('среднее арифметическое не существует');
 end
 else writeln('Массив не существует');
readln;
end.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.01.2010, 13:27     Программка на С с массивом
Посмотрите здесь:

программка с четырехугольником C++
C++ нужна программка!!
C++ Программка по строкам
Программка на Си++ C++
программка на классы C++
C++ программка по шаблонам
Не компилируется программка C++
C++ Массивом и динамическим массивом

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ggmann
 Аватар для ggmann
20 / 20 / 1
Регистрация: 06.10.2008
Сообщений: 173
13.01.2010, 20:41     Программка на С с массивом #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
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
75
76
77
78
79
80
81
82
83
84
85
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
 
int main()
{
    int x,h,a,n,i,s,f,j,p;
    float r[100],k[100];
    float sum,sredar;
    
    cout<<"vvedite kolichestvo elementov massiva"<<endl;
    cout<<"N=";
    cin>>n;
    cout<<"vvedite X"<<endl;
    cout<<"X=";
    cin>>x;
    cout<<"vvedite H"<<endl;
    cout<<"H=";
    cin>>h;
    cout<<"vvedite A"<<endl;
    cout<<"A=";
    cin>>a;
 
        
        if (n>0) {
        for (i=0; i<n; i++){
          
          r[i]=0.9*(sin((2*a*x)-(i*h)));
        }
        system("CLS");
         
        cout<<"massiv R";
        for (i=0; i<n; i++){
          //printf("R[ %d",i,"]= %4.2f \n",r[i]);
          cout<<"R["<<i+1<<"]="<<r[i]<<"\t";
        }
         cout<<endl;
         s=1;
        
         for (i=0; i<n; i++){
          if (abs(r[i])>=0.5) {
           k[s]=r[i];
           s++;
          }
        }
         
         cout<<"massiv K'";
         for(i=1; i<s-1; i++){        
          //printf("K[ %d",i,"]= %4.2f \n",k[i]);
          cout<<"K["<<i+1<<"]="<<k[i]<<"\t";
         }
         cout<<endl;         
         
         sum=0;
         j=1;        
         while ((r[j]<=0) && (j<n)){          
          j++;
         }
         if (n=0){
          j=0;
          }
         cout<<"pervyy polojitel'nyy element massiva R nahoditsya na "<<j+1<<" pozicii"<<endl;
         p=n;
         while ((r[p]<=0) && (p>1)){
          p--;
         }
         cout<<"posledniy polojitel'nyy element massiva R nahoditsya na "<<p+1<<" pozicii"<<endl;
         if (j<p) {
          for (i=(j+1); i<p-1; i++){
           sum=+r[i];
          }
         }
         if ((p-j)>1){
          sredar=sum/(p-j-1);
          printf("srednee arifmeticheskoe = %0.2f",sredar);
         }
          else cout<<"srednee arifmeticheskoe ne suschestvuet"<<endl;
         }
         else cout<<"Massiv ne suschestvuet"<<endl;
    
    system("PAUSE");
    return 0;
}
форматный вывод не везде получился извини)
если что не так выводит напиши, я так и не смог добиться чтобы массив существовал , не знаю какие значения нужны
ildarn
0 / 0 / 1
Регистрация: 07.12.2009
Сообщений: 14
13.01.2010, 20:53  [ТС]     Программка на С с массивом #3
Цитата Сообщение от ggmann Посмотреть сообщение
попробуй проверь эту программу

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
75
76
77
78
79
80
81
82
83
84
85
#include <cstdlib>
#include <iostream>
#include <cmath>
#include <conio.h>
using namespace std;
 
int main()
{
    int x,h,a,n,i,s,f,j,p;
    float r[100],k[100];
    float sum,sredar;
    
    cout<<"vvedite kolichestvo elementov massiva"<<endl;
    cout<<"N=";
    cin>>n;
    cout<<"vvedite X"<<endl;
    cout<<"X=";
    cin>>x;
    cout<<"vvedite H"<<endl;
    cout<<"H=";
    cin>>h;
    cout<<"vvedite A"<<endl;
    cout<<"A=";
    cin>>a;
 
        
        if (n>0) {
        for (i=0; i<n; i++){
          
          r[i]=0.9*(sin((2*a*x)-(i*h)));
        }
        system("CLS");
         
        cout<<"massiv R";
        for (i=0; i<n; i++){
          //printf("R[ %d",i,"]= %4.2f \n",r[i]);
          cout<<"R["<<i+1<<"]="<<r[i]<<"\t";
        }
         cout<<endl;
         s=1;
        
         for (i=0; i<n; i++){
          if (abs(r[i])>=0.5) {
           k[s]=r[i];
           s++;
          }
        }
         
         cout<<"massiv K'";
         for(i=1; i<s-1; i++){        
          //printf("K[ %d",i,"]= %4.2f \n",k[i]);
          cout<<"K["<<i+1<<"]="<<k[i]<<"\t";
         }
         cout<<endl;         
         
         sum=0;
         j=1;        
         while ((r[j]<=0) && (j<n)){          
          j++;
         }
         if (n=0){
          j=0;
          }
         cout<<"pervyy polojitel'nyy element massiva R nahoditsya na "<<j+1<<" pozicii"<<endl;
         p=n;
         while ((r[p]<=0) && (p>1)){
          p--;
         }
         cout<<"posledniy polojitel'nyy element massiva R nahoditsya na "<<p+1<<" pozicii"<<endl;
         if (j<p) {
          for (i=(j+1); i<p-1; i++){
           sum=+r[i];
          }
         }
         if ((p-j)>1){
          sredar=sum/(p-j-1);
          printf("srednee arifmeticheskoe = %0.2f",sredar);
         }
          else cout<<"srednee arifmeticheskoe ne suschestvuet"<<endl;
         }
         else cout<<"Massiv ne suschestvuet"<<endl;
    
    system("PAUSE");
    return 0;
}
форматный вывод не везде получился извини)
если что не так выводит напиши, я так и не смог добиться чтобы массив существовал , не знаю какие значения нужны
Ok, спасибо большое, буду пробовать
Yandex
Объявления
13.01.2010, 20:53     Программка на С с массивом
Ответ Создать тему
Опции темы

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