Triangle Wave

 

In this problem you are to generate a triangular wave form according to a specified pair of Amplitude and Frequency.


Input and Output

The input begins with a single positive integer on a line by itself indicating the number of the cases following, each of them as described below. This line is followed by a blank line, and there is also a blank line between two consecutive inputs.

Each input set will contain two integers, each on a separate line. The first integer is the Amplitude; the second integer is the Frequency.

For each test case, the output must follow the description below. The outputs of two consecutive cases will be separated by a blank line.

For the output of your program, you will be printing wave forms each separated by a blank line. The total number of wave forms equals the Frequency, and the horizontal ``height'' of each wave equals the Amplitude. The Amplitude will never be greater than nine.

The waveform itself should be filled with integers on each line which indicate the ``height'' of that line.

NOTE: There is a blank line after each separate waveform, excluding the last one.

Sample Input


1

3
2

Sample Output


1
22
333
22
1

1
22
333
22
1

不用看题,直接找规律,最重要注意最后一句话

NOTE: There is a blank line after each separate waveform, excluding the last one.

意思说最后一行不要留空行,这里的最后一行,怎么理解呢,一开始我理解错了,其实它的意思是说,最最后(你懂得)

开头的示例中输出第一个数字,和二三个数字之间有个空行,肿么办?不要在意,其实输入的时候你可以随意加空行的(注意是输入时)。

#include<stdio.h>
#include<math.h>
int main()
{
	int a,b,c,i,j,k,p,n;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d%d",&a,&c);
		for(j=1;j<=c;j++)
		{
			for(k=-a+1;k<a;k++)
			{
				for(p=1;p<=a-abs(k);p++)
					printf("%d",a-abs(k));
				printf("\n");
			}
			if(j!=c||i!=n)
				printf("\n");
		}
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个Python的GUI程序,用于生成和绘制三角波,并对其进行FFT变换。你可以通过交互式的方式改变三角波的基本频率和幅度,并观察其对应的频域幅值谱的变化。 ```python import numpy as np import matplotlib.pyplot as plt import tkinter as tk from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg class FFTTriangleGUI: def __init__(self): self.fig, self.axs = plt.subplots(2, 1, figsize=(8, 6)) self.canvas = FigureCanvasTkAgg(self.fig, master=root) self.canvas.get_tk_widget().pack(side=tk.TOP, fill=tk.BOTH, expand=1) self.freq_slider = tk.Scale(root, from_=1, to=20, resolution=0.1, orient=tk.HORIZONTAL, label='Frequency (Hz)', command=self.update_triangle) self.freq_slider.pack(side=tk.TOP, fill=tk.BOTH, padx=5, pady=5) self.amp_slider = tk.Scale(root, from_=0, to=1, resolution=0.01, orient=tk.HORIZONTAL, label='Amplitude', command=self.update_triangle) self.amp_slider.pack(side=tk.TOP, fill=tk.BOTH, padx=5, pady=5) self.freq = 5 self.amp = 0.5 self.update_triangle(None) def update_triangle(self, event): t = np.linspace(0, 1, 400, endpoint=False) x = np.concatenate((t, np.flip(t))) x -= np.mean(x) x *= self.amp x *= np.sin(2 * np.pi * self.freq * t) self.axs[0].clear() self.axs[0].plot(t, x[:len(t)]) self.axs[0].set_xlabel('Time (s)') self.axs[0].set_ylabel('Amplitude') self.axs[0].set_ylim((-1, 1)) X = np.fft.fft(x) freqs = np.fft.fftfreq(len(x)) * 400 self.axs[1].clear() self.axs[1].plot(freqs, np.abs(X)) self.axs[1].set_xlim((0, 20)) self.axs[1].set_xlabel('Frequency (Hz)') self.axs[1].set_ylabel('Magnitude') self.canvas.draw() if __name__ == '__main__': root = tk.Tk() root.title('FFT Triangle Wave Demo') FFTTriangleGUI() root.mainloop() ``` 运行程序后,将会弹出一个窗口,其中包含两个图,一个是三角波的时域波形,另一个是其对应的频域幅值谱。你可以通过拖动滑动条来改变三角波的基本频率和幅度。注意,频率轴的范围限制在0-20Hz之间,因此如果你将频率调整超过该范围,可能会看不到某些谐波分量的幅值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值