خلونا نطور بعض من خلال لغات البرمجة
banner
2017-08-11 , 09:50 مساءً
مهند الرسيني’s Avatar
مهند الرسيني

مشارك

المشاركات:461
التسجيل:Jul 2015
مهند الرسيني
mhagr5 كتب:
حلو بس نبي اكثر من ٢١ :19::d


ممكن تجرب تغير الرقم بنفسك وتشوف النتائج :)
https://play.rust-lang.org/?gist=9c33ecea3bcab8...
2017-08-11 , 09:50 مساءً
2017-08-19 , 10:35 صباحاً
eL_NiNo9’s Avatar
eL_NiNo9

نشيط

المشاركات:732
التسجيل:Feb 2009
eL_NiNo9
بما ان الموضوع نايم ابعطيكم تحديين واحد شوي سهل و الثاني شوي صعب (ماهو صعب بس شوية وقت)

السهل:

عندك list رجع اول رقم مكرر ,, مثال:

[CODE]a = [2, 3, 3, 1, 5, 2][/CODE]
يرجع 3
[CODE]a = [8, 4, 6, 2, 6, 4, 7][/CODE]
يرجع 6
اذا مافيه تكرار رجع -1

الشوي صعب:

عندك list و string
ال string يحتوي على مجموعه من الحروف التاليه: ULDR
U: UP
D: DOWN
L: LEFT
R: RIGHT

ال list اعتبرها خليه ,, تحتوي على حروف و نقط
النقطه معناها ان الخليه فاضيه
و المطلوب تحريك الحروف بناءا على المعطى بال string

Image

مثال:

[CODE]lock = ["....",
"AB..",
".C..",
"...."][/CODE]

[CODE]actions = "RDL"[/CODE]

الناتج:
[CODE]["....",
"....",
"B...",
"AC.."][/CODE]

-----

[CODE]lock= ["A.B",
"...",
"C.D"][/CODE]
[CODE]actions= "DR"[/CODE]

الناتج
[CODE]["...",
".AB",
".CD"][/CODE]

----

[CODE]lock= ["V...Y..E.PRFI..",
".ZO...ZU.R.Z...",
".....R.......U.",
"..N.CE...S..RP.",
"...J........T..",
".......H..I....",
".N.JE.......J.F",
"...............",
"A.K..G.........",
"...PW.....W.G..",
"UO..BJT.G.I....",
".R.....J.......",
"...............",
"..M.GCD.....S..",
".X.S..........."][/CODE]

[CODE]actions= "LULLR"[/CODE]

الناتج:
[CODE]["........VYEPRFI",
"........ZOZURZI",
".........RUESRP",
".........NCEJFG",
"..........JTGGT",
"..........HIWJS",
"...........NJBD",
"............AKC",
".............PW",
".............UO",
".............RJ",
".............MG",
".............XS",
"...............",
"..............."][/CODE]
2017-08-19 , 10:35 صباحاً
2017-08-19 , 05:12 مساءً
مهند الرسيني’s Avatar
مهند الرسيني

مشارك

المشاركات:461
التسجيل:Jul 2015
مهند الرسيني
حل التحدي الأول بلغة رست(Rust)

[code]
fn main() {
let duplicate = first_duplicate(&[2, 3, 3, 1, 5, 2]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[8, 4, 6, 2, 6, 4, 7]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[4, 88, 12, 21, 8, 4, 9]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[]);
println!("{}", duplicate);
}

fn first_duplicate(list: &[i32]) -> i32 {
if list.len() < 1 {
return -1;
}

let mut check_list = vec![];
for val in list.iter() {
for check_val in check_list.iter() {
if val == check_val {
return *val;
}
}
check_list.push(*val);
}

0
}
[/code]المخرجات:
[code]
3
6
4
-1[/code]https://play.rust-lang.org/?gist=00d0e71fec0d37...

التحدي الثاني موب واضح لي :)
2017-08-19 , 05:12 مساءً
2017-08-21 , 06:49 صباحاً
eL_NiNo9’s Avatar
eL_NiNo9

نشيط

المشاركات:732
التسجيل:Feb 2009
eL_NiNo9
مهند الرسيني كتب:
حل التحدي الأول بلغة رست(Rust)

[code]
fn main() {
let duplicate = first_duplicate(&[2, 3, 3, 1, 5, 2]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[8, 4, 6, 2, 6, 4, 7]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[4, 88, 12, 21, 8, 4, 9]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[]);
println!("{}", duplicate);
}

fn first_duplicate(list: &[i32]) -> i32 {
if list.len() < 1 {
return -1;
}

let mut check_list = vec![];
for val in list.iter() {
for check_val in check_list.iter() {
if val == check_val {
return *val;
}
}
check_list.push(*val);
}

0
}
[/code]المخرجات:
[code]
3
6
4
-1[/code]https://play.rust-lang.org/?gist=00d0e71fec0d37...

التحدي الثاني موب واضح لي :)


لما يكون ال list عدد واحد راح يرجع لي 0 ,, وهذا الخطاء الوحيد
بمعنى لو عطيتك
[CODE]a = [1][/CODE]
القيمه المسترجعه خطاء

* مافيه hsah بلغة Rust؟

--- بالنسبه للتحدي الثاني --

* المعذره على الشرح البسيط *

المطلوب باختصار تحريك اماكن الاحرف حسب ال actions المعطى ,, النقط معناها ان المكان فاضي و امكانية نقل الحرف له

بالمثال الاول كما موضح بالصور
ال list الاساسي هو :
[CODE]
lock = ["....",
"AB..",
".C..",
"...."]
[/CODE]
وال actions
[CODE]
actions = "RDL"
[/CODE]

اول حرف من ال actions هو R بمعنى تحريك الحروف لليمين
ويصبح الناتج
[CODE]
["....",
"..AB",
"...C",
"...."]
[/CODE]

لاحظ تحرك الحروف لليمين و لايمكن نقل الحرف اذا كان المكان المفترض ينتقل اليه يحتوي على حرف ,, فقط النقل اذا كان المكان يحتوي على نقطه .

ثاني حرف بال actions هو D بمعنى تحريك الاحرف للاسفل
ويصبح الناتج الحالي
[CODE]
["....",
"....",
"...B",
"..AC"]
[/CODE]

هو ناتج لتحريك الحروف لليمين اولا ثم للاسفل

و الحرف الثالث من ال actions هو L يعني لليسار
ويصبح الناتج النهائي هو
[CODE]
["....",
"....",
"B...",
"AC.."]
[/CODE]

كما تم شرحه بالصوره

اتمنى تكون وضحت اكثر :d
2017-08-21 , 06:49 صباحاً
2017-08-21 , 11:46 صباحاً
مهند الرسيني’s Avatar
مهند الرسيني

مشارك

المشاركات:461
التسجيل:Jul 2015
مهند الرسيني
إلا فيه Hash بس أنا حليتها كذا حسبت التحدي يمنع استعمال أكواد جاهزه :) , هذا الحل باستعمال Hash :
[CODE]use std::collections::HashSet;

fn main() {
let duplicate = first_duplicate(&[2, 3, 3, 1, 5, 2]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[8, 4, 6, 2, 6, 4, 7]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[4, 88, 12, 21, 8, 4, 9]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[9]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[]);
println!("{}", duplicate);
}

fn first_duplicate(list: &[i32]) -> i32 {
if list.len() <= 1 {
return -1;
}

let mut numbers = HashSet::new();
for val in list.iter() {
if !numbers.insert(val) {
return *val;
}
}

0
}[/CODE]

عدلت الخطأ الأول وخليته يرجع -1 إذا كانت الـlist تحوي عدد واحد.
https://play.rust-lang.org/?gist=924f05626b7286...

===

حل التحدي الثاني
[CODE]fn main() {
let lock: &mut [&mut [char]] = &mut [&mut ['.', 'h', 'a', '.'],
&mut ['.', '.', 'a', 't'],
&mut ['T', '.', '.', 's'],
&mut ['!', 'W', '.', '.'],
&mut ['H', '.', 'r', 'd'],
&mut [';', 'a', ')', '.']];
run_actions("UR".to_string(), lock);
println!("{:?}", lock);
}

