برنامه محاسبه نسبت تقسیم سود — راهنمای کاربردی

۴۱ بازدید
آخرین به‌روزرسانی: ۲۴ دی ۱۳۹۸
زمان مطالعه: ۵ دقیقه
برنامه محاسبه نسبت تقسیم سود — راهنمای کاربردی

در این مطلب، روش نوشتن برنامه محاسبه نسبت تقسیم سود بیان و پیاده‌سازی آن در زبان‌های برنامه‌نویسی گوناگون شامل «سی‌پلاس‌پلاس» (++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

اگر نوشته بالا برای شما مفید بوده است، آموزش‌های زیر نیز به شما پیشنهاد می‌شوند:

بر اساس رای ۲ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
منابع:
GeeksforGeeks
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *