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

Расчет выходных сигналов эл. цепи - C++

Восстановить пароль Регистрация
 
PaVLLeTTo
 Аватар для PaVLLeTTo
14 / 14 / 0
Регистрация: 13.05.2010
Сообщений: 139
25.05.2010, 00:19     Расчет выходных сигналов эл. цепи #1
В данной работе необходимо по известному входному сигналу Uвх(t) и заданной передаточной характеристике Uвых(Uвх) построить выходной сигнал Uвых(t).
Написать программу формирования массивов времени, Uвх, Uвых.
Определить длительность импульса, где входной сигнал больше половины своего максимального значения и, соответственно, для выходного сигнала, с относительной точностью EPS=0.01. График входного сигнала,Передаточной характеристики и рабочего набора представлен ниже:
Параметры.rar
Также представлю похожую работу:

menu.cpp

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
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "prototipi.h"
 
/*
 * 
 */
int get_vibor ()
{
    int vibor = 0;
    printf ("\n Menu \n");
    printf ("Viberite comandu menu (1-6):\n");
    printf ("1.Vvod isxodnix dannix s klavaturi\n");
    printf ("2.Vivod tablici\n");
    printf ("3.Zapis' dannix v fail\n");
   // printf ("4.Chtenie dannix s faila\n");
    printf ("5.Soxranenie tablici\n");
    printf ("6.Vichislenie impulsa\n");
    printf ("7.EXIT\n");
    printf ("Vash vibor: ");
 
    scanf ("%d",& vibor);
 
 
    return vibor;
}
main.cpp:

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
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#define maxsize 200
#include "prototipi.h"
 
 
int main (void)
{
 
privetstvie();
printf ("\n");
 
int i;
int n=21;
double t0=0,t2=2,U0=5,U=2;
double Uvix[maxsize], Uvx[maxsize],time[maxsize] ;
double t;
double dt =(t2-t0)/(n-1);
printf ("dt=%lf",dt);
printf ("\n");
 
  for ( int i=0; i<n; i++)
    {
        time [i]=0 + i*dt;
        Uvx [i] = 5-2*sin(t);
        t+=dt;
}
 
 for (int i=0; i<n; i++)
    {
    if (Uvx[i]<10)
        Uvix[i] = 100/7*(Uvx[i]-3);
    else
        Uvix[i]=100;
    }
     printf("\nZnacheniya poschitani\n");
 
 
 bool exit = false;
 
for(;;)
    {
   int vibor = get_vibor();
 
switch(vibor)
        {
        case (1):
               vvod_dannix(&t0, &t2, &U0, &U, &n);
               form_Uvx(Uvx,time,dt, t0, t2, U0, U, n );
               form_Uvix(Uvix,Uvx,time,n);
               printf ("\n Znachenia poschitani \n ");
               break;
        case (2):
               table( &n, time,Uvx,Uvix);
               break;
       case (3): zapis (n,time,Uvx,Uvix);
               break;
       case (5): save_table (&n, time,Uvx,Uvix) ;
               break;
      case (6):
              impuls (Uvix, dt, &n);
               break;
       case (7) : exit=true;
          break;
          default:
        printf("Vibor dolzhen bit ot 1 do 7\n");
     break;
}
         if(exit)
             break;
}
    
 
   return (0);
}
arrays.cpp:

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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include "prototipi.h"
/*
 *
 */
void privetstvie ()
{
    char text;
    FILE *fail=fopen("vipolnila.txt","r");
 
    if(fail!=NULL)
    {
        text=getc(fail);
        while(!feof(fail))
        {
            printf("%c",text);
            text=getc(fail);
        }
        fclose(fail);
    }
    else printf("File ne nayden!");
    printf ("\n\n");
}
 
void nayti_dt(double t0, double t2, int n, double * dt)
{
    *dt=(t2-t0)/(n-1);
}
 
 
void vvod_dannix (double *t0,double *t2, double *U0, double *U, int *n)
{
printf ("t0=");
scanf ("%lf",& t0);
 
printf ("t2=");
scanf ("%lf",& t2);
 
printf ("U0=");
scanf ("%lf",& U0);
 
printf ("U=");
scanf ("%lf",& U);
}
 
