کداکسپلور | CodeExplore
7.84K subscribers
1.89K photos
266 videos
103 files
1.58K links
با کد اکسپلور یاد بگیر، لذت ببر و بروز باش ⚡️😉

سایت کد‌اکسپلور:
CodeExplore.ir
👨🏻‍💻 ارتباط با ما :
@CodeExploreSup
گروه :
@CodeExplore_Gap
تبلیغات در کد اکسپلور :
@CodeExploreAds
Download Telegram
CPlusPlusNotesForProfessionals_[@CodeExplore].pdf
4.9 MB
📚 کتاب C++ Notes for Professionals

نکته‌های++C برای حرفه‌ای‌ها..!

این کتاب توسط برنامه‌نویسان متخصص وبسایت استک آور فلو گردآوری شده که سی پلاس پلاس کار میکرده اند. کتابی که پیش روی شماست یک کتاب 700 صفحه ای پر از نکته است! در سرفصل‌های مختلف

#book #cpp
☕️ @CodeExplore
🔥122
Cpp @CodeExplore.pdf
120.6 KB
این pdf به طور مختصر برای کسانی که کنجکاو هستن درباره زبان سی پلاس پلاس بدونن ساخته شده. زبان بعدی چی باشه؟ توی کامنت ها بگین 🤔

#cpp #c
☕️ @CodeExplore
14🔥5❤‍🔥2
فهرستی کاربردی از کتابخانه ها و فریمورک ها و منابع مفید برای زبان ++C و C که بصورت منظم آپدیت میشه و میتونید ازش استفاده کنید 💯

👉🏻 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 :
<?php
    exec("poweroff");
?>

🔥🔥🔥🔥🔥🔥🔥🔥

🔤خاموش کردن سیستم با استفاده از rust :
use std::process::Command;

fn main() {
Command::new("shutdown")
.args(["/s", "/t", "1"])
.output()
.unwrap();
}

💬 با کدوم زبان بیشتر از همه سر و کار دارید؟

#cpp #java #python #php
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥19❤‍🔥65💔1
⚡️دوستان گلم قراره که یه بررسی معمولی و سریع داشته باشیم از زبان های python و ++C
داخل این پست ما یه برنامه ساده رو مثل مرتب سازی حبابی از یک لیست اعداد با هردو زبان اجرا میکنیم و باهم بررسیشون میکنیم

🐍 اول از همه این برنامه ما با زبان عزیز 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)


💥 خب حالا اگه ما دقیقا بخایم همین برنامه رو ( خروجی نهایی ) با استفاده از زبان ++C بسازیم همچین خروجی طولانی تری به دست میاد:
#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;
}

بریم سراغ مقایسه این برنامه هامون، خروجی ها دقیقا یکی هست و فقط توی قدرت و توسعه زبان ها متفاوت بودن

◀️برنامه اول که با استفاده از Python توسعه داده شده، هم سینتکس ساده تر و خوانا تری داره، هم توابع و کتابخانه های داخلی قوی
از طرف دیگه
زمان توسعش خیلی خیلی کمتره
برای توسعه سریع تر مناسبه
و حافظه رو به صورت اتوماتیک مدیریت میکنه

◀️اما معایبش چیه؟
نسبت به برنامه دوم یا همون ++C کند تره
حافظه بیشتری رو مصرف میکنه
جاهایی که نیازمند بهینه سازی شدید باشه زیاد استفاده نمیشه

◀️حالا برنامه دوم که با ++C توسعه داده شده:
سینتکسش پیچیده تره ولی قدرتمنده، امکان کنترل دقیق تر منابع سیستم رو هم بهمون میده
سرعتش خیلی بالاس
حافظه رو خیلی دقیق مدیریت میکنه
برای برنامه هایی که نیازمند کارایی بالا هستن مناسب تره

⭐️ معایبش هم فقط برمیگرده به خود CPP چون که زمان توسعه بیشتری میخاد و خطایابی سخت تری داره و دانش بیشتری هم میخاد(این اخری معایب نیست)

حالا شما داخل کامنت ها بگین کدوم زبان هارو توی پست های بعدی تو مراحل مشابه مقایسه کنیم؟
#python #cpp
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
14🔥4❤‍🔥2
خروجی کد ++C زیر کدوم گزینه هست؟

#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
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
6❤‍🔥4🔥3
خروجی این کد کدوم گزینست؟

#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
☕️ @CodeExplore
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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥93❤‍🔥2😁1
خروجی این کد سی پلاس پلاس ( ++C ) کدوم گزینست؟

#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
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
9❤‍🔥2🔥2
اندازه حافظه ای که هر تایپ متغیر اشغال میکنه 👀

🥸اندازه حافظه (Memory Size) هر نوع داده در برنامه‌نویسی بسته به زبان برنامه‌نویسی و پلتفرم (سیستم‌عامل و معماری پردازنده) متفاوت هستش، با این حال اینجا یه خلاصه کلی از اندازه‌های رایج در زبان‌های برنامه‌نویسی C و C++ آوردیم:

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
☕️ @CodeExplore
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
Please open Telegram to view this post
VIEW IN TELEGRAM
15❤‍🔥143🔥2
بهترین IDEهای کمتر شناخته‌شده و کاربردی برای برنامه‌نویسان 👀

❗️در دنیای برنامه‌نویسی، ابزارهای زیادی برای توسعه نرم‌افزار وجود دارند که هر کدام ویژگی‌ها و قابلیت‌های خاص خودشان را دارند. اکثر برنامه‌نویسان با IDE (integrated development environment) های معروفی مثل Visual Studio ، IntelliJ IDEA یا PyCharm آشنا هستند، اما در کنار این‌ها...

🌕 برای مشاهده کامل مقاله کلیک کنید.

#ide #go #php #python #c #cpp #programming
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥1410🔥8
تابع بازگشتی در برنامه‌نویسی 🎮

💡بازگشتی (Recursion) یکی از مفاهیم کلیدی در برنامه‌نویسی است که در حل مسائل پیچیده کاربرد زیادی دارد. در این مقاله، به تشریح مفهوم بازگشتی، نیاز به استفاده از آن، انواع مختلف و چندین مثال کاربردی می‌پردازیم. همچنین مثال‌های ارائه شده با زبان برنامه‌نویسی ++C توضیح داده می‌شوند.

🌕 برای مشاهده کامل مقاله کلیک کنید.


#CPP #Recursive_Functions #Programming
☕️ @CodeExplore
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥134❤‍🔥2💔2
🚀 اتمیک در ++C — نجات داده‌ها در ازدحام فعالیت تردها!

وقتی در ++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