Форум программистов, компьютерный форум CyberForum.ru

Подскажыте Почему не роботает - C++

Восстановить пароль Регистрация
 
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
29.01.2012, 12:45     Подскажыте Почему не роботает #1
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
#include "stdafx.h"
#include <iostream>
 
struct stack
{
    char mas [100];
    int top;
    stack (*f)(stack a);
};
 
//stack (*f)(stack a);
 
stack add(stack a)
{
    int i;
    a.mas[a.top]=a.top+48;
    a.top=a.top+1;
    for (i=0;i<a.top;i++)
    {
        std::cout<<a.mas[i]<<"  ";
    }
    std::cout<<'\n';
    return a;
}
stack take(stack a)
{
    int i;
    a.mas[a.top]=0;
    a.top=a.top-1;
    for (i=0;i<a.top;i++)
    {
        std::cout<<a.mas[i]<<"  ";
    }
    std::cout<<'\n';
    return a;
}
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    stack a;
    a.top=0;
    a.f=add;
    a=a.f(a);
    a=a.f(a);
    a=a.f(a);
    a=a.f(a);
 
    a.f=take;
    a=a.f(a);
    a=a.f(a);
    a=a.f(a);
    a=a.f(a);   
 
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2012, 12:45     Подскажыте Почему не роботает
Посмотрите здесь:

Почему не взяли на обучение в CQG, на сайте нашел испытательное задание, сделал и отослал. Не взяли и не объяснили почему. Хочу услышать мнения. C++
Почему MS-DOS не любит кириллицу ? (Или почему она не любит меня ?) C++
C++ не роботает прога,почему?
Участок B кода выполняется позже, чем участок A кода, но почему-то B влияет на работоспособность A! Почему? C++
Не роботает сортировка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.01.2012, 13:52     Подскажыте Почему не роботает #2
M@k7, у меня всё компилируется и даже что-то выводит (не разбирался, что должен выводить, но похоже на правду). Разумеется, если изменить int _tmain(int argc, _TCHAR* argv[]) на int main() (или на int main(int argc, char *argv[])).
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
29.01.2012, 13:55  [ТС]     Подскажыте Почему не роботает #3
А что делает ета замена?
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
29.01.2012, 13:57  [ТС]     Подскажыте Почему не роботает #4
Вот ето пишет
Миниатюры
Подскажыте Почему не роботает  
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.01.2012, 14:18     Подскажыте Почему не роботает #5
Цитата Сообщение от M@k7 Посмотреть сообщение
А что делает ета замена?
всего лишь делает из этого кода код, соответствующий стандарту. А пишет бред какой-то... Похоже, какая-то внутренняя кухня мелкомягкого компилятора.
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
29.01.2012, 14:21  [ТС]     Подскажыте Почему не роботает #6
так што делать
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.01.2012, 14:22     Подскажыте Почему не роботает #7
M@k7, использовать другой компилятор.
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
29.01.2012, 14:22  [ТС]     Подскажыте Почему не роботает #8
где его взять то
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.01.2012, 14:23     Подскажыте Почему не роботает #9
M@k7, или изменить архитектуру. Не хранить указатель на функцию в структуре (тут он всё равно ни к селу, ни к городу), а пользоваться для этих целей просто внешними функциями. Или же написать класс, в котором будут соответствующие методы. Способов куча, короче говоря.

Добавлено через 31 секунду
M@k7, http://try-catch.ru/library/compiler...oost-1.48.0.7z
M@k7
 Аватар для M@k7
6 / 6 / 0
Регистрация: 17.10.2011
Сообщений: 165
29.01.2012, 14:24  [ТС]     Подскажыте Почему не роботает #10
Так нужно сделать АТД
а его суть в том чтоб хранить указатель на функцию в структуре

И ещё как то пользоваться етим компилятором??
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2012, 14:27     Подскажыте Почему не роботает
Еще ссылки по теме:

C++ IDE wxDev-C++, при создании кнопки на форме она почему-то становится во весь экран, почему?
C++ почему 3.?

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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
29.01.2012, 14:27     Подскажыте Почему не роботает #11
M@k7, суть абстрактного типа данных не в том, что надо использовать структуры и указатели на функции, понятие АТД вообще к языку не привязано.
http://ru.wikipedia.org/wiki/Абстрактный_тип_данных
В вашей нынешней архитектуре как минимум не соблюдается это:
Вся внутренняя структура такого типа спрятана от разработчика программного обеспечения — в этом и заключается суть абстракции
Именно это предоставит использование классов.
Yandex
Объявления
29.01.2012, 14:27     Подскажыте Почему не роботает
Ответ Создать тему
Опции темы

Текущее время: 08:09. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru