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

Проверка вместимости числа в буфер - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ проверьте пожалуйста , выбивает ошибку о нехватке памяти http://www.cyberforum.ru/cpp-beginners/thread148942.html
#include <conio.h> #include <iostream.h> #include <string.h> #include <math.h> int X; void Zamena(char B) { switch (B)
C++ Масив на С H E L P Помогите: код программы на С Во всех последовательностях положительных чисел ограничить снизу значения тех элементов, значения которых меньше среднего для этой последовательности, Размерность 200, диапозон значений -100 до 100 http://www.cyberforum.ru/cpp-beginners/thread148939.html
C++ Чётность трёх чисел
Помогите пожалуйста написать программу, которая выводит "Да" или "Нет" в зависимости от того имеют ли три заданных числа одинаковую четность. Вот нашел такую-же програмку, но она на паскале.. =( http://www.cyberforum.ru/pascal/thread31503.html?uri=/pascal/thread31503.html
стеки в С++ C++
помогите пожалуйста! Мне нужно написать програму в С++ с использованием STL. Условие таково: вывести строку в обратном направлении. Но #include<list> - использовать нельзя. Что то питалась сделать, не получается, помогите пожалуйста...Спасибо...:cry:
C++ Строки http://www.cyberforum.ru/cpp-beginners/thread148900.html
1) Разработать алгоритм и программу для определения минимального количества первых символов, по которым можно различать слова из заданного текста. 2) Разработать алгоритм и программу для разбивки текста на строки длину не более 50 символов. Перенос слов на новую строку осуществлять на месте пропуска.
C++ переделать C#.Net в C++ В общем помогите ребята с одной вещичкой. Я вас прошу перевести мне код C#.Net в код C++. Задание той програмы было такое :"Написать приложение, выдающее расписание занятий (экономика, сети, ООП, ОТУ, Физра, Англ.яз, Схемотехника, Моделирование) вашего потока. Номер группы(Ис31а,Ис31б,Ис31в), день недели, тип недели (первая или вторая) задаются пользователем." так оформили расписание ... подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
25.06.2010, 14:22     Проверка вместимости числа в буфер
Есть класс дроби. Собственно он определяется двумя главными параметрами типа int. Все сделано, все работает. Кроме проверки переполнения. Вводим допустим число 22222222222222222 - программа пишет сразу какой-то бред. Каким способом можно обойти это и выполнить проверку на вместимость в буфер? Реально ли это сделать, не изменяя типа главных параметров?

Я начал переписывать программу, используя два чара вместо инт. Переполнение, буквы вместо цифр, 0 в некоторых элементах, на все это проверка работает. Но есть пара тройка НО.

//1) Объем переделки кода. Он конечно маленький, но если делаешь для себя стоит ли его переделывать такое долгое время?
2) Объем функций которые получаются при переделке через char. Переделал только одну вчера ночью, на что терпения хватило. Она увеличилась примерно в два раза по сравнению с исходной функцией.
3) Интерес, как сделать не через char. Ибо с чаром все понял, сделать все реально, вопрос только во времени.

Пример функции которая получилась после использования чара. Написана на скоро руку, при огромном желании идти спать.

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
Fraction Fraction::operator +(Fraction &ob)
{
    int f;int d; int c; int k; int l; int z;
    char*p; char*x;
    p=new char; x=new char;
    Fraction tempOb;
    if(strcmp(znam, ob.znam)==0)
    {
        f=atoi(tempOb.chisl);
        d=atoi(ob.chisl);
        c=atoi(chisl);
        f=d+c;
        k=atoi(tempOb.znam);
        l=atoi(znam);
        k=l;
        p=_itoa(f,p,10);
        x=_itoa(k,x,10);
        strcpy_s(tempOb.chisl,p);
        strcpy_s(tempOb.znam,x);
    }
    else
    {
        f=atoi(tempOb.chisl);
        d=atoi(ob.chisl);
        c=atoi(chisl);
        k=atoi(ob.znam);
        l=atoi(znam);
        f=c*k+d*l;
        z=atoi(tempOb.znam);
        z=l*k;
        p=_itoa(f,p,10);
        x=_itoa(z,x,10);
        strcpy_s(tempOb.chisl,p);
        strcpy_s(tempOb.znam,x);
    }
    tempOb.operator ~();
    return tempOb;
    delete p;
    delete x;
}
Добавлено через 1 час 20 минут
Отменяю пункт 1. Не слишком то долго оказалось. Тем не менее главный вопрос+интерес еще остались.

Добавлено через 8 часов 33 минуты
Как это сделать-то, товарищи программеры?

Добавлено через 9 часов 4 минуты
Хм. Никто не подскажет?

Добавлено через 14 часов 43 минуты
Что ж. Апдейт
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 22:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru