Министерство науки и образования Украины Днепропетровский национальный университет железнодорожного транспорта имени акад. Лазаряна Кафедра КИТ Лабораторная работа № 4 Тема: "Подпрограммы. Методы передачи параметров" Выполнил: студент группы №912 Тронько В.А. Проверила: ас. Коваленко Н.В. Днепропетровск 2013 1. Краткие теоретические сведения 2. Содержание задания: ввести с клавиатуры числа, занести их в динамический массив и отсортировать его разными способами(обменом, шейкером и ) 3. Блок-схема программы Функция первой сортировки: Для i = 0 , length min = array[i] imin = i Для j = i + 1, length Array[j] < min Да imin = j min = array[j] array[imin] = array[i] array[i] = min Функция второй сортировки: Для i = 0, length Для j = i + 1, length array[i] > array[j] Да temp = array[i] array[i] = array[j] array[j] = temp 4. Текст программы Файл main.cpp #include <iostream> #include <stdio.h> #include <conio.h> #include "func.h" using namespace std; int main() { int len, choice, method; void menu(); void length(int &); void enter(int *, int); void out(int *, int); void sort1(int *, int); void sort2(int *, int); do { menu(); cin >> choice; switch(choice) { int *array; case 1: { length(len); array = new int[len]; enter(array, len); break; } case 2: { cout << "Kakim metodom sortirovki vospolzovatsya?\n1.Obmen.\n2.Shaker\n"; cin >> method; switch(method) { case 1: {sort1(array,len); break;} case 2: {sort2(array,len); break;} } out(array, len); break; } } } while(choice!=3); getch(); return 0; } Файл func.h #ifndef FUNC_H #define FUNC_H #endif // FUNC_H #include <iostream> using namespace std; void menu() { printf("1. Vvod chisel\n2. Podschet i vivod na ekran\n3. Exit\n"); } void length(int &len) { cout << "Vvedite dlinu massiva: "; cin >> len; } void enter(int *array, int length) { for(int i = 0; i < length; i++) { cout << i << " element: "; cin >> array[i]; } } void out(int *array, int length) { cout << "[ "; for(int i = 0; i < length; i++) printf("%i ", array[i]); cout << "]\n"; } void sort1(int *array, int length) { int i, j, min, minN, temp; for(i = 0; i < length; i++) { min = array[i]; minN = i; for(j = i + 1; j < length; j++) if(array[j] < min) { min = array[j]; minN = j; } temp = array[minN]; array[minN] = array[i]; array[i] = temp; } } void sort2(int *array, int length) { for(int i = 0; i < length;i++) for(int j = i + 1; j < length; j++) if(array[i]>array[j]) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } } 5. Результат работы программы 6. Выводы
1/--страниц