Advertisement
gasaichan

Lab_2_2

Mar 26th, 2017
382
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.14 KB | None | 0 0
  1. #include <math.h> //математические функции
  2. #include <conio.h> //функция getch
  3. #include <cmath>
  4. #include <iostream>
  5. #include <string>
  6. #include <clocale>
  7. #include <fstream>
  8.  
  9. using namespace std;
  10.  
  11. // *arr - указатель на массив, n - количество элементов массива
  12. int* arrInit(int *arr, int n);
  13. // *arr - указатель на массив, n - количество элементов массива
  14. void arrOut(int *arr, int n);
  15. // *currentArr - указатель на исходный массив, *newArr - указатель на новый массив
  16. int* arrOrganise(int *currentArr, int *newArr, int n);
  17. // *arr - указатель на массив, n - количество элементов массива
  18. int* arrSort(int *arr, int n);
  19. //
  20. void arrOutExcel(int *arr1, int *arr2, int n);
  21.  
  22.  
  23. void main() {
  24.     int arrSize = 0;
  25.  
  26.     setlocale(0, "");
  27.     // Тут сам исправишь короче
  28.     // printf("Л.р. 2.1 Гвоздев И., гр. 5102, вариант 6\n");
  29.     printf("****************************\n");
  30.     //
  31.  
  32.  
  33.     // Введите размер массива
  34.     printf("\nEnter the array size: ");
  35.     scanf_s("%d", &arrSize);
  36.     printf("\n");
  37.     printf("\n****************************\n");
  38.  
  39.  
  40.     // Инициализация массива и его ввод
  41.     int *B = new int[arrSize];
  42.     arrInit(B, arrSize);
  43.     printf("\n****************************\n");
  44.  
  45.     // Вывод массива B
  46.     printf("Array B:\n ");
  47.     arrOut(B, arrSize);
  48.     printf("\n****************************\n");
  49.  
  50.     // Организация нового массива
  51.     int *A = new int[arrSize];
  52.     arrOrganise(B, A, arrSize);
  53.  
  54.     // Вывод сразу сортированного массива A
  55.     arrSort(A, arrSize);
  56.     printf("Array A: \n");
  57.     arrOut(A, arrSize);
  58.     printf("\n****************************\n");
  59.  
  60.     //Вывод всех массивов в Excel
  61.     arrOutExcel(B, A, arrSize);
  62.  
  63.     _getch();
  64. }
  65.  
  66.  
  67. int* arrInit(int *arr, int n) {
  68.     printf("\n");
  69.     for (int i = 0; i < n; i++) {
  70.         // Введите элемент массива
  71.         printf("Enter an %d array cell: ", i + 1);
  72.         scanf_s("%d", &arr[i]);
  73.     }
  74.     return arr;
  75. }
  76.  
  77. void arrOut(int *arr, int n) {
  78.     for (int i = 0; i < n; i++) {
  79.         printf("%d\t", arr[i]);
  80.     }
  81. }
  82.  
  83. int* arrOrganise(int *currentArr, int *newArr, int n) {
  84.     for (int i = 0; i < n; i++) {
  85.         if (i % 2 == 0) {
  86.             newArr[i] = currentArr[i];
  87.         }
  88.         else {
  89.             newArr[i] = 0;
  90.         }
  91.     }
  92.     return newArr;
  93. }
  94.  
  95. int* arrSort(int *arr, int n) {
  96.     int min, kmin, temp;
  97.     for (int i = 0; i < n-1; i++) {
  98.         min = arr[i];
  99.         kmin = i;
  100.         for (int j = i+1; j < n; j++) {
  101.             if (arr[j] <= min) {
  102.                 min = arr[j];
  103.                 kmin = j;
  104.             }
  105.         }
  106.         temp = arr[i];
  107.         arr[i] = arr[kmin];
  108.         arr[kmin] = temp;
  109.     }
  110.  
  111.     return arr;
  112. }
  113.  
  114. void arrOutExcel(int *arr1, int *arr2, int n) {
  115.     ofstream fout;
  116.     fout.open("lab.csv");
  117.     fout << "Array B" << endl;
  118.     for (int i = 0; i < n; i++) {
  119.         fout << i << "," << arr1[i] << endl;
  120.     }
  121.     fout << endl;
  122.     fout << "Sorted array A" << endl;
  123.     for (int i = 0; i < n; i++) {
  124.         fout << i << "," << arr2[i] << endl;
  125.     }
  126.     fout << endl;
  127.     fout.close();
  128. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement