Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

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

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

Постановка задания
На вход системы последовательно и неограниченно во времени поступают элементы 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 в 18:04.
Сельский Житель вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


03:18.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.