【Code】浅谈Pascal转C++
Pascal轉C++
- 引入
- 準備和比較
- 簡單的轉換
- 頭文件
- 輸入輸出
- 注釋
- 變量
- 變量的類型
- 變量的定義
- 全局變量和局部變量
- 作用域
- 常量
- 賦值語句
- if條件判斷語句
- 循環語句
- for循環
- while循環
- 函數
- 數學函數(自帶函數)
- 排序函數
- 自定義函數
- 關于字符,ASCII碼的問題
- 字符串
- 字符數組
- string類型
- 雜項
引入
中國計算機學會于2016年11月1日發布了《CCF關于NOI系列賽事程序設計語言變更的公告》,內容如下:
根據國際信息學奧林匹克競賽(IOI)的相關決議并考慮到我國目前程序設計語言的具體情況,CCF決定:1.2020年開始,除NOIP以外的NOI系列其他賽事(包括冬令營、CTSC、APIO、NOI)將不再支持Pascal語言和C語言;2.從2022年開始,NOIP競賽也將不再支持Pascal語言。即從NOIP2022開始,NOI系列的所有賽事將全部取消Pascal語言。在無新增程序設計語言的情況下,NOI系列賽事自NOIP2022開始將僅支持C++語言。 此通知。中國計算機學會2016年11月1日所以很多Pascal選手開始轉C++。
準備和比較
1.C++更復雜,更難學,但是功能更強大。
2.你學過Pascal以后,學C++比較簡單。(C轉C++更加簡單)
3.C++版本之間的差異很大,很容易編譯錯誤。
建議大家使用Dev-cpp 5.6.1 ,是gcc/g++ 4.8.1 。
最接近比賽的版本。
比賽的版本是4.8.4(比賽的版本詳情)。
千萬不要使用Dev-cpp 5.9.x 或 5.11.x(很多大佬因此爆零)。
4.C++代碼的后綴名 .cpp
cpp=C Plus Plus=C++
簡單的轉換
1.C++都是由一個個函數組成的。
2.C++ 大括號 { 和 } 代替 begin 和 end 。
3.函數和變量的類型是寫在前面的,int就是longint類型。
4.每句話結尾都是分號,如果遇到某些括號(大括號、函數的參數表里面的小括號等)的時候,分號省略。
5.主程序最后一句是
return 0;最好加上,有一定的好處。
頭文件
一般建議初學者使用C++萬能頭文件
#include <bits/stdc++.h>C++萬能頭文件幾乎包含了所有頭文件。
輸入輸出
輸入語句
輸入語句 cin>>變量1>>變量2>>變量3;輸出語句
cout<<變量1<<變量2<<...; cout<<"hello world" << endl; //endl是換行cin和cout在<iostream>頭文件中,還需要標準命名空間using namespace std;
場寬:
cout<<setw(5)<<a;保留幾位小數:
cout<<fixed<<setprecision(3)<<a;函數在<iomanip>頭文件中。
其他輸入輸出語句有scanf()和printf()等,一般不建議初學者學習,等到熟練了必須掌握。
a+b代碼:
#include <bits/stdc++.h> using namespace std;int main() {int a,b;cin >> a >> b;cout << a+b << endl;return 0; }注釋
注釋
在 C++ 代碼中,注釋有兩種寫法:
1 行內注釋
以 // 開頭,行內位于其后的內容全部為注釋。
2 注釋塊
以 /* 開頭, */ 結尾,中間的內容全部為注釋,可以跨行。
注釋對程序運行沒有影響,可以用來解釋程序的意思。
在工程開發中,注釋可以便于日后維護、他人閱讀。
在 OI 中,很少有人寫許多注釋,但注釋可以便于在寫代碼的時候理清思路,或者便于日后復習。而且,如果要寫題解、教程的話,適量的注釋可以便于讀者閱讀,理解代碼的意圖。
變量
變量的類型
整數:
int (longint/int32)
long long (int64)
unsigned int (dword)
unsigned long long (qword)
小數:
float (real)
double (double)
字符:
char (char)
布爾類型:
bool (boolean)
字符串:
string (string)
無類型
void (?)
變量的定義
int a,b; char ch='c'; double f; int a[100]; char mat[50][50];數組:
int a[100];
//表示定義了a[0]-a[99] 都是int類型
二維數組 int a[100][100];
//定義了a[0][0]-a[99][99]
初始化:
int a[5]={1,2,3,4,5};全局變量和局部變量
在函數里面的都是局部變量,在函數外面的是全局變量。
函數包括主函數main()。
作用域
作用域是變量可以發揮作用的代碼塊。
變量分為全局變量和局部變量,意義已經在上面講解。
全局變量的作用域是整個文件,全局變量一旦聲明,在整個程序中都是可用的。
C++可以在任何地方定義變量,變量的作用域只有它的下面。
常量
常量是固定值,在程序執行期間不會改變。
常量的值在定義后不能被修改。聲明時加一個 const 關鍵字即可。
或
const int N=105;賦值語句
a=b; ( a:=b )
i++ 或 ++i ( inc(i) )
i+=a ( inc(i,a) )
i-- 或 i-- ( dec(i) )
i-=a ( inc(i,a) )
if條件判斷語句
格式1:
if (條件) 語句; if (條件) {語句1語句2...... }格式2:
if (條件) 語句1;else 語句2; if (條件) {...... } else {...... }布爾運算符:
and 是 &&
or 是 ||
not 是 !
比較運算符:
> 大于 >= 大于等于 < 小于 <= 小于等于 == 等于 != 不等于循環語句
for循環
格式:
for (初始操作; 循環的條件; 變化) {語句1;語句2; }步驟:
Created with Rapha?l 2.2.0初始操作判斷循環條件是否成立?語句1語句2結束yesno舉例:
求1+2+……+100
while循環
while:
while(條件) {語句1;語句2; }do while :
do {語句1;語句2; } while(條件)函數
數學函數(自帶函數)
abs() 整數的絕對值
fabs() 小數的絕對值
ceil() 上取整
floor() 下取整
均在<cmath>或<math.h>頭文件中。
排序函數
對a[1]到a[n]進行從小到大排序
sort(a+1,a+n+1);a+1就是a[1]的內存地址,結尾必須多1。
如果a[0]-a[n-1]排序:
sort(a,a+n);sort()是快速排序,在<algorithm>頭文件中。
自定義函數
初學者一般建議寫在main函數的上面。
類型 函數名(參數表) {...return 答案; }舉例:
int plus(int a,int b) {int ans;ans=a+b;return ans; }無類型函數:
void 函數名(參數表) { //void就是空,無類型=.....不需要return }關于字符,ASCII碼的問題
ASCII碼表:https://blog.csdn.net/Ljnoit/article/details/102649314
int a; char x='A'; a=x; //a就是65了 x=66; //x就是'B'c++可以強制轉換:
(類型)變量 cout<<(int)x<<endl;字符串
字符數組
一個一維的字符數組,可以看成是一個字符串
比如: char s[105];
讀入一個字符串 cin>>s;
注意: cin讀入的時候是從一個可見字符讀到另一個可見字符
空格和回車不讀
如果用 gets(s) 讀入一整行
輸出字符
cout<<s; puts(s); //他會換行字符是單引號 字符串是雙引號
字符串有結尾符
如果s讀入的是abc
那么s[0]=‘a’
s[1]=‘b’
s[2]=‘c’
s[3]=’\0’;
'\0’表示空字符(不是空格)
1.求長度 strlen
int x=strlen(s); //只計算從s[0]到\0有幾個字母2.賦值
strcpy(s1,s2); //把s2 賦值給s13.連接運算
strcat(s1,s2); //把s2接到s1的后面4.比較大小
strcmp(s1,s2)返回值是大于0,說明字典序s1>s2
等于0 ,說明s1=s2
結果小于0 ,說明字典序s1<s2
其他函數都自己寫。
string類型
(一般不用的,因為太慢)
雜項
C++中 0就是假,非零就是真。
恭喜您轉型升級成功!
深談Pascal轉C++:https://blog.csdn.net/Ljnoit/article/details/104960875
總結
以上是生活随笔為你收集整理的【Code】浅谈Pascal转C++的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何利用window下的Dos命令实现将
- 下一篇: VC法则:互联网行业仅前三名可成功