Добавил:
ПОИТ 2016-2020 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пустовалова 2 сем / Лабы / Otchet_Лабораторная работа

.docx
Скачиваний:
98
Добавлен:
29.04.2018
Размер:
545.1 Кб
Скачать

Лабораторная работа № 9. Одномерные массивы

Пахолко Алёна Степановна

1 курс ПОИТ-6

14 вариант

Задание

Условие/Данные

Решение

1. Сформировать одномерный массив целых чисел, используя датчик случайных чисел (диапазон от 0 до 99). Размер массива ввести с клавиатуры.

#include <iostream>

#include <conio.h>

#include <time.h>

using namespace std;

void main()

{

const int n = 1000;

int a[n], i, sz;

cout << "Vvedite razmer massiva: ";

cin >> sz;

for (i = 0; i < sz; i++)

{

a[i] = rand() % 100;

cout << a[i] << endl;

}

_getch();

}

2. В соответствии со своим вариантом написать программу по условию, представленному в таблице ниже. Составить блок-схему алгоритма.

В массиве несколько нулевых элементов. Найти первый и последний нулевые элементы. Вывести их индексы.

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

const int n = 10000;

int a[n], i, sz, q, w;

cout << "Vvedite razmer massiva: ";

cin >> sz;

for (i = 0; i < sz; i++)

{

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

cin >> a[i];

}

for (i = 0; i < sz; i++)

{

if (a[i] == 0)

{

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

goto a1;

}

}

a1:for (i = sz; i>0; i--)

{

if (a[i] == 0)

{

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

goto a2;

}

}

a2:_getch();

}

3. 6. К номеру своего варианта прибавить 2 и написать программу для новых исходных данных (для вариантов с 15 по 16 перейти к вариантам с 1 по 2). Представить результаты в окне Отла дчика.

В массиве найти первый минимальный и первый максимальный элементы. Вывести их индексы.

#include <iomanip>

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

int const n = 10;

double a[n], ch1, ch2;

int i,q1,q2;

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

{

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

cin >> a[i];

}

ch1 = a[0];

ch2 = a[0];

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

{

if (a[i] < ch1)

{

ch1 = -999999999;

q1 = i;

}

else if (a[i] > ch2)

{

ch2 = 999999999;

q2 = i;

}

}

cout << "min " << q1 << " i max " << q2;

_getch();

}

  1. Переставить в обратном порядке элементы массива, расположенные между его минимальным и максимальным элементами.

#include <iomanip>

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

int const n = 10;

double b[n], a[n], ch1, ch2;

int i, j, q1, q2;

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

{

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

cin >> a[i];

b[i] = 0;

}

ch1 = a[0];

ch2 = a[0];

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

{

if (a[i] < ch1)

{

ch1 = a[i];

q1 = i;

}

else if (a[i] > ch2)

{

ch2 = a[i];

q2 = i;

}

}

for (i = q1 + 1; i < q2; i++)

{

j = i;

b[j] = a[i];

}

i = q2 - 1;

for (j = 0; j < n; j++)

{

if (b[j] != 0)

{

a[i] = b[j];

i--;

}

}

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

{

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

}

_getch();

}

2.Подсчитать количество пар соседних элементов массива с одинаковыми значениями.

#include <iostream>

#include <conio.h>

using namespace std;

void main()

{

int const n = 5;

double a[n], c=0;

int i;

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

{

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

cin >> a[i];

}

for (i = 0; i < n-1; i++)

{

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

{

cout << "para a[" << i << "]: " << a[i] << " i a[" << i+1 << "]: " << a[i+1]<< endl;

c += 1;

}

}

cout << "kol-vo par: " << c;

_getch();

}