С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 17.05.2019
Сообщений: 53
1

Как можно организовать ввод данных char или int через шаблон

10.04.2020, 18:43. Показов 863. Ответов 9

Author24 — интернет-сервис помощи студентам
Нужно реализовать ввод данных (массив int или строку) с помощью шаблона. Помогите!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2020, 18:43
Ответы с готовыми решениями:

Постройте график функции. Таблицу данных получить, изменяя параметр X с шагом h. Ввод исходных данных организовать через окнаTEdit
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...

Необходимо организовать базу данных, которую можно будет обновлять через интернет и через программу
Доброе всем время суток... Вот, собственно, вопрос.. Необходимо организовать базу данных,...

как осуществить приведение типов....(int) char ; (char) int;
Подскажите пожалуйста. мне нужно перевести программу с билдера на дельфи. Есть некоторые нюансы. ...

Организовать ввод данных, проверку условий через условного оператора
z=ae^sinx +2.5 x>0.3 a=1.5 надо составить программу через условный оператор...

9
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.04.2020, 18:46 2
Разверни.
0
0 / 0 / 0
Регистрация: 17.05.2019
Сообщений: 53
10.04.2020, 19:42  [ТС] 3
Сама задача:Разработать консольное приложение позволяющее обрабатывать 2 типа данных: char и int. Обеспечить ввод данных с помощью шаблона. Для char - найти максимальный палиндром; Для int - найти максимальную подпоследовательность.
Работающий код для самой задачи есть, но как именно обеспечить ввод данных через шаблон я не представляю. Основная проблема - невозможно вернуть из шаблона Массив int или строку в перегруженную функцию. Перегруженная функция принимает либо массив int, либо строку т.е. вот это работать не будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include "stdafx.h"
#include <iostream>
#include <Windows.h>
#include <string>
 
template <typename T>
T tr(T S){
    //если после проверки строка - возвращаю строку
    //если после проверки int - возвращаю массив
}
 
void zadanie(std::string S);
void zadanie(int arr[]);
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    std::string S;
    int menu;
    std::getline(std::cin, S);
    zadanie(tr(S)); 
    return 0;
}
Была идея просто сделать два шаблона, так как алгоритм задач разный

Добавлено через 5 минут
Только что пришла идея поэлементно вводить через шаблон
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.04.2020, 19:45 4
Может, функция должна быть шаблонной?
0
0 / 0 / 0
Регистрация: 17.05.2019
Сообщений: 53
10.04.2020, 19:48  [ТС] 5
Функцию не получится сделать шаблонной. Алгоритмы же координально разные. Единственное, что совпадает - найти максимальную последовательность/палиндром
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.04.2020, 19:54 6
А может наоборот? Максимальная последовательность/палиндром - это одно и то же, что ли?
0
0 / 0 / 0
Регистрация: 17.05.2019
Сообщений: 53
10.04.2020, 20:02  [ТС] 7
*максимальный палиндром/максимальная последовательность это имелось ввиду.

Добавлено через 41 секунду
Просто моего воображения не хватило обдумать реализацию шаблона в этой задаче
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.04.2020, 20:05 8
А как предполагается размер массива задавать? Он должен быть создан, что ли?
0
0 / 0 / 0
Регистрация: 17.05.2019
Сообщений: 53
10.04.2020, 20:09  [ТС] 9
Одному Богу известно. Я, например, кушаю строку. Потом проверяю на правильность (все ли int/char). Если int, подсчитываю сколько всего элементов введено, и создаю массив с этими элементами. Если string, то просто в функцию после проверки отправляю. Есть еще идея сделать меню и там спрашивать сколько всего элементов и дальше по моему алгоритму, только его придётся немного доделать.
0
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
10.04.2020, 21:39 10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
 
using namespace std;
 
template <typename T>
void foo_char(){
    char *S = new char[255];
        cout << "Введи строку: ";
        cin.getline(S,255);
        //max_palindrom(S,255)      <== ищешь максимальный палиндром
    delete []S;
}
 
template <typename T>
void foo_int(){
    cout << "Размер массива: ";
    size_t size;
    cin >> size;
 
    int *arr = new int[size];
        for (size_t i=0; i<size; i++) {
                arr[i] = rand() %10;
                cout << arr[i] << ' ';
        }
 
        //max_sequense(arr,size)    <== ищешь последовательность
    delete []arr;
}
 
int main()
{
        setlocale(LC_ALL, "");
        srand(time(0));
 
        int select;
        bool done = false;
 
           do {
                cout << "Выбери действие:\n" ;
                cout << "1. Создать char* и найти максимальный палиндром:\n" ;
                cout << "2. Создать int* и найти максимальную подпоследовательность:\n" ;
                cout << "3. Выход:\n" ;
                cout << "\nОжидается ввод: ";
                cin >> select;
                switch(select){
                    case 1:
                        cin.ignore();
                        foo_char<char>();
                        break;
                    case 2: foo_int<int>();  break;
                    default: done = true;
                }
             cout << "\n\n";
            }  while (!done);
 
 
}
0
10.04.2020, 21:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.04.2020, 21:39
Помогаю со студенческими работами здесь

Как int конвертировать в string или char?
например как сделать это: int x=5; string y=&quot;Hello&quot;+x;

из int в char или как итерационно создавать файлы
Уважаемые форумчане, подскажите пожалуйста как реализовать следующую процедуру: В программе...

Int как char[5] - это нормально или ужасно?
В целях экономии памяти для размещения данных в структуре решил попробовать провернуть такой трюк:...

Как превести из char* в int и наоборот из int в char*?
Как превести из char* aa='123' в int aa=123 и наоборот из int в char* . Понимаю что самому...

Ввод char вместо int
Реализовываю потихоньку стек в java. Дело в том, что в стек я могу заносить только int-значения, а...

Ошибка: cannot convert 'int (*)[50]' to 'int*' for argument '1' to 'void vvod2m(int*, int*, int*, char)'Х2
Матрицы An1*m1 и Bn2*m2 вводить с клавиатуры (размерности &gt;3, m1=n2). Выполнять через подпрограммы....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru