Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
mn_Tema

Кто может переделать програм чтобы там били клласы

24.05.2010, 00:24. Показов 654. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// Файл "streal.h"
// Стек вещественных чисел, интерфейс
//
#ifndef ST_REAL_H
#define ST_REAL_H
 
// Прототипы функций, реализующих предписания стека:
 
void st_init(int maxSize); // Начать работу (вх: цел
                           //     макс. размер стека)
void st_terminate();    // Закончить работу
void st_push(double x); // Добавить эл-т (вх: вещ x)
double st_pop();        // Взять элемент: вещ
double st_top();        // Вершина стека: вещ
int st_size();          // Текущий размер стека: цел
bool st_empty();        // Стек пуст? : лог
int st_maxSize();       // Макс. размер стека: цел
bool st_freeSpace();    // Есть свободное место? : лог
void st_clear();        // Удалить все элементы
double st_elementAt(int i); // Элемент стека на
                            //   глубине (вх: i): вещ
#endif
// Конец файла "streal.h"

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
// Файл "streal.cpp"
// Стек вещественных чисел, реализация
//
#include <stdlib.h>
#include <assert.h>
#include "streal.h" // Подключить описания функций стека
 
// Общие переменные для функций, реализующих
// предписания стека:
static double *elements = 0; // Указатель на массив эл-тов
                             //     стека в дин. памяти
static int max_size = 0;     // Размер массива
static int sp = (-1);        // Индекс вершины стека
 
// Предписания стека:
 
void st_init(int maxSize) {//Начать работу (вх: макс. размер стека)
    assert(elements == 0);
    max_size = maxSize;
    elements = (double *) malloc(max_size * sizeof(double));
    sp = (-1);
}
 
void st_terminate() { // Закончить работу
    if (elements != 0) {        free(elements);    }
}
 
void st_push(double x) { // Добавить эл-т (вх: вещ x)
    assert(              // утв:
        elements != 0 && //   стек начал работу и
        sp < max_size-1  //   есть своб. место
    );
    ++sp;
    elements[sp] = x;
}
 
double st_pop() { // Взять элемент: вещ
    assert(sp >= 0); // утв: стек не пуст
    --sp;            // элемент удаляется из стека
    return elements[sp + 1];
}
 
double st_top() { // Вершина стека: вещ
    assert(sp >= 0); // утв: стек не пуст
    return elements[sp];
}
 
int st_size() { // Текущий размер стека: цел
    return (sp + 1);}
 
bool st_empty() { // Стек пуст? : лог
    return (sp < 0);}
 
int st_maxSize() { // Макс. размер стека: цел
    return max_size;}
 
bool st_freeSpace() { // Есть своб. место? : лог
    return (sp < max_size - 1);}
 
void st_clear() { // Удалить все элементы
    sp = (-1);}
 
double st_elementAt(int i) { // Элемент стека на
                             //   глубине (вх: i): вещ
    assert(                     // утв:
        elements != 0 &&        // стек начал работу и
        0 <= i && i < st_size() // 0 <= i < размер стека
    );
    return elements[sp - i];}
// Конец файла "streal.cpp"

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
// Файл "stcalc.cpp"
// Реализация стекового калькулятора на базе стека
//
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
#include "streal.h" // Интерфейс исполнителя "стек"
 
// Прототипы функций, реализующих команды калькулятора:
// Арифметические операции
static void onAdd();
static void onSub();
static void onMul();
static void onDiv();
 
// Добавить число в стек(вх: текстовая запись числа)
static void onPush(const char* line);
 
// Другие команды
static void onPop();     // Удалить вершину стека
static void onClear();   // Очистить стек
static void display();   // Напечатать вершину стека
static void onShow();    // Напечатать содержимое стека
static void printHelp(); // Напечатать подсказку
 
