Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Написать программу, выполняющую сортировку одномерного массива целых






Элементы двумерного массива размерностью 3 на 4 инициализировать

// случайными числами от 10 до 30. Вывести исходный массив.Затем обнулить

// вторую строку и вывести измененный массив.

 

#include < iostream>

#include < time.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

const int ROW = 3;

const int COL = 4;

int a[ROW][COL];

srand(time(0));

for (int i = 0; i < ROW; i++) {

for (int j = 0; j < COL; j++) {

a[i][j] = rand() % 21 + 10;

}

}

cout < < " Исходный массив: \n";

for (int i = 0; i < ROW; i++) {

for (int j = 0; j < COL; j++)

cout < < a[i][j] < < " \t";

cout < < " \n";

}

for (int i = 0; i < ROW; i++)

{

for (int j = 0; j < COL; j++) {

a[1][j] = 0;

}

}

cout < < " Измененный массив: \n";

for (int i = 0; i < ROW; i++)

{

for (int j = 0; j < COL; j++)

cout < < a[i][j] < < " \t";

cout < < " \n";

}

system(" pause");

}

Элементы квадратной матрицы 5 на 5 инициализировать случайными числами

// от 0 до 10. Найти сумму максимальных элементов всех столбцов.

#include < iostream>

#include < time.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

const int ROW = 5; //строки

const int COL = 5; // столбцы

int a[ROW][COL];

int sum = 0;

srand(time(0));

for (int i = 0; i < ROW; i++)

{

for (int j = 0; j < COL; j++) {

a[i][j] = rand() % 10 + 0; //?

}

}

cout < < " Исходный массив: \n";

for (int i = 0; i < ROW; i++) {

for (int j = 0; j < COL; j++)

cout < < a[i][j] < < " \t";

cout < < " \n";

}

for (int j = 0; j < COL; j++) {

int max = 0;

for (int i = 0; i < ROW; i++) {

if (a[i][j] > max) {

max = a[i][j];

}

}

sum += max;

}

cout < < " Сумма максимальных элементов всех столбцов " < < sum < < " \n";

 

system(" pause");

}

Напишите функцию сортировки одномерного массива целых чисел по

// невозрастанию(убыванию) методом выбора максимального элемента. переделать

#include < iostream>

#include < time.h>

#include < stdlib.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

const int SIZE = 5;

int a[SIZE];

int imax;

cout < < "...";

for (int i = 0; i < SIZE; i++) {

cout < < " a[" < < i < < " ]=";

cin > > a[i];

}

 

 

for (int t = 0; t = SIZE - 1; t++){

imax = t;

for (int i = t + 1; i < SIZE; i++) {

if (a[i] > a[imax])

imax = i;

}

int tmp = a[t];

a[t] = a[imax];

a[imax] = tmp;

}

cout < < " Отсортированный массив: \n";

for (int i = 0; i < SIZE; i++)

cout < < a[i] < < " \t";

cout < < " \n";

 

system(" pause");

}

 

Написать программу, выполняющую сортировку одномерного массива целых

// чисел по возрастанию методом пузырька.Направление просмотров – слева

// направо, минимизировать число просмотров.

#include < iostream>

#include < time.h>

#include < stdlib.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

const int M = 5;

int a[M];

int tmp;

bool p = true;

for (int i = 0; i < M; i++)

{

cout < < " a[" < < i < < " ]=";

cin > > a[i];

}

for (int n = M - 1; n > 0 & & p; n--)

{

p = false;

for (int i = 0; i < n; i++)

if (a[i] > a[i + 1])

{

tmp = a[i];

a[i] = a[i + 1];

a[i + 1] = tmp;

p = true;

}

}

cout < < " Отсортированный массив: \n";

for (int i = 0; i < M; i++)

cout < < a[i] < < " \t";

cout < < " \n";

 

system(" pause");

}

 

 

//*Написать программу, выполняющую сортировку одномерного массива целых чисел по убыванию методом вставок.

 

#include < iostream>

#include < time.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

const int M = 6;

srand(time(0));

int a[M], j = 0, tmp;

 

for (int i = 0; i < M; i++){

a[i] = rand() % 10;

}

 

 

for (int i = 0; i < M; i++){

cout < < a[i] < < " ";

}

cout < < " \n";

 

for (int i = 0; i < M - 1; i++) {

tmp = a[i + 1];

j = i;

while (j > = 0 & & a[j] > tmp) {

a[j + 1] = a[j];

j--;

}

a[j + 1] = tmp;

}

cout < < " Отсортированный массив: \n";

for (int i = 0; i < M; i++)

cout < < a[i] < < " \t";

cout < < " \n";

 

system(" pause");

}

 

// Дан массив случайных чисел в диапазоне от -20 до 20. Найти позиции самого левого

//отрицательного элемента и самого правого отрицательного элемента и отсортировать

//элементы между ними по убыванию.

#include < iostream>

#include < time.h>

#include < stdlib.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

srand(time(0));

const int M = 10;

int a[M];

int left, right;

int tmp;

for (int i = 0; i < M; i++) {

a[i] = rand() % 41 - 20;

}

cout < < " Исходный массив: \n";

for (int i = 0; i < M; i++)

cout < < a[i] < < " \t";

cout < < " \n";

for (int i = 0; i < M; i++) {

if (a[i] < 0)

left = i; break;

}

for (int i = M - 1; i > = 0; i--) {

if (a[i] < 0) {

right = i; break;

}

}

for (int k = right - 1; k > left + 1; k--) {

for (int i = left + 1; i < k; i++) {

if (a[i] > a[i + 1]) {

tmp = a[i];

a[i] = a[i + 1];

a[i + 1] = tmp;

}

}

}

cout < < " Отсортированный массив: \n";

for (int i = 0; i < M; i++)

cout < < a[i] < < " \t";

cout < < " \n";

system(" pause");

 

}

// Дан массив случайных чисел от 0 до 20. Пользователь вводит число.

// Необходимо найти самую левую позицию этого часла в массиве.

// отсортировать элементы с права от найденого по возрастанию, а слева по убыванию.\

 

#include < iostream>

#include < time.h>

#include < stdlib.h>

using namespace std;

void main()

{

setlocale(LC_ALL, " rus");

srand(time(0));

const int KUKU = 10;

int mas[KUKU];

int chislo;

int val, tmp;

 

for (int i = 0; i < KUKU; i++) {

mas[i] = rand() % 21;

}

for (int i = 0; i < KUKU; i++) {

cout < < mas[i] < < " ";

}

cout < < " Введите число" < < " \n";

cin > > chislo;

for (int i = 0; i < KUKU; i++) {

if (mas[i] == chislo) {

val = i;

cout < < " Позиция введенного числа " < < i < < " \n"; break; }

}

if (val < 0 || val > = KUKU) {

cout < < " Ошибка! ";

system(" pause");

exit(0);

}

for (int k = KUKU - 1; k > val + 1; k--) // по возростанию {

for (int i = val + 1; i < k; i++) {

if (mas[i] > mas[i + 1]) {

tmp = mas[i];

mas[i] = mas[i + 1];

mas[i + 1] = tmp;

}

}

}

 

for (int k = val - 1; k > 0; k--) // по убыванию {

for (int i = 0; i < k; i++){

if (mas[i] < mas[i + 1]){

tmp = mas[i];

mas[i] = mas[i + 1];

mas[i + 1] = tmp;

}

}

}

 

cout < < " Отсортированный массив: \n";

for (int i = 0; i < KUKU; i++){

cout < < mas[i] < < " \t";

}

cout < < " \n";

system(" pause");

}

 

// Написать ф-цию с переменным количеством аргументов, которая в качестве обязательного

// параметра принимает тип действия и количество переменных и выполняет

// выбраное действие над этими переменными.

// " +" - сложение, " *" - умножение, " s" - среднее арифметическое.

// Например:

// double R = cale('s', 5, 3, 4, 5, 3, 7);

// cout < < R;

// На экране мы увидим 4.4

 

 

#include < iostream>

using namespace std;

int arithmetic(char simvol, int koll, int grupa,...);

void main()

{

setlocale(LC_ALL, " rus");

cout < < "... " < < arithmetic('+', 5, 1, 2, 3, 4, 5) < < " \n";

cout < < "... " < < arithmetic('*', 5, 1, 2, 3, 4, 5) < < " \n";

cout < < "... " < < arithmetic('s', 5, 1, 2, 3, 4, 5) < < " \n";

 

system(" pause");

}

 

int arithmetic(char simvol, int koll, int grupa,...)

{

if (simvol == '+') {

int sum = 0;

int *p = & grupa;

for (int i = 0; i < koll; i++) {

sum += *p;

p++;

}

 

return sum;

}

if (simvol == '*') {

int multiplication = 1;

int *p = & grupa;

for (int i = 0; i < koll; i++) {

multiplication *= *p;

p++;

}

return multiplication;

}

if (simvol == 's') {

int sqt = 1;

int sum = 0;

int *p = & grupa;

for (int i = 0; i < koll; i++) {

sum += *p;

p++;

}

sqt = sum / koll;

return sqt;

}

}

 

// Написать ф-цию, которая в двухмерном массиве вещественных чисел меняет знак элементов

// некоторого столбца на противоположный (номер столбца передавать в качестве параметра).

// Использовать ф-цию для преобразования матрицы размером 4х5. Выполнить два варианта такой ф-ции:

// а) ф-ция, предназначенная для массива с числом столбцов, равным 5;

// б) универсальная ф-ция, которую можно использовать при любом числе строк и столбцов.

 

#include < iostream>

using namespace std;

void smenaZnaka(double mas[4][5], int stolb)

{

for (int i = 0; i < 4; i++) {

mas[i][stolb] *= -1;

}

}

void universSmenaZnaka(double *mas, int kollStrok, int kollStolb, int stolb)

{

for (int i = 0; i < kollStrok; i++) {

mas = mas + stolb;

*mas *= -1;

mas = mas + kollStolb - stolb;

}

}

 

 

void main()

{

setlocale(LC_ALL, " rus");

double mas[4][5];

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 5; j++) {

mas[i][j] = rand() % 19 - 9;

cout < < mas[i][j] < < " \t";

}

cout < < " \n";

}

cout < < " \n" < < " \n";

 

smenaZnaka(mas, 4);

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 5; j++) {

cout < < mas[i][j] < < " \t";

}

cout < < " \n";

}

cout < < " \n" < < " \n";

 

universSmenaZnaka(& mas[0][0], 4, 5, 2);

for (int i = 0; i < 4; i++) {

for (int j = 0; j < 5; j++) {

cout < < mas[i][j] < < " \t";

}

cout < < " \n";

}

 

system(" pause");

}

 

//#5 Описать функцию определения максимального элемента в одномерном массиве.

// С помощью этой функции найти максимум в каждой строке двумерного массива и вывести эти максимумы на консоль.

//Также с помощью этой функции найти максимальный элемент во всем двумерном массиве.

 

#include < iostream>

#include < conio.h>

#include < time.h>

using namespace std;

 

int max(int a[], int n)

{

int max = a[0];

for (int i = 1; i < n; i++) {

if (a[i] > max) {

max = a[i];

}

}

return max;

}

void part1()

{

int a[] = { 5, 4, 3 };

int b[] = { -3, 0, 3, 6 };

cout < < max(a, 3) < < " \n";

cout < < max(b, 4) < < " \n";

_getch();

}

void main()

{

part1();

 

setlocale(LC_ALL, " rus");

const int N = 3;

const int M = 4;

int a[N][M] = { { 1, 2, 3, 4 }, { 5, 6, 7, 8 }, {6, 5, 4, 3} };

int maxElem[N];

for (int i = 0; i < N; i++)

{

int b[M];

for (int j = 0; j < M; j++) {

b[j] = a[i][j];

}

int res = max(b, M);

cout < < " " < < res;

maxElem[i] = res;

}

cout < < max(maxElem, N);

 

system(" pause");

}

// Одномерный массив из 10 элементов инициализировать случайными числами от -9 до 9.

// Вывести исходный массив на консоль.

//Поменять местами первый отрицательный элемент и последний положительный.

// Преобразованый массив вывести на консоль.

// При работе использавать только указатели. Оформить в виде отдельных ф-ций:

// 1) инициализация массива; 2) вывод на консоль; 3)поиск первого отрицательного;

// 4) последнего положительного 5) обмен местами двух элементов массива.

 

#include < iostream>

using namespace std;

 

void initMas(int mas[], int n)

{

for (int i = 0; i < n; i++) {

mas[i] = rand() % 19 - 9;

}

}

void printMas(int mas[], int n)

{

for (int i = 0; i < n; i++){

cout < < mas[i] < < " \t";

}

}

 

int oneMinus(int mas[], int n)

{

for (int i = 0; i < n; i++) {

if (mas[i] < 0) {

return i;

}

}

cout < < " Нет отрицательного числа";

exit(0);

}

 

int firstPlus (int mas[], int n)

{

for (int i = n - 1; i > = 0; i++){

if (mas[i] > 0) {

return i;

}

}

cout < < " Нет положительного числа";

exit(0);

}

 

void perestanovka(int mas[], int one, int two)

{

int temp = mas[one];

mas[one] = mas[two];

mas[two] = temp;

}

 

void main()

{

setlocale(LC_ALL, " rus");

const int MAS = 10;

int a[MAS];

initMas(a, MAS);

printMas(a, MAS);

int minus = oneMinus(a, MAS);

int plus = firstPlus(a, MAS);

perestanovka(a, minus, plus);

printMas(a, MAS);

system(" pause");

}






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.