void form_Uvx (double *Uvx,double *time,double dt, double t0,double t2, double U0, double U, int n)
{
     double t;
     dt =(t2-t0)/(n-1);
  for ( int i=0; i<n; i++)
    {
        time [i]=t0 + i*dt;
        Uvx [i] = U0-U*sin(t);
        t+=dt;
  }
}
 
void form_Uvix (double *Uvix,double *Uvx,double *time, int n)
{
 for (int i=0; i<n; i++)
    {
    if (Uvx[i]<10)
        Uvix[i] = 100/7*(Uvx[i]-3);
    else
        Uvix[i]=100;
    }
}
 
void table(int *n,double time[],double Uvx[],double Uvix[])
{
    printf ( "Numer    Time    Uvx   Uvix \n");
    for (int i=0; i<*n; i++)
    printf("%6d%10.3lf %10.3lf %10.3lf\n", (i+1),time[i],Uvx[i],Uvix[i]);
}
 
void save_table (int *n,double time[],double Uvx[],double Uvix[])
{
    FILE *out = fopen ("table.txt", "w+r");
    for(int i=0;i<*n;i++)
    {
        fprintf(out, " %10.3lf %10.3lf  %10.3lf\n", time[i],Uvx[i],Uvix[i]);
    }
}
 
void zapis(int n,const double time[], const double Uvx[],  const double Uvix[])
{
    FILE *f1,*f2,*f3;
    f1=fopen ("time.txt","w+r");
    f2=fopen("Uvx.txt","w+r");
    f3=fopen ("Uvix.txt","w+r");
 
    for (int i=0; i<n;i++)
    {
        fprintf (f1,"\n%10.3lf ",time[i]);
        fprintf (f2,"\n%10.3lf ",Uvx[i]);
        fprintf (f3,"\n%10.3lf ",Uvix[i]);
    }
 
    fclose (f1);
    fclose (f2);
    fclose (f3);
 
    printf ("\n zapis v file vipolnena \n");
}
 
 void impuls (double Uvix[], double dt, int *n)
{
     double W ;
     double t0=0,t2=2;
     dt =(t2-t0)/(*n-1);
    for (int i=0; i<*n; i++)
    {
        if (Uvix[i]<=15) 
            W=dt*(*n-1);
    }
        printf ("moment vremeny=%10.3f\n", W);
}
prototipi.h:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#ifndef _PROTOTIPI_H
#define _PROTOTIPI_H
 
 
 
#endif  /* _PROTOTIPI_H */
 
void privetstvie ();
void vvod_dannix (double *t0,double *t2, double *U0, double *U, int *n);
void form_Uvx (double *Uvx,double *time,double dt, double t0,double t2, double U0, double U, int n );
void form_Uvix (double *Uvix,double *Uvx,double *time, int n);
void table(int *n,double time[],double Uvx[],double Uvix[]);
 
void save_table (int *n,double time[],double Uvx[],double Uvix[]);
void zapis(int n,const double time[], const double Uvx[], const double Uvix[]);
 
void impuls (double Uvix[], double dt, int *n);
 
int get_vibor();
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 00:19     Расчет выходных сигналов эл. цепи
Посмотрите здесь:

C++ Не могу создать файлы входных и выходных данных
Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. C++
Массив: Определить емкости систем конденсаторов, получаемых последовательным и параллельным соединением выходных конденсаторов C++
Библиотеки С/С++ для цифровой обработки сигналов C++
C++ Написать простейший генератор тоновых сигналов, использую функцию Beep
Программа для звуковых сигналов со спикера C++
Дан txt файл. Необходимо сделать выборку по времени сигналов C++
C++ Обработка и фильтрация звуковых сигналов

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
PaVLLeTTo
 Аватар для PaVLLeTTo
14 / 14 / 0
Регистрация: 13.05.2010
Сообщений: 139
25.05.2010, 22:31  [ТС]     Расчет выходных сигналов эл. цепи #2
Помомгите пожалуйста ато надоела это уже.. Заранее огрОООООмное спасибо

Добавлено через 7 часов 52 минуты
вот блин...

Добавлено через 11 часов 23 минуты
Ну хелп!!
Yandex
Объявления
25.05.2010, 22:31     Расчет выходных сигналов эл. цепи
Ответ Создать тему
Опции темы

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