int main() {
    char line[256]; // Буфер для ввода строки
    int linelen;    // Длина строки
    st_init(1024);  // Стек.начать работу(1024)
                    //   1024 — макс. глубина стека
    printHelp();    // Напечатать подсказку
    while (true) {          // Цикл до бесконечности
        scanf("%s", line);      // ввести строку
        linelen = strlen(line); // длина строки
        if (linelen == 0)   continue;
 
        // Разобрать команду и вызвать реализующую ее функцию
        if (strcmp(line, "+") == 0) {onAdd();} 
        else if (strcmp(line, "-") == 0) {onSub();}
        else if (strcmp(line, "*") == 0) {onMul();}
        else if (strcmp(line, "/") == 0) {onDiv();} 
        else if (strcmp(line, "=") == 0) {display();} 
        else if (         // Если это число
            isdigit(line[0]) || (linelen > 1 &&(line[0] == '-' || line[0] == '+') &&isdigit(line[1])))
        {   onPush(line);   // Добавить число в стек
          }
        else if (strcmp(line, "pop") == 0) {onPop();}
        else if (strcmp(line, "clear") == 0) {onClear();}
        else if (strcmp(line, "show") == 0) {onShow();} 
        // Завершить работу
else if (strcmp(line, "quit") == 0) {break;} 
        else {         // Неправильная команда =>
            printHelp(); //     напечатать подсказку
        }
    }
    return 0;}
 
static void onAdd() {
    double y, x;
    if (st_size() < 2) {
        printf("Stack depth < 2.");
        return;
    }
    y = st_pop();
    x = st_pop();
    st_push(x + y);
    display();}
 
static void onSub() {
    double y, x;
    if (st_size() < 2) {
        printf("Stack depth < 2.");
        return;
    }
    y = st_pop();
    x = st_pop();
    st_push(x - y);
    display();}
 
static void onMul() {
    double y, x;
    if (st_size() < 2) {
        printf("Stack depth < 2.");
        return;
    }
    y = st_pop();
    x = st_pop();
    st_push(x * y);
    display();}
 
static void onDiv() {
    double y, x;
    if (st_size() < 2) {
        printf("Stack depth < 2.");
        return;
    }
    y = st_pop();
    x = st_pop();
    st_push(x / y);
    display();}
 
static void onPush(const char* line) {
    double x = atof(line);
    st_push(x);}
 
static void onPop() {    st_pop();}
 
static void onClear() {    st_clear();}
 
static void display() {
    if (!st_empty()) {
        printf("=%lf", st_top());
    } else {
        printf("stack empty");
    }
}
 
static void onShow() {
    int d = st_size();
    printf("Depth of stack = %d.", d);
    if (d > 0)
        printf(" Stack elements:");
    else
        printf(" ");
 
    for (int i = 0; i < d; i++) {
        printf("  %lf", st_elementAt(i));
    }
}
 
static void printHelp() {
   printf(
        "Stack Calculator commands:\n"
        "    <number>    Push а number in stack\n"
        "    +, -, *, /  Ariphmetic operations\n"
        "    =           Display the stack top\n"
        "    pop         Remove the stack top\n"
        "    show        Show the stack\n"
        "    clear       Clear the stack\n"
        "    quit        Terminate the program\n"
    );
}
// Конец файла "stcalc.cpp"

зарание спасибо
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.05.2010, 00:24
Ответы с готовыми решениями:

Пишу диплом и там есть элемент программирования на СИ для контроллера, может кто писал уже?
интересуют любые нароботки у кого что есть ,кто писал диплом уже. Модернизирую точку доступа wifi воткну туда контроллер с экраном,...

Кто может переделать игру?
Кто может переделать игру Тетрис в цветной Тетрис (Блоки)? Или может у кого уже есть игра блоки в С#?

Кто может переделать код?
Как переделать код, мне помогли написать код с помощью классов, на в универе мне препад сказал что классами нельзя, заставляет переделать с...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.05.2010, 00:24
Помогаю со студенческими работами здесь

Кто может переделать антивирус?
Привет всем. Такого рода просьба. Пользуюсь долго Kaspersky Small Office Security 2. Работает отлично, все устраивает. Но не...

Кто нибудь может мне сегодня написать онлайн по Lazarus (pascal) Там нужно выполнить 2 лёгких задания
Люди нужна ваша помощь сегодня на зачёте.. . Зачёт - простой, но я проболел и увы вряд ли сам сдам.. . Общем сегодня у меня будут пары...

Кто может переделать песню в минусовку
Парни, кто может удалить голос (полностью) из песни О, боже какой мужчина?

Кто может дополнить или переделать?
Привет, у меня есть не большая программа которая скачивает файл из интернета! так вот у меня он качает только один файл прошу помощи как...

из masm в tasm кто может переделать
;Program to Find all the 3 digit integers which ;equal the sum of the cubes of their digits .MODEL SMALL .STACK 200H .DATA ...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru