Формирование одномерного массива целых чисел

Автор работы: Пользователь скрыл имя, 28 Апреля 2014 в 19:09, практическая работа

Краткое описание

В данной работе была разработана программа для удаления заданного элемента из массива и добавления после первого четного элемента нового элемента (со значением M[I-1]+2). Программа полностью работоспособна и готова для прямого применения.

Вложенные файлы: 1 файл

Отчет.docx

— 42.06 Кб (Скачать файл)

1. Постановка задачи.

1) Сформировать одномерный массив целых чисел

2) Удалить элемент с заданным номером

3) Добавить после первого четного элемента массива элемент со значением M[I-1]+2.

 

2. Алгоритм решения.

Сначала инициализируем массив и выведем. Затем попросим пользователя ввести номер элемента, удалим элемент из массива (сместив все элементы расположенные после заданного влево, и уменьшив число элементов массива) и снова выведем. Затем найдем первый четный элемент, сдвинем все элементы после него вправо и добавим новый элемент после него. Если четных элементов нет, то ничего не добавляем. Снова выводим массив и завершаем программу.

 

3. Блок-схема




 

 
4. Текст программы.


#include <iostream>

#include <stdlib.h> 

#include <time.h>

 

using namespace std;

 

int main()

{

setlocale(0, "Rus");  // Установка кодировки

 

const int N = 15;   // Размер массива

int A[N], CurrentN = N, Element;

 

// 1) Cформировать одномерный массив целых чисел

// Инициализация и вывод  массива

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

srand(time(NULL));

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

{

A[i] = rand()%50+1;  // Значения от 1 до 50;

cout << A[i] << " ";

}

 

// 2) Удалить элемент с  заданным номером 

// Удаление заданного элемента

do

{

cout << endl << "Введите номер элемениа для удаления: ";

cin >> Element;

// Если неверно ввели  номер элемента, то повторить  ввод

if ((Element < 1) || (Element > CurrentN))

cout << "Ошибка! Номер должен быть в промежутке от 1 до " << CurrentN;

}

while ((Element < 1) || (Element > CurrentN));

// Для удаления сдвигаем  элементы стоящие после заданного  влево

// и уменьшить кол-во  элементов

for (int i=Element; i<CurrentN; i++)

{

A[i-1] = A[i];

}

CurrentN--;

// Вывод полученного массива

cout << "Массив после удаления заданного элемента: " << endl;

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

{

cout << A[i] << " ";

}

cout << endl;

 

// 3) Добавить после первого  четного элемента массива элемент  со значением M[I-1]+2

// Ищем первый четный  элемент, после него добавим элемент M[I-1]+2

int j = 0;

while ((j != CurrentN) && (A[j]%2 != 0))

j++;

// Если есть четные элементы, то Element хранит его индекс, иначе в нем CurrentN

if (j != CurrentN)

{

for (int i=CurrentN; i>j+1; i--)

A[i] = A[i-1];

A[j+1] = A[j]+2;

CurrentN++;

}

// Вывод полученного массива

cout << "Массив после добавления элемента: " << endl;

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

{

cout << A[i] << " ";

}

cout << endl;

 

// Пауза

system("Pause");

 

return 0;

}

 

5. Описание программы.

Программа заполняет массив размерностью 15 целыми числами от 1 до до 50. Затем просит пользователя номер удаляемого элемента, удаляет его из массива (сдвигом всех элементов, расположенных после заданного, влево) и выводит. После ищет первый четный, затем все элементы после него передвигает вправо и добавляет после него значение элемента M[I-1]+2 (т. е. первый четный +2).

 

6. Результат работы программы.

 

 

7. Заключение

В данной работе была разработана программа для удаления заданного элемента из массива и добавления после первого четного элемента нового элемента (со значением M[I-1]+2). Программа полностью работоспособна и готова для прямого применения.

 


Информация о работе Формирование одномерного массива целых чисел