Практикум по программированию. Основы. Массивы. Сборка по возрастанию

From AsIsWiki
(Difference between revisions)
Jump to: navigation, search
 
Line 9: Line 9:
  
 
<pre>
 
<pre>
import java.util.Scanner;
 
import java.lang.Math;
 
 
 
public class Task15 {
 
public class Task15 {
  
Line 18: Line 15:
  
 
     public static void main(String[] args) {
 
     public static void main(String[] args) {
       
 
        Scanner in = new Scanner(System.in);
 
 
          
 
          
 
System.out.println();
 
System.out.println();
Line 29: Line 24:
 
int b[] = new int[n + 1];
 
int b[] = new int[n + 1];
  
a[0] = (int) (3 + z * Math.random());
+
a[0] = (int) (z * Math.random());
b[0] = (int) (3 + z * Math.random());
+
b[0] = (int) (z * Math.random());
  
 
for (int i = 0; i < n - 1; i++) {
 
for (int i = 0; i < n - 1; i++) {
    a[i + 1] = a[i] + (int) (3 + z * Math.random());
+
    a[i + 1] = a[i] + (int) (z * Math.random());
    b[i + 1] = b[i] + (int) (3 + z * Math.random());
+
    b[i + 1] = b[i] + (int) (z * Math.random());
 
}
 
}
  
Line 85: Line 80:
  
 
<pre>
 
<pre>
 +
// g++ 4.2
 +
 +
#include <iostream>
 +
 +
using namespace std;
 +
 +
int main() {
 +
 +
    cout << "\n Формирование массива C[2 * N] из элементов A[N] и B[N]\n";
 +
    cout << "      по правилу: C[1] <= C[2] <= ... <= C[2 * N]\n";
 +
    cout << "--------------------------------------------------------\n";
 +
   
 +
    srand((int)time(0));
 +
   
 +
    const int n = 10;
 +
    const int z = 9;
 +
   
 +
    int a[n + 1];
 +
    int b[n + 1];
 +
   
 +
    a[0] = rand() % z;
 +
    b[0] = rand() % z;
 +
   
 +
    for (int i = 0; i < n - 1; i++) {
 +
        a[i + 1] = a[i] + (rand() % z);
 +
        b[i + 1] = b[i] + (rand() % z);
 +
    }
 +
   
 +
    cout << " Массив A:";
 +
   
 +
    for (int i = 0; i < n; i++) {
 +
        printf("%3d", a[i]);
 +
    }
 +
   
 +
    cout << "\n Массив B:";
 +
   
 +
    for (int i = 0; i < n; i++) {
 +
        printf("%3d", b[i]);
 +
    }
 +
   
 +
    cout << "\n--------------------------------------------------------\n";
 +
    cout << " Массив C:";
 +
   
 +
    int c[2 * n], i = 0, j = 0;
 +
   
 +
    for (int k = 0; k < 2 * n; k++) {
 +
        if (a[i] > b[j]) {
 +
            if (j < n) {
 +
                c[k] = b[j++];
 +
            } else {
 +
                c[k] = a[i++];
 +
            }
 +
        } else {
 +
            if (i < n) {
 +
                c[k] = a[i++];
 +
            } else {
 +
                c[k] = b[j++];
 +
            }
 +
        }
 +
    }
 +
   
 +
    for (i = 0; i < 2 * n; i++) {
 +
        printf("%3d", c[i]);
 +
    }
 +
   
 +
    cout << "\n\n";
 +
 +
    return 0;
 +
}
 
</pre>
 
</pre>
  

Latest revision as of 20:58, 19 April 2015

Назад · Задачи · Дальше


Contents

[edit] Java

public class Task15 {

    private static final int n = 10;
    private static final int z = 9;

    public static void main(String[] args) {
        
	System.out.println();
        System.out.println(" Формирование массива C[2 * N] из элементов A[N] и B[N] ");
        System.out.println("      по правилу: C[1] <= C[2] <= ... <= C[2 * N]       ");
        System.out.println("--------------------------------------------------------");

	int a[] = new int[n + 1];
	int b[] = new int[n + 1];

	a[0] = (int) (z * Math.random());
	b[0] = (int) (z * Math.random());

	for (int i = 0; i < n - 1; i++) {
	    a[i + 1] = a[i] + (int) (z * Math.random());
	    b[i + 1] = b[i] + (int) (z * Math.random());
	}

	System.out.print(" Массив A:");

	for (int i = 0; i < n; i++) {
	    System.out.printf("%3d", a[i]);
	}

	System.out.print("\n Массив B:");

	for (int i = 0; i < n; i++) {
	    System.out.printf("%3d", b[i]);
	}

        System.out.println("\n--------------------------------------------------------");
	System.out.print(" Массив C:");

	int c[] = new int[2 * n];

	int i = 0, j = 0;

	for (int k = 0; k < 2 * n; k++) {
	    if (a[i] > b[j]) {
		if (j < n) {
		    c[k] = b[j++];
		} else {
		    c[k] = a[i++];
		}
	    } else {
		if (i < n) {
		    c[k] = a[i++];
		} else {
		    c[k] = b[j++];
		}
	    }
	}

	for (i = 0; i < 2 * n; i++) {
	    System.out.printf("%3d", c[i]);
	}

	System.out.println();
    }
}


[edit] C++

// g++ 4.2

#include <iostream>

using namespace std;

int main() {

    cout << "\n Формирование массива C[2 * N] из элементов A[N] и B[N]\n";
    cout << "      по правилу: C[1] <= C[2] <= ... <= C[2 * N]\n";
    cout << "--------------------------------------------------------\n";
    
    srand((int)time(0));
    
    const int n = 10;
    const int z = 9;
    
    int a[n + 1];
    int b[n + 1];
    
    a[0] = rand() % z;
    b[0] = rand() % z;
    
    for (int i = 0; i < n - 1; i++) {
        a[i + 1] = a[i] + (rand() % z);
        b[i + 1] = b[i] + (rand() % z);
    }
    
    cout << " Массив A:";
    
    for (int i = 0; i < n; i++) {
        printf("%3d", a[i]);
    }
    
    cout << "\n Массив B:";
    
    for (int i = 0; i < n; i++) {
        printf("%3d", b[i]);
    }
    
    cout << "\n--------------------------------------------------------\n";
    cout << " Массив C:";
    
    int c[2 * n], i = 0, j = 0;
    
    for (int k = 0; k < 2 * n; k++) {
        if (a[i] > b[j]) {
            if (j < n) {
                c[k] = b[j++];
            } else {
                c[k] = a[i++];
            }
        } else {
            if (i < n) {
                c[k] = a[i++];
            } else {
                c[k] = b[j++];
            }
        }
    }
    
    for (i = 0; i < 2 * n; i++) {
        printf("%3d", c[i]);
    }
    
    cout << "\n\n";

    return 0;
}


[edit] Pascal




Назад · Задачи · Дальше

Personal tools
Namespaces

Variants
Actions
Navigation
Tools