Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 18.10.2022
Сообщений: 10

Как реализовать ссылку на возвращающую функцию

19.10.2022, 08:31. Показов 1080. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста правильно дописать код. Надо реализовать ссылку на возвращающую функцию, я закоментил ту часть, в которой пытался это сделать, но не знаю как доделать. В итоге должен быть +- такой вывод

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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
#include <iostream>
#include <stdio.h>
#include <fstream>
#include <string>
#include <ctime>
#include <iomanip>
using namespace std;
 
 
struct workText //структура "Работы с текстом"
{
    int pageNum = 0; //номер страницы
    int lineNum = 0; //номер строки
    string text = ""; //текст изменения строки
    string data = ""; //дата
};
struct oneList { //структура для односвязного списка
    workText inf;
    oneList* next;
};
 
class List_1 // класс для работы с односвязным списком
{
public:
    int count; //вспомогательный элемент
    oneList* first; //адрес первого элемента в списке
    oneList* last; //адрес последнего элемента в списке
    List_1() { //создание односвязного списка
        count = 0;
        first = NULL;
        last = NULL;
    }
    void inBegining_1(workText n) { //добавление элемента в начало списка
        oneList* newel = new oneList;
        newel->inf.pageNum = n.pageNum;
        newel->inf.lineNum = n.lineNum;
        newel->inf.text = n.text;
        newel->inf.data = n.data;
        newel->next = first;
        first = newel;
        if (last == NULL) last = newel;
        count++;
    }
    void delLast_1() { //удаление конечного элемента списка
        oneList* temp = first;
        while (temp->next != last)
            temp = temp->next;
        temp->next = NULL;
        delete last;
        last = temp;
        count--;
    }
    
