Автор работы: Пользователь скрыл имя, 28 Апреля 2014 в 19:09, практическая работа
В данной работе была разработана программа для удаления заданного элемента из массива и добавления после первого четного элемента нового элемента (со значением M[I-1]+2). Программа полностью работоспособна и готова для прямого применения.
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
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). Программа полностью работоспособна и готова для прямого применения.
Информация о работе Формирование одномерного массива целых чисел