10 โปรแกรมที่ยากจะทดสอบพื้นฐานการเขียนโปรแกรมของคุณ
1. โปรแกรมพิมพ์ “ ” ในภาษา C++
ในภาษาโปรแกรม C++ เราใช้เครื่องหมายคำพูดเพื่อแสดงจุดเริ่มต้นและจุดสิ้นสุดของข้อความที่จะพิมพ์ ดังนั้น การพิมพ์เครื่องหมายคำพูด " จำเป็นต้องมีลำดับหลีกพิเศษ ดังนั้น เราจะใช้ \" เพื่อพิมพ์เครื่องหมายคำพูดในภาษา c++
ตัวอย่าง
#include<iostream> using namespace std; int main() { cout<<"\"Tutorials Point \""; return 0; }
ผลลัพธ์
"Tutorials Point "
2. โปรแกรมพิมพ์ตัวเลขตั้งแต่ 1 ถึง 10 โดยใช้คำสั่งวนซ้ำหรือ goto
ในการเขียนโปรแกรมเพื่อวนซ้ำบล็อกโค้ดเดียวกันหลายๆ ครั้ง มีวิธีการสองสามวิธี พวกมันคือ −
- การใช้ลูป
- การใช้คำสั่ง goto
- การใช้ฟังก์ชันแบบเรียกซ้ำ
เนื่องจากคุณไม่สามารถใช้คำสั่งวนซ้ำหรือ goto วิธีเดียวที่ใช้ได้คือการใช้ฟังก์ชันแบบเรียกซ้ำ มาดูกันว่าเราจะใช้การโทรซ้ำเพื่อพิมพ์หมายเลขตั้งแต่ 1 ถึง 10 ได้อย่างไร
ตัวอย่าง
#include <stdio.h> void printNumber(int count){ printf("%d\n", count ); count+=1; if(count<=10) printNumber(count); } int main(){ printNumber(1); return 0; }
ผลลัพธ์
1 2 3 4 5 6 7 8 9 10
3. เพื่อตรวจสอบความเท่าเทียมกันของตัวเลขสองตัวโดยไม่ต้องใช้เลขคณิตหรือตัวดำเนินการเปรียบเทียบ
ในการตรวจสอบความเท่าเทียมกันของตัวเลขสองตัว เราสามารถใช้ตัวดำเนินการ XOR ระดับบิต (^) หากตัวเลขสองตัวเท่ากัน XOR ระดับบิตของตัวเลขเหล่านี้จะเป็น 0 ทีนี้ มาปรับใช้แนวคิดนี้ในโปรแกรมกัน
ตัวอย่าง
#include<iostream> using namespace std; int main(){ int a = 132; int b = 132; if ( (a ^ b) ) cout<<"a is not equal to b"; else cout<<"a is else to b"; return 0; }
ผลลัพธ์
a is equal to b
4. พิมพ์ “สวัสดี” โดยไม่ต้องใช้ a; ใน c/c++
ในภาษาโปรแกรม c/c++ มีวิธีการพิมพ์บางอย่างโดยไม่ต้องใช้เครื่องหมายอัฒภาค เราสามารถทำได้โดยใช้ชนิดส่งคืนของวิธีการส่งออก printf วิธี printf ใน c ++ ส่งคืนจำนวนอักขระที่พิมพ์ไปยังหน้าจอเอาต์พุต เราสามารถใช้และคำสั่งแบบมีเงื่อนไขที่รันได้โดยไม่มีเครื่องหมายอัฒภาค
ตัวอย่าง
#include <stdio.h> int main(){ if(printf("Hello ")) return 0; }
ผลลัพธ์
Hello
5. โปรแกรมหาค่าสูงสุดและต่ำสุดของตัวเลขสองตัวโดยไม่ต้องใช้ตัวดำเนินการเปรียบเทียบ
ในการหาจำนวนสูงสุดและต่ำสุดของตัวเลขสองตัวที่กำหนดโดยไม่ใช้ตัวดำเนินการเปรียบเทียบ เราจะใช้วิธี abs และส่งผลต่างของตัวเลขทั้งสองไปที่นั้น มันจะส่งคืนผลต่างที่เป็นบวกระหว่างตัวเลข และเราจะลบผลต่างสัมบูรณ์นี้ออกเพื่อหาค่าสูงสุดและต่ำสุดของตัวเลขทั้งสองที่กำหนด
ตัวอย่าง
#include<iostream> using namespace std; int main (){ int x = 15, y = 20; cout<<"The numbers are x = "<<x<<"and y = "<<y<<endl; cout<<"The max of the numbers is "<<((x + y) + abs(x - y)) / 2<<endl; cout<<"The min of the numbers is "<<((x + y) - abs(x - y)) / 2<<endl; return 0; }
ผลลัพธ์
The numbers are x = 15and y = 20 The max of the numbers is 20 The min of the numbers is 15
6.พิมพ์ซอร์สโค้ดของโปรแกรมและเอาต์พุต
การพิมพ์ซอร์สโค้ดของโปรแกรมเป็นผลลัพธ์ของโปรแกรมเดียวกันนั้นค่อนข้างจะยุ่งยาก และจำเป็นต้องมีความเข้าใจในภาษาการเขียนโปรแกรมเป็นอย่างดี
ในโปรแกรมนี้ เราจะใช้แนวคิดในการจัดการไฟล์และเปิดไฟล์เดียวกันกับที่เราใช้เขียนโค้ดของเราแล้วพิมพ์เนื้อหาของไฟล์
ตัวอย่าง
#include <stdio.h> int main(void){ FILE *program; char ch; program = fopen(__FILE__, "r"); do{ ch=fgetc(program); printf("%c", ch); } while(ch!=EOF); fclose(program); return 0; }
7. โปรแกรมหาผลรวมของตัวเลขสองตัวโดยไม่ต้องใช้ตัวดำเนินการ +
ผลรวมของตัวเลขสองตัวสามารถพบได้โดยไม่ต้องใช้ตัวดำเนินการ + โดยใช้ตัวดำเนินการ - หลายครั้งในรหัส โปรแกรมด้านล่างแสดงวิธีการ
ตัวอย่าง
#include<iostream> using namespace std; int main(){ int x = 5; int y = 5; int sum = x - (-y); cout<<"The numbers are x = "<<x<<" y = "<<y<<endl; cout<<"Their sum = "<<sum; return 0; }
ผลลัพธ์
The numbers are x = 5 y = 5 Their sum = 10
8. เพื่อตรวจสอบว่าจำนวนที่กำหนดเป็นเลขคู่โดยไม่ต้องใช้ตัวดำเนินการทางคณิตศาสตร์หรือเชิงสัมพันธ์
เพื่อตรวจสอบว่าตัวเลขที่กำหนดเป็นจำนวนคู่หรือไม่ เราสามารถใช้ตัวดำเนินการระดับบิตได้ ค่าบิต &โอเปอเรเตอร์พร้อมกับ 0x01 จะตรวจสอบบิตที่ตำแหน่ง 0 ในตัวเลข หากบิตที่ตำแหน่ง 0 เป็น 1 แสดงว่าตัวเลขนั้นเป็นเลขคี่ ไม่เช่นนั้นจะเป็นเลขคู่
ตัวอย่าง
#include<iostream> using namespace std; int main(){ int a = 154; if(a & 0x01) { cout<<a<<" is an odd number"; } else{ cout<<a<<" is an even number"; } printf("\n"); return 0; }
ผลลัพธ์
154 is an even number
9. โปรแกรมหารตัวเลขด้วย 4 โดยไม่ต้องใช้ / โอเปอเรเตอร์
ในการหารตัวเลขด้วย 4 โดยไม่ต้องใช้ตัวดำเนินการหาร เราสามารถใช้ตัวดำเนินการ shift ที่ถูกต้อง>> ที่เลื่อนบิตสุดท้าย
ตัวอย่าง
#include<iostream> using namespace std; int main(){ int n = 128; cout<<n<<"divided by 4 = "; n = n >> 2; cout<< n; return 0; }
ผลลัพธ์
128 divided by 4 = 32
โปรแกรม 10.C++ คำนวณผลรวมของตัวเลขซ้ำๆ จนกลายเป็นตัวเลขหลักเดียว
การคำนวณผลรวมแบบเรียกซ้ำโดยการเพิ่มตัวเลขทั้งหมดของตัวเลข จากนั้นดูว่าเป็นตัวเลขหลักเดียวหรือไม่ จากนั้นให้หยุดคำนวณผลรวมใหม่จนกว่าผลรวมจะกลายเป็นหลักเดียว
ตัวอย่าง
#include <iostream> using namespace std; int main() { int a = 534; int sum; if(a) sum = a % 9 == 0 ? 9 : a % 9 ; else sum = 0; cout<<"The final sum is "<<sum; return 0; }
ผลลัพธ์
The final sum is 3