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