    void delFirst_1() { //удаление начального элемента списка
        oneList* newfirst;
        newfirst = first->next;
        delete first;
        first = newfirst;
        count--;
    }
/*
    workText pageSearch_1(int n)
    {
        return //не знаю что написать
    }
    
    workText pop_1()
    {
        return //не знаю что написать
    }
 
};
 
void output(List_1 a) { //ссылка для вывода 
        workText* out = a.pop_1;
        for (int i = 0; i < count; i++)
        {
            cout << setiosflags(ios::left)
                << setw(5) << out->inf.pageNum
                << setw(5) << out->inf.lineNum
                << setw(10) << out->inf.text
                << setw(5) << out->inf.data << endl;
                out = out->next;
        }
}
 
void outPageSearch_1(List_1 a) { //ссылка для вывода 
        workText* out = a.pageSearch_1;
        oneList* temp = first;
        int i = -10;
        while (temp != nullptr) {
            if (temp->inf.pageNum != n) {
                temp = temp->next;
            }
            else {
                cout << setiosflags(ios::left)
                    << setw(5) << temp->inf.pageNum
                    << setw(5) << temp->inf.lineNum
                    << setw(10) << temp->inf.text
                    << setw(5) << temp->inf.data << endl;
                return temp;
                i++;
            }
        }
        return NULL;
}
*/
 
int main() {
    setlocale(0, "");
    List_1 o;
    workText n;
    char ch;
    int op1, op2, op3, op4, jp5, num;
    string txt, td;
    oneList* lis1;
    cout << "Введите (1), для работы с Односвязным списком.";
    cout << "\nЧто выдираете? - "; cin >> op1;
        cout << "\n__________ОДНОСВЯЗНЫЙ СПИСОК__________\n";
        do
        {
            cout << "1 - Добавление элемента в начало списка";
            cout << "\n2 - Удалить";
            cout << "\n3 - Найти";
            cout << "\nЧто выдираете? - "; cin >> op2;
            switch (op2)
            {
            case 1: cout << "\n__________ДОБАВИТЬ В НАЧАЛО__________\n";
                do
                {
                    cout << "Номер страницы - "; cin >> n.pageNum;
                    cout << "Номер строки - "; cin >> n.lineNum;
                    cout << "Текст - "; cin >> n.text;
                    cout << "Дата - "; cin >> n.data;
                    o.inBegining_1(n);
                    cout << "\nХотите продолжить(y/n)? "; cin >> ch;
                } while (ch != 'n');
                o.pop_1();
                break;
            case 2: cout << "\n__________УДАЛИТЬ__________\n";
                do
                {
                    cout << "Введите (1), для удаления начального элемента.";
                    cout << "\nВведите (2), для удаления конечного элемента.";
                    cout << "\nЧто выдираете? - "; cin >> op3;
                    switch (op3)
                    {
                    case 1:
                        o.delFirst_1();
                        o.pop_1();
                        break;
                    case 2:
                        o.delLast_1();
                        o.pop_1();
                        break;
                    default: cout << "Введен некорректный символ!!!"; break;
                    }
                    cout << "\nХотите продолжить(y/n)? "; cin >> ch;
                } while (ch != 'n');
                //o.pop_1();
                break;
            case 3: cout << "\n__________ПОИСК__________\n";
                do
                {
                    cout << "Поиск по номеру страницы";
                        cout << "\nВведиет номер страницы - "; cin >> num;
                        lis1 = o.pageSearch_1(num);
                        if (lis1 == 0) //проверка на дурака
                            cout << "Такой страницы не существует!!!" << endl;
                    o.pop_1();
                    cout << "Продолжить поиск(y/n)?"; cin >> ch;
                } while (ch != 'n');
                break;
            }
            cout << "Хотите продолжить программу(y/n)?"; cin >> ch;
            
        }while (ch != 'n');
    
}
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.10.2022, 08:31
Ответы с готовыми решениями:

По заданной формуле реализовать функцию, возвращающую значение, и функцию, не возвращающую значение
Забыл как именно нужно написать и в чем отличая. К примеру возьмем пример: x^2+2x+3 Написать с возвращающим и не возвращающим значением

Напишите функцию, возвращающую ссылку на максимальное число
Напишите функцию, возвращающую ссылку на максимальное число, встре- чающееся в заданном массиве произвольного размера (аргумент функции)...

Найти максимальную длину слова в заданной строке (как реализовать функцию, возвращающую два значения?)
Задание в прикрепленном изображении. Весь форум облазил, все говорят про структуры, можно ли без них обойтись? Мне бы вернуть указатель и...

9
Злостный нарушитель
 Аватар для Verevkin
10303 / 5725 / 1269
Регистрация: 12.03.2015
Сообщений: 26,517
19.10.2022, 08:34
Цитата Сообщение от Juzz1k Посмотреть сообщение
Надо реализовать ссылку на возвращающую функцию
Ну давай, расскажи, что за функция такая, на которую надо ссылку реализовывать.
И главное — зачем.
0
0 / 0 / 0
Регистрация: 18.10.2022
Сообщений: 10
19.10.2022, 08:52  [ТС]
Есть односвязный список, в него вводятся данные и из него надо вывести данные с использованием возвращающей функции.
Сначало пользователь заполняет список, когда он заканчивает заполнять его, выводиться заполненный список. После можно удалить или найти конкретный элемент списка, тут тоже должен быть вывод. В одном случае новый список после удаления элемента, а во втором случае выводиться найденный элемент.
0
Злостный нарушитель
 Аватар для Verevkin
10303 / 5725 / 1269
Регистрация: 12.03.2015
Сообщений: 26,517
19.10.2022, 08:58
...тся

Добавлено через 1 минуту
Цитата Сообщение от Juzz1k Посмотреть сообщение
вывести данные с использованием возвращающей функции
Что это, блин, значит? Что такое "возвращающая функция" и где она?
0
101 / 95 / 10
Регистрация: 31.08.2022
Сообщений: 1,014
19.10.2022, 09:01
подозреваю, что вы это в чужой код сами дописывали
workText pageSearch_1(int n)
0
0 / 0 / 0
Регистрация: 18.10.2022
Сообщений: 10
19.10.2022, 09:07  [ТС]
Возвращаются значение функция это функция которая возвращает значение через return

Добавлено через 1 минуту
Да нет, код мой. Просто сначало он был написан по-другому, но потом оказалась что надо использовать подобную конструкцию, а как ее сюда пристроить не пойму
0
Злостный нарушитель
 Аватар для Verevkin
10303 / 5725 / 1269
Регистрация: 12.03.2015
Сообщений: 26,517
19.10.2022, 09:07
Цитата Сообщение от Juzz1k Посмотреть сообщение
функция которая возвращает значение серез return
ОК.
Цитата Сообщение от Juzz1k Посмотреть сообщение
Надо реализовать ссылку на возвращающую функцию
Чтобы сослаться на функцию, надо знать её определение. Показывай давай его.
0
101 / 95 / 10
Регистрация: 31.08.2022
Сообщений: 1,014
19.10.2022, 09:08
Цитата Сообщение от Juzz1k Посмотреть сообщение
Да нет, код мой
врать не надо...
вот тут всё правильно
workText n;

а то что у вас... извините... бред....
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
19.10.2022, 21:15
Вывод без использования cout
С такими постановками вопросов, смело к врачу (сами знаете к какому).
Цитата Сообщение от Juzz1k Посмотреть сообщение
но потом оказалась что надо использовать подобную конструкцию
Вы это повторяете уже несколько раз, наверняка не понимая что значат эти слова.
И какую именно конструкцию таки нужно использовать.

0
 Аватар для lemegeton
4903 / 2696 / 921
Регистрация: 29.11.2010
Сообщений: 5,783
20.10.2022, 02:28
Цитата Сообщение от Juzz1k Посмотреть сообщение
но не знаю как доделать
А и никто не знает.
Хрустальные шары показывают только туман.

Ваш код для меня выглядит как набор случайных английских слов на программистскую тематику.
Как, собственно и вопросы выглядят как набор случайных русских слов на программистскую тематику.
Сильно подозреваю, что не только для меня.

Не подумайте, что я хочу вас задеть. Совсем нет. Это нормально для новичков в программировании.

Я хочу сказать, что вам придется напрячься и рассказать очень подробно и самыми простыми словами что вы хотите сделать.

Возможно, стоит начать с задания в том виде, в каком его дал преподаватель.

Цитата Сообщение от Juzz1k Посмотреть сообщение
Надо реализовать ссылку на возвращающую функцию
Что такое "возвращающая функция" без какого-то расширенного контекста, мне неведомо.
Даже гугль бессилен.

Как можно "реализовать ссылку" тоже непонятно. Возможно имеется в виду "создать".

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// функция, возвращающая значение
int function(int argument) {
    return argument;
}
 
int main() {
 
    // ссылка на функцию, возвращающую значение
    int (&functionReference)(int) = function;
 
    // или можно использовать отдельно тип:
    
    // тип функции, возвращающий значение
    using FunctionReferenceType = int (&)(int);
 
    // ссылка на функцию, возвращающую значение с использованием типа
    FunctionReferenceType &typedFunctionReference = function;
    
 
    return 0;
}
Попробуйте не использовать слова, которые вам кажутся умными. Объясните простыми словами.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.10.2022, 02:28
Помогаю со студенческими работами здесь

Написать функцию возвращающую ссылку на элемент глобального массива
Написать функцию возвращающую ссылку на элемент глобального массива. Помогите пожалуйстанаписать !!! Не совсем понимаю условие...

Написать функцию декремента единственного параметра. Написать функцию, возвращающую ссылку на элемент глобального массив
Написать функцию декремента единственного параметра. Написать функцию, возвращающую ссылку на элемент глобального массива. Изменить его при...

Реализовать  функцию, возвращающую текущий день недели
Реализовать  функцию с именем  (day_of_week), которая возвращает текущий день недели (0 для воскресенья, 1 для понедельника, ... , 6 для...

Реализовать функцию возвращающую указатель на один из массивов
Компилятор Atmel Studio 7. Имеется 10 двумерных массивов. Хочу реализовать функцию возвращающую указатель на один из массивов. unsigned...

Реализовать функцию возвращающую индекс данного числа в массиве
Реализовать функцию, которая принимает массив, а также число n и возвращает индекс данного числа в массиве или -1, если такого числа нет


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru