Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 27.04.2017
Сообщений: 11

Вывод графика прямоугольного импульса

27.04.2017, 10:29. Показов 1870. Ответов 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
const 
Pi=3.14;
 
var A,s1,S,b,c,h,i1,W,i2,y:real;
var T,k: set of integer  ;
begin
write('Введите значение соответствующее длительности имппульса t=');
read(o);
write('Введите значение соответствующее амплитуде имппульса A=');
readln(A);
WriteLn ('Получение чисел из интервала [D,G].');            
Write ('Введите значение D:= ');      
ReadLn (D);        
Write ('Введите значение G:= ');       
ReadLn (G);         
T:=[D..G];
{For i1 := D to G do
 begin
      T[i1] := random ;
      write(T[i1]:6:2) ;
 end };
if i1<=h then s1:=A;
if i1>=h then s1:=0;
WriteLn ('Получение чисел из интервала [V,N].');            
Write ('Введите значение V:= ');      
ReadLn (V);        
Write ('Введите значение N:= ');       
ReadLn (N);         
k:=[V..N];
{For i2 := V to N do
 begin
      k[i2] := random ;
      write(T[i2]:6:2) ;
 end };
h:=o/f;
y:=pi/o;
W:=i2*y;
b:=W*(o/2);
c:=Sin(b);
S:=A*o*(c/b);
графики нужны зависимостью 1) s1 от T 2) S от W
как-то так

Добавлено через 6 часов 27 минут
Просмотров много, а помочь никто не хочет, печально
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.04.2017, 10:29
Ответы с готовыми решениями:

Спектр прямоугольного импульса
Привет всем! У меня есть задачка, первая часть которой кажется тривиальной. Нужно написать прогу в матлабе, которая строит спектр...

Моделирование прямоугольного импульса
Здравствуйте, есть следующий код для создания и построения прямоугольного импульса в Matlab: T = 50*10^6; N = 100; tmax = T; tstep...

СПМ прямоугольного импульса
Подскажите пожалуйста, как построить аналитическую спектральную плотность мощности прямоугольного импульса, пробую так F1 =...

