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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки матрицы с максимальным и минимальным элементом заполнить нулями http://www.cyberforum.ru/cpp-beginners/thread135063.html
Строки с максимальным и минимальным элементом заполнить нулями. Остальные строки отсортировать по возрастанию.:-[
C++ Стеки может у кого то уже есть готовая или кому то интересно написать буду оочень благодарен Создать два стека для символов. Максимальный размер стеков вводится с экрана. Создать функции для ввода и... http://www.cyberforum.ru/cpp-beginners/thread135062.html
.....ОШИБКА при УДАЛЕНИИ..... C++
Всем здравствуйте)))....Написала код по удалению элемента из линейного однонаправленного списка:..ошибок нет, а программа зависает.. Помогите, пожайлуста, найти ошибку дозавтра !..(очень хочется...
C++ Фильтр клавиатуры
Привет! Я хочу фильтровать нажатия клавиатуры так, чтобы система на них никак не реагировала. Я реализовал хук в DLL LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc( int nCode, ...
C++ графы http://www.cyberforum.ru/cpp-beginners/thread135047.html
есть н городов соединеные дорогами(с односторонним движением) для любых i,j известна средняя скорость движения и километраж, найти минимальный по времени маршрут для двух заданных городов.
C++ Структуры Для структуры указанной в варианте 21 написать программу, выполняющие следующие действия с помощью функций: -ввод с клавиатуры данных в файл, состоящий из структур типа STUDENT; записи должны быть... подробнее

Показать сообщение отдельно
PaVLLeTTo
14 / 14 / 0
Регистрация: 13.05.2010
Сообщений: 139

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

25.05.2010, 00:19. Просмотров 819. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru