//定义f(A)=1, f(a)=-1, f(B)=2, f(b)=-2, ... f(Z)=26, f(z)=-26;

//定义f(A)=1, f(a)=-1, f(B)=2, f(b)=-2, ... f(Z)=26, f(z)=-26;
//给定一个字母x和一个整数y,求表达式f(x)+y的值。
//输入数据包括一个字母x和一个整数y,数据之间有一个空格。
//在单独的一行中给出f(x)+y的值。
#include<bits/stdc++.h>
using namespace std;
int main()
{
    char x;
    int y;
    scanf("%c %d",&x,&y);
    if (x>='A'&& x<='Z')
    {
        printf("%d\n",x-64+y);
    }
    else if(x>='a'&&x<='z')
    {
        printf("%d",(-1)*(x-96)+y);
    }
    return 0;
 } 

关于c++的ASCII码学习可以看http://t.csdn.cn/uxR9y

{1、输入一个ASCII码,输出对应的字符

 2、输入一个字符,输出相对应的ASCII码

3、字符之间相加减

以下是基于QT C++的大地转投影坐标的函数代码,使用高斯克吕格投影方法,输入参数为经度和纬度,输出参数为投影坐标的x和y值。其中,输入的ellipsoid为椭球参数,包含长半轴和扁率。代码中使用了cmath库中的一些数学函数,如sin、cos、sqrt等,需要在代码开头添加#include <cmath>。 ```cpp #include <cmath> void geodeticToProjected(double lon, double lat, double& x, double& y, Ellipsoid ellipsoid, double centralMeridian, double scaleFactor, double falseEasting, double falseNorthing) { // 计算投影带号 int zone_number = static_cast<int>((lon - 1.5) / 3.0) + 1; // 计算中央经线经度 double central_meridian = (zone_number - 1) * 3 + 1.5; // 将经度和纬度转换为弧度 double rad_lon = lon * M_PI / 180.0; double rad_lat = lat * M_PI / 180.0; // 计算子午线弧长 double a = ellipsoid.semi_major_axis; double f = ellipsoid.oblateness; double b = a * (1 - f); double e2 = (a*a - b*b) / (a*a); double B = atan((1 - f) * tan(rad_lat)); double N = a / sqrt(1 - e2 * sin(rad_lat) * sin(rad_lat)); double T = tan(rad_lat) * tan(rad_lat); double C = e2 * cos(rad_lat) * cos(rad_lat); double M = a * ((1 - e2 / 4 - 3 * e2*e2 / 64 - 5 * e2*e2*e2 / 256) * B - (3 * e2 / 8 + 3 * e2*e2 / 32 + 45 * e2*e2*e2 / 1024) * sin(2 * B) + (15 * e2*e2 / 256 + 45 * e2*e2*e2 / 1024) * sin(4 * B) - (35 * e2*e2*e2 / 3072) * sin(6 * B) + (315 * e2*e2*e2*e2 / 131072) * sin(8 * B)); // 计算投影坐标 double k0 = scaleFactor; double x0 = falseEasting; double y0 = falseNorthing; double x = k0 * N * (rad_lon - central_meridian * M_PI / 180.0) + x0; double y = k0 * (M + N * tan(rad_lat) * (1 + (T - C) * (T - C) / 6 + (5 - 18 * T + T * T + 72 * C - 58 * e2) * (T - C) * (T - C) * (T - C) / 120)) + y0; // 将结果赋值给输出参数 x = round(x * 1000) / 1000; y = round(y * 1000) / 1000; } ``` 使用示例: ```cpp // 定义椭球参数 Ellipsoid ellipsoid; ellipsoid.semi_major_axis = 6378137; ellipsoid.oblateness = 1.0 / 298.257223563; // 定义投影参数 double centralMeridian = 116.0; double scaleFactor = 1.0; double falseEasting = 500000.0; double falseNorthing = 0.0; // 输入经度和纬度 double lon = 116.5; double lat = 39.5; // 定义输出变量 double x, y; // 调用函数计算投影坐标 geodeticToProjected(lon, lat, x, y, ellipsoid, centralMeridian, scaleFactor, falseEasting, falseNorthing); // 输出结果 qDebug() << "x = " << x << ", y = " << y; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅浅摆烂一下

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值