Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2018, 15:03   #1
Сельский Житель
Новичок
Джуниор
 
Регистрация: 18.09.2018
Сообщений: 1
По умолчанию Реализовать «сжатие» исходной последовательности, выбрасывая из неё каждый второй элемент

Доброго времени суток, форумчане! У меня трудности с заданием. Думаю как реализовать это.

Постановка задания
На вход системы последовательно и неограниченно во времени поступают элементы xi, где i — порядковый номер элемента, начиная с 1. Реализовать указанную в варианте обработку f (X) последовательности эле-ментов X = (x1, x2, x3, …) с использованием схемы индуктивной обработки на пространстве последовательностей. Полученный набор выходных данных значений Y = (y1, y2, y3, …) рассматривается как результирующая последовательность. Значения элементов исходной последовательности должны запрашиваться у пользователя (приниматься со стандартного устройства ввода) по одному за раз. Сформированные выходные значения требуется выдавать сразу после их формирования на стандартное устройство вывода. Реализация обработки должна быть приведена в отдельном модуле.
Задание
«Сжатие» исходной последовательности, выбрасывая из неё каждый второй элемент. Тип элемента — целочисленный.


Первый раз реализовал это вот так
Код:
Header.h

#pragma once
 
int *Compression(int *x, int *y, int num);
Source.cpp

#include <iostream>
#include <clocale>
#include "Header.h"
 
using namespace std;
 
 
int main() {
    setlocale(LC_ALL, "Rus");
    int n, *x, *y, N;
    cout << "Кол-во элементов:";
    cin >> n;
    N = n - (n / 2);
    x = new int[n];
    y = new int[N];
    cout << "Введите массив X:" << endl;
    for (int i = 0; i < n; i++) {
        cin >> x[i];
    }
    y = Compression(x, y, n);
    cout << "Массив Y: " << endl;
    for (int j = 0; j < N; j++) {
        cout << y[j] << endl;
    }
    delete[] x, y;
    system("pause");
    return 0;
}
Processing.cpp

#include "Header.h"
 
int *Compression(int *x, int *y, int num) {
    int j = 0;
    for (int i = 0; i < num; i++) {
        if (i % 2 != 1) {
            y[j] = x[i];
            j++;
        }
    }
    return y;
}
Но это все же не то. Хотел бы услышать Вас. У кого какие мысли.

Преподаватель говорит что нет индуктивности. Как ее показать?

Последний раз редактировалось Сельский Житель; 18.09.2018 в 17:04.
Сельский Житель вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[VB 2010]: Выбрать максимальный элемент в третьей строке, составить новую матрицу, каждый элемент которой равен соответствующему элементу матрицы Z, делённому на этот максимум. Fake taxi Помощь студентам 0 17.12.2016 12:23
Двусвязные списки, удалить каждый второй элемент С++ Дана188 Помощь студентам 0 18.11.2014 15:06
Одномерный массив. Необходимо заменить последний положительный элемент на второй элемент массива кумитэ Паскаль, Turbo Pascal, PascalABC.NET 1 19.12.2011 16:44
задан массив размером N. вывести на печать каждый второй элемент массива Сергей505 Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2011 17:37
Получить новый одномерный массив В,каждый элемент которого равен мин элементу строк исходной матрицы Artimbulidor Помощь студентам 6 29.12.2008 18:51