lab 6

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #define _USE_MATH_DEFINES #include <math.h> #include <iomanip> #include <algorithm> using namespace std; void task7() { //7. Заполнить массив из восьми элементов таким образом, чтобы значения элементов при просмотре массива слева направо образовывали: //а) убывающую последовательность; //б) возрастающую последовательность int A[8], buf;//buf - переменная для временного хранения cout << "Массив из восьми случайных элементов:\n"; for (int i = 0; i < 8; i++) { A[i] = rand() % 41; cout << A[i] << " "; } cout << "\n\nУбывающая последовательность:\n"; for (int i = 1; i < 8; i++) { for (int j = 1; j < 8 - i + 1; j++) { if (A[j - 1] < A[j]) { buf = A[j - 1]; A[j - 1] = A[j]; A[j] = buf; } } } for (int i = 0; i < 8; i++) { cout << A[i] << " "; } cout << "\n\nВозрастающая последовательность:\n"; for (int i = 1; i < 8; i++) { for (int j = 1; j < 8 - i + 1; j++) { if (A[j - 1] > A[j]) { buf = A[j - 1]; A[j - 1] = A[j]; A[j] = buf; } } } for (int i = 0; i < 8; i++) { cout << A[i] << " "; } } void task42() { //42. Пригодность детали оценивается по размеру В, который должен лежать в интервале (А – δ, А + δ). //Определить, имеются ли в партии из N деталей бракованные. //Если да, то подсчитать их количество, в противном случае выдать отрицательный ответ. int sizea = 0, gamma = 0, list = 0, j = 0; cout << "введите размер A :" << endl; while (sizea == 0) { if (!(cin >> sizea)) { cin.clear(); cin.ignore(65535, '\n'); cout << "неправильный ввод" << endl; } } cout << "введите отклонение g за пределами которого значения будут считаться бракованными :" << endl; while (gamma == 0) { if (!(cin >> gamma)) { cin.clear(); cin.ignore(65535, '\n'); cout << "неправильный ввод" << endl; } } cout << "введите количество деталей в партии" << endl; while (list == 0) { if (!(cin >> list)) { cin.clear(); cin.ignore(65535, '\n'); cout << "неправильный ввод" << endl; } } int *sizeb = new int[sizea]; for (int i = 0; i < list; i++) { sizeb[i] = sizea + rand() % gamma + 5; if ((sizeb[i] <= (sizea - gamma)) | (sizeb[i] >= (sizea + gamma))) { j++; } cout << sizeb[i]<< endl; } cout << "количество бракованных деталей : " << j << endl; } void task77() { // 77. Дана непустая последовательность целых чисел, оканчивающаяся числом –1. //Определить, есть ли в последовательности хотя бы одно число, кратное 7. //В случае положительного ответа определить порядковый номер первого из таких чисел. int num[50], i=0, j = 0, o = 1; for (;i < 49; i++) { num[i] = 30 + rand() % 30; } num[49] = -1; for (i = 0; i < 50; i++) { cout << num[i] << endl; } cout << "Порядковые номера елементов кратные 7 : "; for (i = 0; i < 50; i++) { if (num[i] % 7 == 0) { cout << i+1 <<", "; } } cout << endl; } void task112() { //112. В одномерный массив целых чисел на место минимального элемента вставить максимальный элемент. const int count = 10; int arr[count]; for (int i = 0; i < count; i++) { arr[i] = rand() % 1000; cout << arr[i] << " "; } cout << endl; int min = 0, max = 0; for (int i = 0; i < count; i++) { if (arr[i] < arr[min]) min = i; if (arr[i] > arr[max]) max = i; } int tmp = arr[max]; arr[max] = arr[min]; arr[min] = tmp; for (int i = 0; i < count; i++) { cout << arr[i] << " "; } cout << endl; } void task147() { //147.Дан массив целых чисел.Найти в этом массиве минимальный элемент m и максимальный элемент М. //Получить в порядке возрастания все целые числа из интервала(m; М) int* arr; // указатель для выделения памяти под массив int size = 0; // размер массива // Ввод количества элементов массива cout << "введите количество элементов масива : "; while (size <= 0) { if (!(cin >> size)) { cin.clear(); cin.ignore(65535, '\n'); cout << "неправильный ввод" << endl; } } arr = new int[size]; // выделение памяти под массив // заполнение массива for (int i = 0; i < size; i++) { arr[i] = rand() % 10; cout << "arr[" << i + 1 << "] = "<< arr[i]<<endl; } int temp; // временная переменная для обмена элементов местами // Сортировка массива пузырьком for (int i = 0; i < size - 1; i++) { for (int j = 0; j < size - i - 1; j++) { if (arr[j] > arr[j + 1]) { // меняем элементы местами temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } } // Вывод отсортированного массива на экран for (int i = 0; i < size; i++) { cout << arr[i] << " "; } cout << endl; int k = arr[0]; int q = arr[size - 1]; while (k <= q) { cout << k<<'\t'; k++; } cout << endl; } void task182() { //182.Задан упорядоченный по возрастанию массив целых чисел. //Написать программу, позволяющую вставить в этот массив вводимое с клавиатуры число без нарушения упорядоченности. //Предполагается, что размер заданного массива не увеличивается. //Поэтому требуется определить, вставлять ли в массив элемент, по величине больший(меньший) всех элементов массива.\ //Это можно сделать, удалив наименьший(наибольший) по величине элемент. //Затем нужно определиться с направлением сдвига элементов при освобождении места. //Если исключить вариант вставки таких элементов и сдвигать в сторону большие по величине элементов, //то останется только определить место вставки, сдвинуть элементы, освобождая место для вставки, и вставить вводимое число. { const int N = 10; // array length const int ENLARGEMENT = 1; // enlargement elements number int k = 0, value = 0; int array[N + ENLARGEMENT]; for (int i = 0; i < N; i++) { array[i] = i + 1; cout << array[i] << '\t'; } // adding 1 element to array do { cout << endl << "Введите позицию элемента: "; while (k <= 0) { if (!(cin >> k)) { cin.clear(); cin.ignore(65535, '\n'); cout << "неправильный ввод" << endl; } } } while (k < 0 || k > N); for (int i = N; i > k - 1; i--) { array[i] = array[i - 1]; } cout << endl << "Введите значение: "; while (value == 0) { if (!(cin >> value)) { cin.clear(); cin.ignore(65535, '\n'); cout << "неправильный ввод" << endl; } } array[k - 1] = value; cout << endl << "Массив после изменение элемента " << k << endl; for (int i = 0; i < N + ENLARGEMENT; i++) { cout << array[i] << '\t'; } int temp; // временная переменная для обмена элементов местами cout << endl; // Сортировка массива пузырьком for (int i = 0; i < N - 1; i++) { for (int j = 0; j < N - i - 1; j++) { if (array[j] > array[j + 1]) { // меняем элементы местами temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } for (int i = 0; i < N; i++) { cout << array[i] << '\t'; } } } int main() { setlocale(LC_ALL, "Russian"); cout << "Задание № 7 : " << endl; task7(); cout << "\nЗадание № 42 :" << endl; task42(); cout << "Задание № 77 : " << endl; task77(); cout << "Задание № 112 : " << endl; task112(); cout << "Задание № 147 : " << endl; task147(); cout << "Задание № 182 : " << endl; task182(); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines