Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Хостинг Портала RusFAQ.ru:
MosHoster.ru - Профессиональный хостинг на Windows 2008

РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

Чемпионы рейтинга экспертов в этой рассылке

Лысков Игорь Витальевич
Статус: Профессионал
Рейтинг: 176
∙ повысить рейтинг >>
Micren
Статус: Студент
Рейтинг: 107
∙ повысить рейтинг >>
Person
Статус: 3-й класс
Рейтинг: 63
∙ повысить рейтинг >>

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / C/C++

Выпуск № 1250
от 25.02.2009, 05:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 488, Экспертов: 43
В номере:Вопросов: 2, Ответов: 2

Нам важно Ваше мнение об этой рассылке.
Оценить этот выпуск рассылки >>

Вопрос № 160917: Умные люди помогите Процессор NTVDM обнаружил недопустимую инструкцию Cs :c000 Ip :35e4 OP: 0f 03 20 12 03 Эта ошибка выходит при компиляции программ на языке borland С++ ver. 3.1 в графическом режиме При компеляции программ без ис...


Вопрос № 160951: Уважаемые эксперты, подскажите, пожалуйста, как реализовать : поиск по названию- поиск по жанру- поиск по режиссеру- самый популярный фильм в жанре- в приложении, которое прилагаю. Не получается правильно написать сравнение введенно...

Вопрос № 160.917
Умные люди помогите Процессор NTVDM обнаружил недопустимую инструкцию Cs :c000 Ip :35e4 OP: 0f 03 20 12 03

Эта ошибка выходит при компиляции программ на языке borland С++ ver. 3.1 в графическом режиме

При компеляции программ без использования графического режима все работает ,но только в не по лноэкранном режиме.В полноэкранном режиме снова ошибка . В чем проблема ?????????
P.S.S мне так кажется это из за процца AMD Athlon 64 3500 +
В коде нет ошибок это я проверил на другом компе
Отправлен: 19.02.2009, 18:33
Вопрос задал: ARTEM ART (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 1)

Отвечает: Калеев Владимир Викторович
Здравствуйте, ARTEM ART!
Попробуй запускать borland С++ и скомпилированные программы не на стандартном эмуляторе DOS, а например на DOSBox, или на виртуальной машине на которой установлен полноценный DOS. Для написания программ для современных платформ используй другой компилятор.
Ответ отправил: Калеев Владимир Викторович (статус: 4-й класс)
Ответ отправлен: 20.02.2009, 05:44

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244079 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


    Вопрос № 160.951
    Уважаемые эксперты, подскажите, пожалуйста, как реализовать :
    поиск по названию-
    поиск по жанру-
    поиск по режиссеру-
    самый популярный фильм в жанре-
    в приложении, которое прилагаю. Не получается правильно написать сравнение введенного значения. Вообще изначально условие такое:

    Создать структуру ВИДЕОМАГАЗИН со следующими полями:
    Название фильма
    Режиссер
    Жанр
    Рейтинг популярности
    Цена диска

    Реализовать следующие возможности:
    Поиск по названию
    Поиск по жанру
    Поиск по режиссеру
    Самый популярный фильм в жанре
    Показ всех записей и добавление

    Приложение:

    Отправлен: 20.02.2009, 03:39
    Вопрос задал: Васильев Дмитрий (статус: Посетитель)
    Всего ответов: 1
    Мини-форум вопроса >>> (сообщений: 0)

    Отвечает: Micren
    Здравствуйте, Васильев Дмитрий!
    Поскольку Вы пишете на C++ то и ответ на нем. Если Вам нужна непременно структура, то замените class на struct. Программа тестировалась на Visual Studio 2008.
    Код:

    #include <locale>
    #include <limits>
    #include <iostream>
    #include <iomanip>
    #include <string>
    #include <vector>
    #include <algorithm>

    using namespace std;

    class CDisk
    {
    public:
    CDisk(wstring Movie,wstring Director,wstring Genre,int Rate,double Price)
    {
    _movie=Movie;
    _director=Director;
    _genre=Genre;
    _rate=Rate;
    _price=Price;
    }
    static bool ifMovie(wstring str,const CDisk& disk)
    {
    i f(str==disk._movie)return true;
    else return false;
    }
    static bool ifDirector(wstring str,const CDisk& disk)
    {
    if(str==disk._director)return true;
    else return false;
    }
    static bool ifGenre(wstring str,const CDisk& disk)
    {
    if(str==disk._genre)return true;
    else return false;
    }
    int rate() const
    {
    return _rate;
    }
    double price()const
    {
    return _price;
    }
    friend wostream& operator<<(wostream& stream,const CDisk& disk);
    private:
    wstring _movie;
    wstring _director;
    wstring _genre;
    int _rate;
    double _price;
    };

    vector<CDisk> collection;

    int GetOperation();
    void ShowAndAdd();
    void FindMovie();
    void FindDirector();
    void FindGenre();
    void FindMaxRateInGenre();

    int main()
    {
    locale::global(locale("rus_rus.866"));
    while(true)
    {
    switch(GetOperation())
    {
    case 1:
    FindMovie();
    break;
    case 2:
    FindDirector();
    break;
    case 3:
    FindGenre();
    break;
    case 4:
    FindMaxRateInGenre();
    break;
    case 5:
    ShowAndAdd();
    break;
    case 6:
    return 0;
    }
    }
    return 0;
    }

    wostream& operator<<(wostream& stream,const CDisk& disk)
    {
    stream<<L"Название:"<<disk._movie<<endl;
    stream<<L"Режиссер:"<<disk._director<<endl;
    stream<<L"Жанр:"<<disk._genre<<endl;
    stream<<L"Популярность:"<<disk._rate<<endl;
    stream<<L"Цена:"<<setprecision(2)<<disk._price<<endl;
    return stream;
    }

    void line()
    {
    wcout<<L"----------------------------------------------------------------"<<endl;
    }

    int GetOperation()
    {
    while(true)
    {
    wcout<<L"Выберите наобходимое действие"< ;<endl;
    wcout<<L"1-Поиск по названию"<<endl;
    wcout<<L"2-Поиск по режиссеру"<<endl;
    wcout<<L"3-Поиск пожанру"<<endl;
    wcout<<L"4-Самый популярный фильм в жанре"<<endl;
    wcout<<L"5-Показ всех записей и добавление"<<endl;
    wcout<<L"6-Выход"<<endl;
    wcout<<L"Сделайте свой выбор:";
    int choice;
    wcin>>choice;
    if(wcin.fail())
    {
    wcout<<L"Ошибка. Будьте внимательней."<<endl;
    wcin.clear();
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    continue;
    }
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    if(choice>=1&&choice<=6)return choice;
    else
    {
    wcout<<L"Неверный выбор"<<endl;
    }
    line();
    }
    }

    void print(const CDisk& disk)
    {
    wcout<<disk;
    line();
    }

    void ShowAndAdd()
    {
    wcout<<L"В коллекции имеются следующие фильмы:"<<endl;
    line();
    for_each(collection.begin(),collection.end(),print);
    wcout<<L"Добавьте фильмы в коллекцию"<<endl;
    while(true)
    {
    wstring movie,director,genre;
    int rate;
    double price;
    wcout<<L"Название(пустая строка для завершения):";
    getline(wcin,movie);
    if(!movie.length())break;
    wcout<<L"Режиссер:";
    getline(wcin,director);
    wcout<<L"Жанр:";
    getline(wcin,genre);
    wcout<<L"Популярность:";
    wcin>>rate;
    wcout<<L"Цена:";
    wcin>>price;
    collection.push_back(CDisk(movie,director,genre,rate,price));
    wcin.ignore(numeric_limits<streamsize>::max(),L' ');
    }
    }

    void FindDisk(wstring str,bool (*boolFunc)(wstring,const CDisk&),void (*actionFunc)(const CDisk&))
    {
    for(vector<CDisk>::iterator it=collection.begin();it!=collection.end();it++)
    {
    if(boolFunc(str,*it))
    actionFunc(*it);
    }
    }

    void FindMovie()
    {
    wstring movie;
    wcout<<L"Введите название фильма для поиска:";
    getline(wcin,movie);
    if(movie.length())
    {
    wcout<<L"С названием ""<<movie<<L"" найдены следующие фильмы:"<<endl;
    FindDisk(movie,CDisk::ifMovie,print);
    }
    }

    void FindDirector()
    {
    wstring director;
    wcout<<L"Введите имя режиссера для поиска:";
    getline(wcin,director);
    if(director.length())
    {
    wcout<<L"С режиссером ""<<director<<L"" найдены следующие фильмы:"<<endl;
    FindDisk(director,CDisk::ifDirector,p rint);
    }
    }

    void FindGenre()
    {
    wstring genre;
    wcout<<L"Введите жанр для поиска:";
    getline(wcin,genre);
    if(genre.length())
    {
    wcout<<L"В жанре ""<<genre<<L"" найдены следующие фильмы:"<<endl;
    FindDisk(genre,CDisk::ifGenre,print);
    }
    }

    static const CDisk* maxRate;

    void MaxInGenre(const CDisk& disk)
    {
    if(maxRate)
    {
    if(maxRate->rate()<disk.rate())
    maxRate=&disk;
    }
    else maxRate=&disk;
    }

    void PrintIfMaxInGenre(const CDisk& disk)
    {
    if(maxRate&&(disk.rate()==maxRate->rate()))print(disk);
    }

    void FindMaxRateInGenre()
    {
    wstring genre;
    wcout<<L"Введите жанр для поиска:";
    getline(wcin,genre);
    maxRate=0;
    if(genre.length())
    {
    FindDisk(genre,CDisk::ifGenre,MaxInGenre);
    wcout<<L"Максимальный рейтинг у следующих фильмов:"<&l t;endl;
    FindDisk(genre,CDisk::ifGenre,PrintIfMaxInGenre);
    }
    maxRate=0;
    }

    Пример работы:
    Код:

    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:5
    В коллекции имеются следующие фильмы:
    ----------------------------------------------------------------
    Добавьте фильмы в коллекцию
    Название(пустая строка для завершения):Бойцовский клуб
    Режиссер:Финчер
    Жанр:боевик
    Популярность:9
    Цена:40
    Название(пустая строка для завершения):Список Шиндлера
    Режиссер:Спилберг
    Жанр:драма
    Популярность:9
    Цена:45
    Название(пустая строка для завершения):Кри минальное чтиво
    Режиссер:Тарантино
    Жанр:криминал
    Популярность:8
    Цена:35
    Название(пустая строка для завершения):Матрица
    Режиссер:Вачовски
    Жанр:фантастика
    Популярность:8
    Цена:30
    Название(пустая строка для завершения):Чужой 3
    Режиссер:Финчер
    Жанр:фантастика
    Популярность:7
    Цена:30
    Название(пустая строка для завершения):
    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:5
    В коллекции имеются следующие фильмы:
    ----------------------------------------------------------------
    Название:Бойцовский клуб
    Режиссер:Финчер
    Жанр:боевик
    Популярность:9
    Цена:40
    ----------------------------------------------------------------
    Название:Список Шиндлера
    Режиссер:Спилберг
    Жанр:драма
    Популярность:9
    Цена:45
    ------------------------------------------------------- ---------
    Название:Криминальное чтиво
    Режиссер:Тарантино
    Жанр:криминал
    Популярность:8
    Цена:35
    ----------------------------------------------------------------
    Название:Матрица
    Режиссер:Вачовски
    Жанр:фантастика
    Популярность:8
    Цена:30
    ----------------------------------------------------------------
    Название:Чужой 3
    Режиссер:Финчер
    Жанр:фантастика
    Популярность:7
    Цена:30
    ----------------------------------------------------------------
    Добавьте фильмы в коллекцию
    Название(пустая строка для завершения):
    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:1
    Введите название фильма для поиска:Матрица
    С названием "Матрица" найдены следующие фильмы:
    Название:Матрица
    Режиссер:Вачовски
    Жанр:фантастика
    Популярность:8
    Цена:30
    ------------------- ---------------------------------------------
    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:2
    Введите имя режиссера для поиска:Финчер
    С режиссером "Финчер" найдены следующие фильмы:
    Название:Бойцовский клуб
    Режиссер:Финчер
    Жанр:боевик
    Популярность:9
    Цена:40
    ----------------------------------------------------------------
    Название:Чужой 3
    Режиссер:Финчер
    Жанр:фантастика
    Популярность:7
    Цена:30
    ----------------------------------------------------------------
    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:3
    Введите жанр для поиска:фантастика
    В жанре "фантастика" найдены следующие фильмы:
    Название :Матрица
    Режиссер:Вачовски
    Жанр:фантастика
    Популярность:8
    Цена:30
    ----------------------------------------------------------------
    Название:Чужой 3
    Режиссер:Финчер
    Жанр:фантастика
    Популярность:7
    Цена:30
    ----------------------------------------------------------------
    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:4
    Введите жанр для поиска:боевик
    Максимальный рейтинг у следующих фильмов:
    Название:Бойцовский клуб
    Режиссер:Финчер
    Жанр:боевик
    Популярность:9
    Цена:40
    ----------------------------------------------------------------
    Выберите наобходимое действие
    1-Поиск по названию
    2-Поиск по режиссеру
    3-Поиск пожанру
    4-Самый популярный фильм в жанре
    5-Показ всех записей и добавление
    6-Выход
    Сделайте свой выбор:
    Ответ отправил: Micren (статус: Студент)
    Ответ отправлен: 20.02.2009, 13:51

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 244127 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!

    Оценка за ответ: 5


    Вы имеете возможность оценить этот выпуск рассылки.
    Нам очень важно Ваше мнение!
    Оценить этот выпуск рассылки >>

    Отправить вопрос экспертам этой рассылки

    Приложение (если необходимо):

    * Код программы, выдержки из закона и т.п. дополнение к вопросу.
    Эта информация будет отображена в аналогичном окне как есть.

    Обратите внимание!
    Вопрос будет отправлен всем экспертам данной рассылки!

    Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
    экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


    Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
    Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RusFAQ.ru, Россия, Москва.
    Авторское право: ООО "Мастер-Эксперт Про"
    Техподдержка портала, тел.: +7 (926) 535-23-31
    Хостинг: "Московский хостер"
    Поддержка: "Московский дизайнер"
    Авторские права | Реклама на портале

    ∙ Версия системы: 5.13 от 01.12.2008

    Яндекс Rambler's Top100
    RusFAQ.ru | MosHoster.ru | MosDesigner.ru
    RusIRC.ru | Kalashnikoff.ru | RadioLeader.ru

    В избранное