fn run_actions(actions : String, lock: &mut[&mut [char]]) {
let mut chars = actions.chars();
while let Some(val) = chars.next() {
match val {
'U' | 'u' => move_up(lock),
'D' | 'd' => move_down(lock),
'R' | 'r' => move_right(lock),
'L' | 'l' => move_left(lock),
_ => {},
}
}
}

fn move_up(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for c_i in 0..col_len {
let mut empty_index = row_len - 1;
// to find first empty from top to down
for r_i in 0..row_len {
if lock[r_i][c_i] == '.' {
empty_index = r_i;
break;
}
}
// move letters to up
for r_i in empty_index..row_len {
if lock[r_i][c_i] != '.' {
lock[empty_index][c_i] = lock[r_i][c_i];
lock[r_i][c_i] = '.';
empty_index += 1;
}
}
}
}

fn move_down(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for c_i in 0..col_len {
let mut empty_index = 0;
// to find first empty from down to top
let mut r_i = row_len;
while r_i > 0 {
if lock[r_i - 1][c_i] == '.' {
empty_index = r_i;
break;
}
r_i -= 1;
}
// move letters to down
let mut r_i = empty_index;
while r_i > 0 {
if lock[r_i - 1][c_i] != '.' {
lock[empty_index - 1][c_i] = lock[r_i - 1][c_i];
lock[r_i - 1][c_i] = '.';
empty_index -= 1;
}
r_i -= 1;
}
}
}

fn move_left(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for r_i in 0..row_len {
let mut empty_index = col_len - 1;
// to find first empty from left to right
for c_i in 0..col_len {
if lock[r_i][c_i] == '.' {
empty_index = c_i;
break;
}
}
// move letters to left
for c_i in empty_index..col_len {
if lock[r_i][c_i] != '.' {
lock[r_i][empty_index] = lock[r_i][c_i];
lock[r_i][c_i] = '.';
empty_index += 1;
}
}
}
}

fn move_right(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for r_i in 0..row_len {
let mut empty_index = 0;
// to find first empty from right to left
let mut c_i = col_len;
while c_i > 0 {
if lock[r_i][c_i - 1] == '.' {
empty_index = c_i;
break;
}
c_i -= 1;
}
// move letters to right
let mut c_i = empty_index;
while c_i > 0 {
if lock[r_i][c_i - 1] != '.' {
lock[r_i][empty_index - 1] = lock[r_i][c_i - 1];
lock[r_i][c_i - 1] = '.';
empty_index -= 1;
}
c_i -= 1;
}
}
}[/CODE]
المخرجات:
[CODE]
[['T', 'h', 'a', 't'],
['!', 'W', 'a', 's'],
['H', 'a', 'r', 'd'],
['.', '.', ';', ')'],
['.', '.', '.', '.'],
['.', '.', '.', '.']]
[/CODE]
https://play.rust-lang.org/?gist=3f3f9456c8cbab...
يمدي نسوي لعبة 2048 بهذا الكود :)
2017-08-21 , 11:46 صباحاً
2017-08-22 , 04:57 صباحاً
eL_NiNo9’s Avatar
eL_NiNo9

نشيط

المشاركات:732
التسجيل:Feb 2009
eL_NiNo9
مهند الرسيني كتب:
إلا فيه Hash بس أنا حليتها كذا حسبت التحدي يمنع استعمال أكواد جاهزه :) , هذا الحل باستعمال Hash :
[CODE]use std::collections::HashSet;

fn main() {
let duplicate = first_duplicate(&[2, 3, 3, 1, 5, 2]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[8, 4, 6, 2, 6, 4, 7]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[4, 88, 12, 21, 8, 4, 9]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[9]);
println!("{}", duplicate);

let duplicate = first_duplicate(&[]);
println!("{}", duplicate);
}

fn first_duplicate(list: &[i32]) -> i32 {
if list.len() <= 1 {
return -1;
}

let mut numbers = HashSet::new();
for val in list.iter() {
if !numbers.insert(val) {
return *val;
}
}

0
}[/CODE]

عدلت الخطأ الأول وخليته يرجع -1 إذا كانت الـlist تحوي عدد واحد.
https://play.rust-lang.org/?gist=924f05626b7286...

===

حل التحدي الثاني
[CODE]fn main() {
let lock: &mut [&mut [char]] = &mut [&mut ['.', 'h', 'a', '.'],
&mut ['.', '.', 'a', 't'],
&mut ['T', '.', '.', 's'],
&mut ['!', 'W', '.', '.'],
&mut ['H', '.', 'r', 'd'],
&mut [';', 'a', ')', '.']];
run_actions("UR".to_string(), lock);
println!("{:?}", lock);
}

fn run_actions(actions : String, lock: &mut[&mut [char]]) {
let mut chars = actions.chars();
while let Some(val) = chars.next() {
match val {
'U' | 'u' => move_up(lock),
'D' | 'd' => move_down(lock),
'R' | 'r' => move_right(lock),
'L' | 'l' => move_left(lock),
_ => {},
}
}
}

fn move_up(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for c_i in 0..col_len {
let mut empty_index = row_len - 1;
// to find first empty from top to down
for r_i in 0..row_len {
if lock[r_i][c_i] == '.' {
empty_index = r_i;
break;
}
}
// move letters to up
for r_i in empty_index..row_len {
if lock[r_i][c_i] != '.' {
lock[empty_index][c_i] = lock[r_i][c_i];
lock[r_i][c_i] = '.';
empty_index += 1;
}
}
}
}

fn move_down(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for c_i in 0..col_len {
let mut empty_index = 0;
// to find first empty from down to top
let mut r_i = row_len;
while r_i > 0 {
if lock[r_i - 1][c_i] == '.' {
empty_index = r_i;
break;
}
r_i -= 1;
}
// move letters to down
let mut r_i = empty_index;
while r_i > 0 {
if lock[r_i - 1][c_i] != '.' {
lock[empty_index - 1][c_i] = lock[r_i - 1][c_i];
lock[r_i - 1][c_i] = '.';
empty_index -= 1;
}
r_i -= 1;
}
}
}

fn move_left(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for r_i in 0..row_len {
let mut empty_index = col_len - 1;
// to find first empty from left to right
for c_i in 0..col_len {
if lock[r_i][c_i] == '.' {
empty_index = c_i;
break;
}
}
// move letters to left
for c_i in empty_index..col_len {
if lock[r_i][c_i] != '.' {
lock[r_i][empty_index] = lock[r_i][c_i];
lock[r_i][c_i] = '.';
empty_index += 1;
}
}
}
}

fn move_right(lock: &mut[&mut [char]]) {
let row_len = lock.len();
if row_len == 0 {
return;
}

let col_len = lock[0].len();
if col_len == 0 {
return;
}

for r_i in 0..row_len {
let mut empty_index = 0;
// to find first empty from right to left
let mut c_i = col_len;
while c_i > 0 {
if lock[r_i][c_i - 1] == '.' {
empty_index = c_i;
break;
}
c_i -= 1;
}
// move letters to right
let mut c_i = empty_index;
while c_i > 0 {
if lock[r_i][c_i - 1] != '.' {
lock[r_i][empty_index - 1] = lock[r_i][c_i - 1];
lock[r_i][c_i - 1] = '.';
empty_index -= 1;
}
c_i -= 1;
}
}
}[/CODE]
المخرجات:
[CODE]
[['T', 'h', 'a', 't'],
['!', 'W', 'a', 's'],
['H', 'a', 'r', 'd'],
['.', '.', ';', ')'],
['.', '.', '.', '.'],
['.', '.', '.', '.']]
[/CODE]
https://play.rust-lang.org/?gist=3f3f9456c8cbab...
يمدي نسوي لعبة 2048 بهذا الكود :)


يعطيك العافيه ،،
نقطه بسيطه غابت عنك وهي ان ال list عباره عن string وليس character

[CODE]
lock = ["....",
"AB..",
".C..",
"...."]
[/CODE]

،،
بقية الشباب وش صار عليكم ،، معانا؟ :d
2017-08-22 , 04:57 صباحاً
2017-08-22 , 12:58 مساءً
مهند الرسيني’s Avatar
مهند الرسيني

مشارك

المشاركات:461
التسجيل:Jul 2015
مهند الرسيني
eL_NiNo9 كتب:
يعطيك العافيه ،،
نقطه بسيطه غابت عنك وهي ان ال list عباره عن string وليس character

[CODE]
lock = ["....",
"AB..",
".C..",
"...."]
[/CODE]،،
بقية الشباب وش صار عليكم ،، معانا؟ :d


نعم قصدت أخليها مصفوفة من الحروف عشان المترجم(Compiler) يتأكد أن كل الصفوف تحمل نفس الطول ولو ما سار الشيء هذا البرنامج ما راح يتم بنائه بينما لو خليتها نص(String) المترجم ما راح يتأكد ولازم أنا أتحقق من طول الصفوف كلها ..
2017-08-22 , 12:58 مساءً
2017-08-29 , 10:04 صباحاً
mhagr5’s Avatar
mhagr5

مشارك

المشاركات:517
التسجيل:Mar 2008
mhagr5
مهند الرسيني كتب:
ممكن تجرب تغير الرقم بنفسك وتشوف النتائج :)
https://play.rust-lang.org/?gist=9c33ecea3bcab8...




ال variable حقك كان محدود على 15 :d انت بخلت علينا كان حطيته 30 اقل شي :d

Image


[CODE]fn main() {
fib_print(30);
}

fn fib_print(num: i32) {
if num >= 0 {
println!("{}", fib(num));
fib_print(num - 1);
}
}

fn fib(num: i32) -> i32 {
if num == 0 || num == 1 {
num
} else if num > 1 {
fib(num - 1) + fib(num - 2)
} else {
panic!("negative numbers are not supported")
}
}[/CODE]


طبعا أتكلم على fib_print(30) هو كان 15 فقط

الامر كان بيدك

Image


:d لكن صراحة عجبني تنسيق الكود. رائع جداْ
2017-08-29 , 10:04 صباحاً
2017-08-29 , 10:45 صباحاً
mhagr5’s Avatar
mhagr5

مشارك

المشاركات:517
التسجيل:Mar 2008
mhagr5
يا شباب ليه وقفت الابداعات. نبي تحديات اكثر. التحديات هي تطور المبرمجين كل شخص يعرف له لغة و يحط حله ف اللغة اللي يبيها و بكذا نتعلم كلنا.


ف هذا الموضوع اتعلمت عن لغة Rust شي ما كنت اتوقعه.


ف اسمحوا لي احط لكم هالتحدي :d

نبي Binary Search بما انه (واحد) من اشهر الطرق للحصول على المعلومة

هذا البايثون موجود

Image


و هذا output

Image



اذا فيه احد بيتكفل ف ال Java و ال Scale او اسويها لكن نبي لغات جديدة


اي واحد يسويه ف لغة جديدة

JS
او
C++
او
C#

يكون جميل.

و اي لغة ثانية احنا نرحب بها!
2017-08-29 , 10:45 صباحاً
2017-09-01 , 05:17 صباحاً
eL_NiNo9’s Avatar
eL_NiNo9

نشيط

المشاركات:732
التسجيل:Feb 2009
eL_NiNo9
وقف بسبب ضعف المشاركه ,, ما اشوف الا مهند يشارك مشكورا
شي اكيد الباقين راح يسحبون اذا صاحب الموضوع يكتب مره و يسحب اسبوع :d

---------------

عموما, هذا ال binary search بال JS

[CODE]

var list = [1,4,5,8,9, 11];

binarySearch(list, 4, 0, list.length);

[/CODE]

[CODE]
function binarySearch(list, i, low, high) {
if(low > high){
console.log("NOT FOUND!");
return -1;
}
var mid = Math.floor((low + high) / 2)
if(list[mid] == i){
console.log("FOUND " + list[mid]);

} else {
if(list[mid] > i){
binarySearch(list, i, 0, mid - 1)
} else {
binarySearch(list, i, mid + 1, high)
}
}
}
[/CODE]
2017-09-01 , 05:17 صباحاً
2017-09-03 , 03:06 مساءً
ffahadd’s Avatar
ffahadd

مشارك

المشاركات:177
التسجيل:Feb 2015
ffahadd
هذا برنامج تدخل فيه سعر المنتج وقيمة الخصم بالمية ويطلع لك السعر الجديد :d
طبعا اللغة هي جافا :69:

[CODE]import java.util.Scanner;


public class Test {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

double price,dis;

System.out.print("Enter the price: ");
price = input.nextDouble();
System.out.print("Enter the discount in %: ");
dis = input.nextDouble();

price = price - (price/100 * dis);

System.out.printf("\n\nThe new price is %.1f",price);



}

}
[/CODE]


لحد يضحك توي في بداية البرمجة :d:d
2017-09-03 , 03:06 مساءً
2017-09-03 , 06:18 مساءً
Eqlaaaa3’s Avatar
Eqlaaaa3

متميز

المشاركات:7976
التسجيل:Nov 2010
Eqlaaaa3
ffahadd كتب:
هذا برنامج تدخل فيه سعر المنتج وقيمة الخصم بالمية ويطلع لك السعر الجديد :d

[CODE]import java.util.Scanner;


public class Test {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);

double price,dis;

System.out.print("Enter the price: ");
price = input.nextDouble();
System.out.print("Enter the discount in %: ");
dis = input.nextDouble();

price = price - (price/100 * dis);

System.out.printf("\n\nThe new price is %.1f",price);



}

}
[/CODE]لحد يضحك توي في بداية البرمجة :d:d

لا شغلك مرره ممتاز ماشاءالله
بس ماذكرت ايش نوع اللغة برمجه
بداية موفقة :)

:17:
2017-09-03 , 06:18 مساءً
2017-09-03 , 09:48 مساءً
ffahadd’s Avatar
ffahadd

مشارك

المشاركات:177
التسجيل:Feb 2015
ffahadd
Eqlaaaa3 كتب:
لا شغلك مرره ممتاز ماشاءالله
بس ماذكرت ايش نوع اللغة برمجه
بداية موفقة :)

:17:


يعطيك العافية على التحفيز :61:
اللغة المستخدمة هي جافا :69:
2017-09-03 , 09:48 مساءً
2017-09-15 , 06:52 مساءً
Eqlaaaa3’s Avatar
Eqlaaaa3

متميز

المشاركات:7976
التسجيل:Nov 2010
Eqlaaaa3
هذا برنامج يسألك بالبداية ايش تبي تحسب بالجمع او بالضرب

ثم يحولك على الى اخترته مثلآ انا اخترت الجمع على طول يحولني الحاسبة الجمع

سبب اني سويت برنامج هذا عشان يسهل علي ويعلمني الخيارات الى ابيها D:


[CODE]// All copyright to Abdulaziz and you cannot use it without any promission.
void adda();
void mult();
int main(){

int num;
cout << "to chose addation <1>"< << "to choes multiplay <2>" << endl;
cin >> num;
switch (num)
{
case 1:
adda();
break;
case 2:
mult();
break;
default:
cout << "That was error buddy :D" << endl;

}

system("pause"); // please pause program
}

void adda()
{

int sum1, sum2, result;
cout << "Please enter two numbers to add them togther" << endl;
cin >> sum1 >> sum2;

result = sum1 + sum2;

cout << sum1 << " + " << sum2 << "= " << result << endl;
}


void mult(){

int mult1, mult2, result;

cout << "enter two number to multplay" << endl;
cin >> mult1 >> mult2;

result = mult1 * mult2;

cout << mult1 << " * " << mult2 << "= " <
}[/CODE]

هذا اخراج

[CODE]to chose addation <1>
to choes multiplay <2>
2
enter two number to multplay
593
345
593 * 345= 204585[/CODE]
2017-09-15 , 06:52 مساءً