برنامه محاسبه نسبت تقسیم سود — راهنمای کاربردی
در این مطلب، روش نوشتن برنامه محاسبه نسبت تقسیم سود بیان و پیادهسازی آن در زبانهای برنامهنویسی گوناگون شامل «سیپلاسپلاس» (++C)، «جاوا» (Java)، «پایتون» (Python)، «سیشارپ» (#C) و «پیاچ پی» (PHP) انجام شده است.
برنامه محاسبه نسبت تقسیم سود
یک آرایه از مقادیر و دورههای زمانی داده شده است. این آرایه، میزان پولی که N فرد سرمایهگذاری کردهاند و همچنین، مدت زمانی که هر یک از آنها سرمایهگذاری کردهاند را نشان میدهد. اکنون، هدف محاسبه نسبت تقسیم سود آنها در پایان مدت سرمایهگذاری است. مثال زیر برای درک بهتر مسئله، قابل توجه است.
Input: n = 2, Amount1 = 7000, Time1 = 12 months Amount2 = 6000, Time2 = 6 months Output: 7 : 3 Input: n = 3, Amount1 = 5000, Time1 = 6 months Amount2 = 6000, Time2 = 6 months Amount3 = 1000, Time3 = 12 months Output: 5 : 6: 2
الگوریتم مورد استفاده برای محاسبه نسبت تقسیم سود در ادامه آمده است.
- سهم اولین فرد: (میزان پولی که توسط اولین فرد سرمایهگذاری شده است) * (مدت زمان سرمایهگذاری فرد)
- سهم دومین فرد: (میزان پولی که توسط دومین فرد سرمایهگذاری شده است) * (مدت زمان سرمایهگذاری فرد)
- سهم سومین فرد: (میزان پولی که توسط سومین فرد سرمایهگذاری شده است) * (مدت زمان سرمایهگذاری فرد)
و به همین ترتیب برای سایر افراد نیز محاسبه میشود.
- نسبت تقسیم سود: سهم اولین نفر : سهم دومین نفر : سهم سومین نفر
در ادامه، پیادهسازی رویکرد بالا، در زبانهای برنامهنویسی گوناگون انجام شده است.
برنامه محاسبه نسبت تقسیم سود در ++C
1// C++ implementation of above approach
2#include <bits/stdc++.h>
3using namespace std;
4
5// Calculating GCD of an array.
6int find_Gcd(int crr[], int n)
7{
8 int i;
9 int result = crr[0];
10 for (i = 1; i < n; i++)
11 result = __gcd(crr[i], result);
12
13 return result;
14}
15
16// Function to calculate the Share
17void profitRatio(int amountArr[], int timeTrr[],
18 int n)
19{
20 int i, crr[n];
21 for (i = 0; i < n; i++)
22 crr[i] = amountArr[i] * timeTrr[i];
23
24 int Share = find_Gcd(crr, n);
25
26 for (i = 0; i < n - 1; i++)
27 cout << crr[i] / Share << " : ";
28 cout << crr[i] / Share;
29}
30
31// Driver Code
32int main()
33{
34 int amountArr[] = { 5000, 6000, 1000 };
35 int timeTrr[] = { 6, 6, 12 };
36
37 int n = sizeof(amountArr) / sizeof(amountArr[0]);
38
39 profitRatio(amountArr, timeTrr, n);
40
41 return 0;
42}
برنامه محاسبه نسبت تقسیم سود در جاوا
1// Java implementation of
2// above approach
3import java.io.*;
4
5class GFG
6{
7
8// Recursive function to
9// return gcd of a and b
10static int __gcd(int a, int b)
11{
12 // Everything divides 0
13 if (a == 0 || b == 0)
14 return 0;
15
16 // base case
17 if (a == b)
18 return a;
19
20 // a is greater
21 if (a > b)
22 return __gcd(a - b, b);
23 return __gcd(a, b - a);
24}
25
26// Calculating GCD of an array.
27static int find_Gcd(int crr[], int n)
28{
29 int i;
30 int result = crr[0];
31 for (i = 1; i < n; i++)
32 result = __gcd(crr[i], result);
33
34 return result;
35}
36
37// Function to calculate the Share
38static void profitRatio(int amountArr[],
39 int timeTrr[],
40 int n)
41{
42 int i;
43 int crr[] = new int[n] ;
44 for (i = 0; i < n; i++)
45 crr[i] = amountArr[i] *
46 timeTrr[i];
47
48 int Share = find_Gcd(crr, n);
49
50 for (i = 0; i < n - 1; i++)
51 System.out.print(crr[i] / Share + " : ");
52 System.out.print(crr[i] / Share);
53}
54
55// Driver Code
56public static void main (String[] args)
57{
58 int amountArr[] = {5000, 6000, 1000};
59 int timeTrr[] = {6, 6, 12};
60
61 int n = amountArr.length;
62
63 profitRatio(amountArr, timeTrr, n);
64}
65}
66
67// This code is contributed
68// by inder_verma.
برنامه محاسبه نسبت تقسیم سود در پایتون ۳
1# Python3 implementation of above approach
2
3# Recursive function to
4# return gcd of a and b
5def __gcd(a, b):
6
7 # Everything divides 0
8 if(a == 0 or b == 0):
9 return 0;
10
11 # base case
12 if(a == b):
13 return a;
14
15 # a is greater
16 if(a > b):
17 return __gcd(a - b, b);
18 return __gcd(a, b - a);
19
20# Calculating GCD of an array.
21def find_Gcd(crr, n):
22 result = crr[0];
23 for i in range(1, n):
24 result = __gcd(crr[i], result);
25 return result;
26
27# Function to calculate the Share
28def profitRatio(amountArr, timeTrr, n):
29 i = 0;
30 crr = [0] * n;
31 for i in range(n):
32 crr[i] = amountArr[i] * timeTrr[i];
33
34 Share = find_Gcd(crr, n);
35
36 for i in range(n - 1):
37 print(int(crr[i] / Share),
38 end = " : ");
39 print(int(crr[i + 1] / Share));
40
41# Driver Code
42amountArr = [5000, 6000, 1000];
43timeTrr = [6, 6, 12];
44
45n = len(amountArr);
46
47profitRatio(amountArr, timeTrr, n);
48
49# This code is contributed
50# by mits
برنامه محاسبه نسبت تقسیم سود در #C
1// C# implementation of
2// above approach
3using System;
4
5class GFG
6{
7
8// Recursive function to
9// return gcd of a and b
10static int __gcd(int a, int b)
11{
12 // Everything divides 0
13 if (a == 0 || b == 0)
14 return 0;
15
16 // base case
17 if (a == b)
18 return a;
19
20 // a is greater
21 if (a > b)
22 return __gcd(a - b, b);
23 return __gcd(a, b - a);
24}
25
26// Calculating GCD of an array.
27static int find_Gcd(int []crr, int n)
28{
29 int i;
30 int result = crr[0];
31 for (i = 1; i < n; i++)
32 result = __gcd(crr[i], result);
33
34 return result;
35}
36
37// Function to calculate the Share
38static void profitRatio(int []amountArr,
39 int []timeTrr,
40 int n)
41{
42 int i;
43 int []crr = new int[n] ;
44 for (i = 0; i < n; i++)
45 crr[i] = amountArr[i] *
46 timeTrr[i];
47
48 int Share = find_Gcd(crr, n);
49
50 for (i = 0; i < n - 1; i++)
51 Console.Write(crr[i] / Share + " : ");
52 Console.Write(crr[i] / Share);
53}
54
55// Driver Code
56public static void Main ()
57{
58 int []amountArr = {5000, 6000, 1000};
59 int []timeTrr = {6, 6, 12};
60
61 int n = amountArr.Length;
62
63 profitRatio(amountArr, timeTrr, n);
64}
65}
66
67// This code is contributed
68// by inder_verma.
برنامه محاسبه نسبت تقسیم سود در PHP
1<?php
2// PHP implementation of
3// above approach
4
5// Recursive function to
6// return gcd of a and b
7function __gcd($a, $b)
8{
9 // Everything divides 0
10 if ($a == 0 or $b == 0)
11 return 0;
12
13 // base case
14 if ($a == $b)
15 return $a;
16
17 // a is greater
18 if ($a > $b)
19 return __gcd($a - $b, $b);
20 return __gcd($a, $b - $a);
21}
22
23// Calculating GCD of an array.
24function find_Gcd($crr, $n)
25{
26 $i;
27 $result = $crr[0];
28 for ($i = 1; $i < $n; $i++)
29 $result = __gcd($crr[$i],
30 $result);
31
32 return $result;
33}
34
35// Function to calculate the Share
36function profitRatio($amountArr,
37 $timeTrr, $n)
38{
39 $i;
40 $crr = array();
41 for ($i = 0; $i < $n; $i++)
42 $crr[$i] = $amountArr[$i] *
43 $timeTrr[$i];
44
45 $Share = find_Gcd($crr, $n);
46
47 for ($i = 0; $i < $n - 1; $i++)
48 echo $crr[$i] / $Share , " : ";
49 echo $crr[$i] / $Share;
50}
51
52// Driver Code
53$amountArr = array(5000, 6000, 1000);
54$timeTrr = array(6, 6, 12);
55
56$n = count($amountArr);
57
58profitRatio($amountArr, $timeTrr, $n);
59
60// This code is contributed
61// by inder_verma
62?>
خروجی قطعه کد بالا، به صورت زیر است.
5 : 6 : 2
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند: