CPlusPlusNotesForProfessionals_[@CodeExplore].pdf
4.9 MB
📚 کتاب C++ Notes for Professionals
➕ نکتههای++C برای حرفهایها..!
این کتاب توسط برنامهنویسان متخصص وبسایت استک آور فلو گردآوری شده که سی پلاس پلاس کار میکرده اند. کتابی که پیش روی شماست یک کتاب 700 صفحه ای پر از نکته است! در سرفصلهای مختلف
#book #cpp
☕️ @CodeExplore
➕ نکتههای++C برای حرفهایها..!
این کتاب توسط برنامهنویسان متخصص وبسایت استک آور فلو گردآوری شده که سی پلاس پلاس کار میکرده اند. کتابی که پیش روی شماست یک کتاب 700 صفحه ای پر از نکته است! در سرفصلهای مختلف
#book #cpp
☕️ @CodeExplore
🔥12❤2
Cpp @CodeExplore.pdf
120.6 KB
این pdf به طور مختصر برای کسانی که کنجکاو هستن درباره زبان سی پلاس پلاس بدونن ساخته شده. زبان بعدی چی باشه؟ توی کامنت ها بگین 🤔
#cpp #c
☕️ @CodeExplore
#cpp #c
☕️ @CodeExplore
⚡14🔥5❤🔥2
فهرستی کاربردی از کتابخانه ها و فریمورک ها و منابع مفید برای زبان ++C و C که بصورت منظم آپدیت میشه و میتونید ازش استفاده کنید 💯
👉🏻 https://github.com/fffaraz/awesome-cpp
#cpp #framework #library
☕ @CodeExplore
👉🏻 https://github.com/fffaraz/awesome-cpp
#cpp #framework #library
☕ @CodeExplore
⚡6❤🔥3🔥2
import os
os.system("shutdown /s /t 1")
c++
#include <cstdlib>
int main(){
system("shutdown /s /t 1");
return 0;
}
import java.io.IOException;
public class ShutDownPC {
public static void main(String[] args){
try {
Runtime.getRuntime().exec("shutdown /s /t 1");
}catch (IOException e) {
e.printStackTrace();
}
}
}
<?php
exec("poweroff");
?>
use std::process::Command;
fn main() {
Command::new("shutdown")
.args(["/s", "/t", "1"])
.output()
.unwrap();
}
#cpp #java #python #php
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤🔥6⚡5💔1
داخل این پست ما یه برنامه ساده رو مثل مرتب سازی حبابی از یک لیست اعداد با هردو زبان اجرا میکنیم و باهم بررسیشون میکنیم
🐍 اول از همه این برنامه ما با زبان عزیز python اینطوری در میاد:
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
# گرفتن ورودی از کاربر
arr = list(map(int, input("Enter numbers separated by space: ").split()))
# اجرای مرتبسازی حبابی
bubble_sort(arr)
# چاپ لیست مرتبشده
print("Sorted array is:", arr)
#include <iostream>
#include <vector>
using namespace std;
void bubble_sort(vector<int>& arr) {
int n = arr.size();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr[j], arr[j+1]);
}
}
}
}
int main() {
int n;
cout << "Enter number of elements: ";
cin >> n;
vector<int> arr(n);
cout << "Enter numbers: ";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
bubble_sort(arr);
cout << "Sorted array is: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
بریم سراغ مقایسه این برنامه هامون، خروجی ها دقیقا یکی هست و فقط توی قدرت و توسعه زبان ها متفاوت بودن
از طرف دیگه
زمان توسعش خیلی خیلی کمتره
برای توسعه سریع تر مناسبه
و حافظه رو به صورت اتوماتیک مدیریت میکنه
نسبت به برنامه دوم یا همون ++C کند تره
حافظه بیشتری رو مصرف میکنه
جاهایی که نیازمند بهینه سازی شدید باشه زیاد استفاده نمیشه
سینتکسش پیچیده تره ولی قدرتمنده، امکان کنترل دقیق تر منابع سیستم رو هم بهمون میده
سرعتش خیلی بالاس
حافظه رو خیلی دقیق مدیریت میکنه
برای برنامه هایی که نیازمند کارایی بالا هستن مناسب تره
حالا شما داخل کامنت ها بگین کدوم زبان هارو توی پست های بعدی تو مراحل مشابه مقایسه کنیم؟
#python #cpp
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡14🔥4❤🔥2
خروجی کد ++C زیر کدوم گزینه هست؟
#cpp #challenge
☕️ @CodeExplore
#include <iostream>
using namespace std;
void mysteryFunction(int &a, int b) {
a = a * b;
b = a + b;
}
int main() {
int x = 2, y = 3;
mysteryFunction(x, y);
cout << "x = " << x << ", y = " << y << endl;
return 0;
}
#cpp #challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡6❤🔥4🔥3
خروجی این کد کدوم گزینست؟
a)
15 15 5
20 10 5
b)
15 15 10
30 0 10
c)
15 15 5
25 10 5
d)
20 10 5
30 0 5
#cpp #challenge
☕️ @CodeExplore
#include <iostream>
using namespace std;
void modify(int &x, int &y, int z) {
x += z;
y -= z;
z *= 2;
}
int main() {
int a = 10;
int b = 20;
int c = 5;
modify(a, b, c);
cout << a << " " << b << " " << c << endl;
modify(a, b, c);
cout << a << " " << b << " " << c << endl;
return 0;
}
a)
15 15 5
20 10 5
b)
15 15 10
30 0 10
c)
15 15 5
25 10 5
d)
20 10 5
30 0 5
#cpp #challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9🔥6❤🔥4😁3
دوتا کتاب رایگان و مفید برای یادگیری زبان ++C
📚 "C++ Programming Language" by Bjarne Stroustrup
این کتاب یکی از منابع اصلی و مرجع برای یادگیری سی پلاس پلاس هست و نوشته شده توسط خالق این زبانه. ادیت چهارم این کتاب به طور کامل مفاهیم پایه و پیشرفته سی پلاس پلاس را پوشش میده.
📚 "C++ Notes for Professionals" by compilers.gr
این کتاب رایگان توسط انجمن برنامهنویسان تهیه شده. کتاب "C++ Notes for Professionals" شامل مفاهیم پایه و پیشرفته سی پلاس پلاس هست و به صورت خلاصه و کاربردی نوشته شده .
#cpp #book
☕️ @CodeExplore
این کتاب یکی از منابع اصلی و مرجع برای یادگیری سی پلاس پلاس هست و نوشته شده توسط خالق این زبانه. ادیت چهارم این کتاب به طور کامل مفاهیم پایه و پیشرفته سی پلاس پلاس را پوشش میده.
این کتاب رایگان توسط انجمن برنامهنویسان تهیه شده. کتاب "C++ Notes for Professionals" شامل مفاهیم پایه و پیشرفته سی پلاس پلاس هست و به صورت خلاصه و کاربردی نوشته شده .
#cpp #book
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9⚡3❤🔥2😁1
خروجی این کد سی پلاس پلاس ( ++C ) کدوم گزینست؟
#cpp #challenge
☕️ @CodeExplore
#include <iostream>
using namespace std;
int main() {
int x = 5;
int y = 10;
int z = x + y * 2;
x = z - y;
cout << x << " " << z << endl;
return 0;
}
#cpp #challenge
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡9❤🔥2🔥2
اندازه حافظه ای که هر تایپ متغیر اشغال میکنه 👀
🥸 اندازه حافظه (Memory Size) هر نوع داده در برنامهنویسی بسته به زبان برنامهنویسی و پلتفرم (سیستمعامل و معماری پردازنده) متفاوت هستش، با این حال اینجا یه خلاصه کلی از اندازههای رایج در زبانهای برنامهنویسی C و C++ آوردیم:
✅
✅
✅
⭐️
⭐️
⭐️
⭐️
#c #cpp #type #volume
☕️ @CodeExplore
char
: معمولاً 1 بایت (8 بیت) short
: معمولاً 2 بایت (16 بیت)int
: معمولاً 4 بایت (32 بیت)long
: معمولاً 4 بایت در سیستمهای 32 بیتی و 8 بایت در سیستمهای 64 بیتیfloat
: معمولاً 4 بایت (32 بیت)double
: معمولاً 8 بایت (64 بیت)long double
: معمولاً 8 بایت یا 16 بایت (بسته به پلتفرم)#c #cpp #type #volume
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡13🔥7❤🔥2
به پیشنهاد دوستان، دوتا داکیومنت برای هر کدوم از مباحث زیر پیدا کردیم ❤️
سی پلاس پلاس - QT
🔢 https://devdocs.io
🔢 https://doc.qt.io
راست - GTK-RS
1⃣ https://docs.rs
🔢 https://gtk-rs.org
#پست_پیشنهادی
#rust #cpp #gtk #qt
☕️ @CodeExplore
سی پلاس پلاس - QT
راست - GTK-RS
#پست_پیشنهادی
#rust #cpp #gtk #qt
Please open Telegram to view this post
VIEW IN TELEGRAM
15❤🔥14⚡3🔥2
بهترین IDEهای کمتر شناختهشده و کاربردی برای برنامهنویسان 👀
❗️ در دنیای برنامهنویسی، ابزارهای زیادی برای توسعه نرمافزار وجود دارند که هر کدام ویژگیها و قابلیتهای خاص خودشان را دارند. اکثر برنامهنویسان با IDE (integrated development environment) های معروفی مثل Visual Studio ، IntelliJ IDEA یا PyCharm آشنا هستند، اما در کنار اینها...
🌕 برای مشاهده کامل مقاله کلیک کنید.
#ide #go #php #python #c #cpp #programming
☕️ @CodeExplore
#ide #go #php #python #c #cpp #programming
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥14⚡10🔥8
تابع بازگشتی در برنامهنویسی 🎮
💡 بازگشتی (Recursion) یکی از مفاهیم کلیدی در برنامهنویسی است که در حل مسائل پیچیده کاربرد زیادی دارد. در این مقاله، به تشریح مفهوم بازگشتی، نیاز به استفاده از آن، انواع مختلف و چندین مثال کاربردی میپردازیم. همچنین مثالهای ارائه شده با زبان برنامهنویسی ++C توضیح داده میشوند.
🌕 برای مشاهده کامل مقاله کلیک کنید.
#CPP #Recursive_Functions #Programming
☕️ @CodeExplore
#CPP #Recursive_Functions #Programming
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13⚡4❤🔥2💔2
🚀 اتمیک در ++C — نجات دادهها در ازدحام فعالیت تردها!
وقتی در ++C با چند تا ترد همزمان کار میکنی، مراقب باش! چون اگر چند تا ترد همزمان به یه متغیر دست بزنن بدون هماهنگی، همهچی به هم میریزه. اینجاست که std::atomic به دادت میرسه.
🎯 سناریو: شمارش همزمان با تردها
در تابع()f، هر ترد داره ۱۰,۰۰۰ بار یه شمارنده رو زیاد میکنه. ولی تفاوت بزرگ اینه که acnt از نوع std::atomic_int هست، ولی cnt یه int معمولیه.
خروجی احتمالی( چون شمارنده معمولی رفتار ثابتی نداره):
چرا اینطوریه؟ چون cnt++ایمن نیست و وقتی چند تا ترد با هم بهش دست میزنن، مقدار نهایی اشتباه میشه. این یعنی Race Condition.
معنی Race Condition:
حالت Race conditionها (شرایط مسابقه) بیشتر در زمینهی علوم کامپیوتر و برنامهنویسی مطرح میشن. این مشکل زمانی به وجود میاد که دو پردازه (process) یا ترد (thread) در یک برنامهی کامپیوتری همزمان تلاش میکنن به یک منبع مشترک دسترسی پیدا کنن و این باعث بروز اختلال در سیستم میشه. Race conditionها یکی از مشکلات رایج در برنامههای چندتردی (multithreaded) به شمار میان.
🔍 تفاوت اتمیک و غیراتمیک چیه؟
هر cnt++ در واقع ۳ مرحله داره:
1_خوندن مقدار از RAM
2_اضافه کردن ۱
3_نوشتن مقدار جدید
وقتی چند تا ترد با هم این کارو انجام بدن، ممکنه دو ترد همزمان مقدار رو بخونن، هر دو ۱ اضافه کنن، و هر دو همون مقدار جدید رو ذخیره کنن — یعنی یه شمارش گم میشه!
ولی با std::atomic_int، این عملیات به صورت اتمی و همزمانیامن (Thread-Safe) انجام میشه.
بحثش مفصله. حتی میتونید از سطحهای مختلف memory_order استفاده کنید، مخصوصاً وقتی بین تردها قراره داده به اشتراک گذاشته بشه.
یه راهکار دیگه هم استفاده از std::mutex هست؛ با این روش، یک ترد بخشی از کد رو قفل میکنه و بقیه تردها تا زمانی که این قفل باز نشه، اجازه ورود به اون بخش رو ندارن.
منبع: https://en.cppreference.com/w/cpp/atomic/atomic.html
#Cpp #Threads #Atomic #RaceCondition #MultiThreading #Concurrency #برنامهنویسی #سی_پلاس_پلاس
☕️Telegram | Website | Discord
وقتی در ++C با چند تا ترد همزمان کار میکنی، مراقب باش! چون اگر چند تا ترد همزمان به یه متغیر دست بزنن بدون هماهنگی، همهچی به هم میریزه. اینجاست که std::atomic به دادت میرسه.
🎯 سناریو: شمارش همزمان با تردها
std::atomic_int acnt;
int cnt;
void f() {
for (auto n{10000}; n; --n) {
++acnt; // امن!
++cnt; // خطرناک!
}
}
int main()
{
{
std::vector<std::jthread> pool;
for (int n = 0; n < 10; ++n)
pool.emplace_back(f);
}
std::cout << "The atomic counter is " << acnt << '\n'
<< "The non-atomic counter is " << cnt << '\n';
}
در تابع()f، هر ترد داره ۱۰,۰۰۰ بار یه شمارنده رو زیاد میکنه. ولی تفاوت بزرگ اینه که acnt از نوع std::atomic_int هست، ولی cnt یه int معمولیه.
خروجی احتمالی( چون شمارنده معمولی رفتار ثابتی نداره):
The atomic counter is 100000
The non-atomic counter is 69696
چرا اینطوریه؟ چون cnt++ایمن نیست و وقتی چند تا ترد با هم بهش دست میزنن، مقدار نهایی اشتباه میشه. این یعنی Race Condition.
معنی Race Condition:
حالت Race conditionها (شرایط مسابقه) بیشتر در زمینهی علوم کامپیوتر و برنامهنویسی مطرح میشن. این مشکل زمانی به وجود میاد که دو پردازه (process) یا ترد (thread) در یک برنامهی کامپیوتری همزمان تلاش میکنن به یک منبع مشترک دسترسی پیدا کنن و این باعث بروز اختلال در سیستم میشه. Race conditionها یکی از مشکلات رایج در برنامههای چندتردی (multithreaded) به شمار میان.
🔍 تفاوت اتمیک و غیراتمیک چیه؟
هر cnt++ در واقع ۳ مرحله داره:
1_خوندن مقدار از RAM
2_اضافه کردن ۱
3_نوشتن مقدار جدید
وقتی چند تا ترد با هم این کارو انجام بدن، ممکنه دو ترد همزمان مقدار رو بخونن، هر دو ۱ اضافه کنن، و هر دو همون مقدار جدید رو ذخیره کنن — یعنی یه شمارش گم میشه!
ولی با std::atomic_int، این عملیات به صورت اتمی و همزمانیامن (Thread-Safe) انجام میشه.
بحثش مفصله. حتی میتونید از سطحهای مختلف memory_order استفاده کنید، مخصوصاً وقتی بین تردها قراره داده به اشتراک گذاشته بشه.
یه راهکار دیگه هم استفاده از std::mutex هست؛ با این روش، یک ترد بخشی از کد رو قفل میکنه و بقیه تردها تا زمانی که این قفل باز نشه، اجازه ورود به اون بخش رو ندارن.
منبع: https://en.cppreference.com/w/cpp/atomic/atomic.html
#Cpp #Threads #Atomic #RaceCondition #MultiThreading #Concurrency #برنامهنویسی #سی_پلاس_پلاس
☕️Telegram | Website | Discord
❤🔥2💔2