完整题干:
液晶显示器的像素间距(pixel pitch)的意义类似于CRT的点距(dot pitch)。一般是指显示屏相邻两个象素点之间的距离。点距的计算方式是以面板尺寸除以解析度所得的数值。构造一个类,可以计算各种尺寸液晶的点距。按点距从大到小输出常见显示器的规格参数。
注意:
(1)显示器的尺寸一般是对角线长。1英寸等于25.4mm。
(2)不同尺寸的显示器分辨率不同,长宽比也不同。常见的长宽比有4:3,5:4,16:10,16:9。
个人答案:
#include<iostream>
using namespace std;
class Pitch//声明Pitch类
{
public:
void get_a() //定义成员函数(计算电视机点距)
{
for (int i = 0; i < 5; i++)
{
float a;
pixel[i] = y[i] * 25.4 / sqrt(w[i] * w[i] + h[i] * h[i]);
}
for (int i = 0; i < 5; i++)
cout << "第" << i + 1 << "个电视机点距为:" << pixel[i] << endl;
}
void set_a()//定义成员函数)(将数据按照点距大小排序)
{
cout << "按点距从大到小排序后:" << endl;
for (int i = 0; i < 5; i++)
{
for (int j = i + 1; j <= 5; j++)
{
if (pixel[i] < pixel[j])
{
float max, a, b, c;
max = pixel[i]; pixel[i] = pixel[j]; pixel[j] = max;
a = y[i]; y[i] = y[j]; y[j] = a;
b = w[i]; w[i] = w[j]; w[j] = b;
c = h[i]; h[i] = h[j]; h[j] = c;
}
}
}
for (int k = 0; k < 5; k++)//输出排好的数据
cout << "第" << k + 1 << "大的电视机点距为:" << pixel[k] << "mm 电视机屏幕大小为:" << y[k] << "英寸 解析度为:" << h[k] << "*" << w[k] << endl;
}
private:
float y[5] = { 14.1,15,16,17,24 };//电视机尺寸(英寸)
float h[5] = { 1400,1600,1280,1280,1920 };//电视机的解析度高
float w[5] = { 1050,1280,1024,1024,1200 };//解析度宽
float pixel[5];
};
int main()
{
Pitch P;//建立对象P
P.get_a();
P.set_a();
system("pause");
return 0;
}
结果: