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

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

Войти
Регистрация
Восстановить пароль
 
PaVLLeTTo
14 / 14 / 0
Регистрация: 13.05.2010
Сообщений: 139
#1

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

25.05.2010, 00:19. Просмотров 831. Ответов 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();
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2010, 00:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Расчет выходных сигналов эл. цепи (C++):

Расчет сумм в формуле и расчет xi должны быть оформлены в виде отдельных функций. - C++
День добрый товарищи специалисты, помогите пожалуйста с примером m=((1/n)*\sum_{i=1}^{n}{x}_{i}){}^{2}-\sum_{i=1}^{n}{x}_{i} ,n=5 ф-ция...

Выдача функцией нескольких выходных параметров - C++
Здравствуйте! Требуется реализовать функцию, которая не принимает никаких аргументов, а возвращает несколько. Как в С++ описать такую...

Не могу создать файлы входных и выходных данных - C++
Не понимаю что неправильно в открытии и создании input.txt и output.txt В универе на линуксе не надо писать путь а просто FILE *in; ...

Сформировать массив, состоящий из одинаковых элементов выходных массивов - C++
Ввести два массива X и Y, состоящие из 10-ти элементов целого типа. Сформировать массив S, состоящая из одинаковых элементов выходных...

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

Расчет выходных дней - MS Access
Уважаемые форумчане, подскажите кто чем, как реализовать это в Access.Есть форма в ней 3 поля: поле1(начальная дата), поле2 (конечная...

1
PaVLLeTTo
14 / 14 / 0
Регистрация: 13.05.2010
Сообщений: 139
25.05.2010, 22:31  [ТС] #2
Помомгите пожалуйста ато надоела это уже.. Заранее огрОООООмное спасибо

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

Добавлено через 11 часов 23 минуты
Ну хелп!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2010, 22:31
Привет! Вот еще темы с ответами:

Расчет цепи несинусоидального тока и расчет переходного процесса - Электротехника
Хотелось уточнить правильность решения задачи... Задача 3. Для 0-ой гармоники i0=u0/R, i0=18/3=6 A; Для 1-ой гармоники...

Прохождение детерминированных сигналов через линейные цепи - Электротехника
Уважаемые знатоки! Помогите найти ошибку в примере. (задача 2) Преподаватель говорит , что задача решена неправильно. На ошибку он...

Реакция цепи из емкости или индуктивности при подаче различных сигналов - Электротехника
Привет. Есть такое задание: Провести анализ тока,напряжения,энергии,мощности в ёмкости или индуктивоности на примере любого...

Расчет действующих значений сигналов прямоугольной формы - Электротехника
Делали лабораторную работу, все вроде бы выполнено, но осталось ответить на контрольные вопросы. Помогите пожалуйста. Электротехнику только...


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

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

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