6
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
27.04.2017, 15:53
Условие полностью напишие, перевод из матлаба в Паскаль сильно "художественный"
1
1 / 1 / 0
Регистрация: 27.04.2017
Сообщений: 11
08.05.2017, 16:37  [ТС]
t1 и A задаются не программой
t1:= ... длительность импульса
A:=...амплитуда импульса
t:=-10, -9.99 ...10 - интервал времени, на котором задаётся импульс (-10 - начало импульса, 10 - конец, -10+9.99- шаг на интервале)
s(t):=if( |t| <=(t1/2), A,0)) аналитическая запись одиночного прямоугольного импульса
k:= -100, -99.99 ... 100 интервал для вычисления гармоник
W(k):=k*(п/t1)
S(k):=A*t*((sin(W(k)*(t1/2)/(W (k)*(t1/2)) вычисляем спектральную функцию
используя это переписать прогу в паскаль и вывести два графика.
какие, выше указано
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
10.05.2017, 11:39
Цитата Сообщение от Dianada Посмотреть сообщение
S(k):=A*t*((sin(W(k)*(t1/2)/(W (k)*(t1/2)) вычисляем спектральную функцию
у вас отсчетов для t - 2001, а для k-20001

Добавлено через 4 минуты
Цитата Сообщение от Dianada Посмотреть сообщение
W(k):=k*(п/t1)
если k=0, то W(k)=0, как тогда считать S(k)?

Добавлено через 1 минуту
Цитата Сообщение от Dianada Посмотреть сообщение
вывести два графика.
какие, выше указано
Цитата Сообщение от Dianada Посмотреть сообщение
графики нужны зависимостью 1) s1 от T 2) S от W
s1 что это такое?
0
1 / 1 / 0
Регистрация: 27.04.2017
Сообщений: 11
10.05.2017, 12:20  [ТС]
s1 это s(t)

Добавлено через 4 минуты
https://pp.userapi.com/c637623... xMFxs4.jpg
ссылка на примерный вид графиков
0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
12.05.2017, 09:28
Лучший ответ Сообщение было отмечено ZX Spectrum-128 как решение

Решение

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
uses GraphAbc;
const dt=0.01;
      tn=-10;
      tk=10;
      
begin
  var ww:=640;var hw:=480;
  SetWindowSize(ww,hw);
  var t1:=ReadlnReal('Введите значение соответствующее длительности импульса t=');
  var A:=ReadlnReal('Введите значение соответствующее амплитуде имппульса A=');
  var v:=ReadlnReal('Введите значение V= ');
  var n:=ReadlnReal('Введите значение N= '); 
  ClearWindow;
  var t:=Range(0,abs(round((tk-tn)/dt))).Select((r,i)->tn+i*dt).ToArray;
  var s:=t.Select(r->abs(r)<=t1/2?A:0).ToArray;
  line(ww div 2,0,ww div 2,hw div 2);
  line(0,hw div 2,ww,hw div 2);
  var dy:=hw/3/s.Max;
  var dx:=ww/t.Count;
  moveto(0,hw div 3-round(s[0]*dy));
  for i:integer:=0 to t.Count-1 do lineto(round(i*dx),hw div 2-round(s[i]*dy),clred);
  var k:=Range(0,abs(round((N-V)/dt))).Select((r,i)->v+i*dt).ToArray;
  var W:=k.Select(r->r*pi/t1).ToArray;
  var Sk:=W.Select(r->r<>0?abs(A*t1*sin(r*t1/2)/(r*t1/2)):A*t1).ToArray;
  line(ww div 2,0,ww div 2,hw-10);
  line(0,hw-10,ww,hw-10);
  dy:=hw/3/Sk.Max;
  dx:=ww/W.Count;
  moveto(0,hw-10-round(Sk[0]*dy));
  for i:integer:=0 to W.Count-1 do lineto(round(i*dx),hw-10-round(Sk[i]*dy),clred);
end.
строго по вашей формуле:
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
uses GraphAbc;
const dt=0.01;
      tn=-10;
      tk=10;
      
begin
  var ww:=640;var hw:=480;
  SetWindowSize(ww,hw);
  var t1:=ReadlnReal('Введите значение соответствующее длительности импульса t=');
  var A:=ReadlnReal('Введите значение соответствующее амплитуде имппульса A=');
  var v:=ReadlnReal('Введите значение V= ');
  var n:=ReadlnReal('Введите значение N= '); 
  ClearWindow;
  var t:=Range(0,abs(round((tk-tn)/dt))).Select((r,i)->tn+i*dt).ToArray;
  var s:=t.Select(r->abs(r)<=t1/2?A:0).ToArray;
  line(ww div 2,0,ww div 2,hw div 2);
  line(0,hw div 2,ww,hw div 2);
  var dy:=hw/3/s.Max;
  var dx:=ww/t.Count;
  moveto(0,hw div 3-round(s[0]*dy));
  for i:integer:=0 to t.Count-1 do lineto(round(i*dx),hw div 2-round(s[i]*dy),clred);
  var k:=Range(0,abs(round((N-V)/dt))).Select((r,i)->v+i*dt).ToArray;
  var W:=k.Select(r->r*pi/t1).ToArray;
  var Sk:=W.Select(r->r<>0?A*t1*sin(r*t1/2)/(r*t1/2):A*t1).ToArray;
  line(ww div 2,0,ww div 2,hw-10);
  line(0,hw-hw div 8,ww,hw-hw div 8);
  dy:=hw/3/Sk.Max;
  dx:=ww/W.Count;
  moveto(0,hw-hw div 8-round(Sk[0]*dy));
  for i:integer:=0 to W.Count-1 do lineto(round(i*dx),hw-hw div 8-round(Sk[i]*dy),clred);
end.
1
1 / 1 / 0
Регистрация: 27.04.2017
Сообщений: 11
21.05.2017, 22:16  [ТС]
нужна разметка на графиках
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.05.2017, 22:16
Помогаю со студенческими работами здесь

Спектр прямоугольного импульса
Подскажите, пожалуйста, как получить спектральные линии, а не огибающую. Там как-то время дискретно надо задавать?

Поиск спектра прямоугольного импульса
Всем привет, помогите разобраться с проблемой. Задача проста, имеется сигнал- прямоугольный импульс с длительностью 0,0001 с и амплитудой...

Найти спектральную плотность прямоугольного импульса
Правильно ли я посчитал? А в кГц будет то же самое 2? Только почему-то не правильный это ответ)

Вычислить период и частоту прямоугольного импульса
Уважаемые знатоки! Прошу вашей помощи! Есть импульс с нижним фронтом от 0-0,3 и высоким от 3,5-4,5. Подскажите пожалуйста как можно...

Нужен совет по созданию прямоугольного импульса
Нужна помощь в создании прямоугольного импульса для 3-ех модуляций


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru