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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
#1

Пример из книги Лафоре - C++

22.01.2011, 18:41. Просмотров 1268. Ответов 7
Метки нет (Все метки)

В третьей главе книги Лафоре по с++ есть пример использующий функцию getche():
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
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    int chcount = 0, wdcount = 1;
    char ch = 'a';
    cout << "Insert string: ";
    while(ch != '\r')
    {
        ch = getche();
        if(ch == ' ')
        {
            wdcount++;
        }
        else
        {
            chcount++;
        }
    }
    cout << "Number of words: " << wdcount << endl;
    cout << "Number of letter: " << (chcount -1) << endl;
    return 0;
}
Результат выполнения программы следующий:
- Исходные данные: http://s006.***********/i215/1101/2f/9540150ac8da.png
- Результат: http://s51.***********/i132/1101/1b/2c7fec430e54.png
В чем проблема? Подскажите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2011, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пример из книги Лафоре (C++):

Пример из книги Лафоре - C++
Здравствуйте! Не могли бы подсказать, по какой причине в листинге ниже переменные должны быть обязательно быть изначально изначально с...

Не работает пример из книги Лафоре - C++
Доброго времени суток! Взялся решать задачу из книги Лафоре, глава 9, упр. 2. Опробовал уже готовое решение из самой книги- не работает. ...

Пример из книги Лафоре. Подсчитать количество слов и символов в строке - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; // для getche() using namespace std; int main() { setlocale(LC_ALL, &quot;Rus&quot;); int...

Задания из книги Р. Лафоре - C++
Добрый день, решаю задачу из книги Лафоре. Если в двух словах, то нужно перевести строку в long double. Вот листинг решения: ...

Задания из книги Р. Лафоре - C++
Приветствую всех! Выполняю задание из книги Р. Лафоре &quot;ООП в С++&quot;. Задание главы 7. Одним из недостатков C++ являеться отсутствие...

Упражнение из книги Лафоре - C++
//11.cpp #include &lt;iostream&gt; using namespace std; class sterling { private: long pounds; int shil; int pens;

7
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
22.01.2011, 19:06 #2
вы про is? которая идет после 2х?
добавьте просто перенос строки
C++
1
cout << '\n' << "Number of words: " << wdcount << endl;
или сделайте очистку экрана ..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    while(ch != '\r')
    {
        ch = getche();
        if(ch == ' ')
        {
            wdcount++;
        }
        else
        {
            chcount++;
        }
        if(ch == '\r'){
            system("cls");
        }
    }
1
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
22.01.2011, 19:23  [ТС] #3
Спасибо за помощь!
0
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
23.01.2011, 19:53  [ТС] #4
Очередной пример с ошибкой:
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
#include <iostream>
#include <conio.h>                      //для getche()
 
using namespace std;
 
int main()
{
    const unsigned char white = 219;    //белый цвет для простых чисел
    const unsigned char gray = 176;     //серый цвет для непростых чисел
    unsigned char ch;
    for(int count = 0; count < 80 *25 -1; count++)
    {
        ch = white;                     //предполагаем, что число простое
        for(int j = 2; j < count; j++)
        {
            if(count %j == 0)           //делим каждое число на j, если остаток от деления равен 0
            {
                ch = gray;
                break;                  //то число не простое
            }
        cout << ch;                     //вывод результата на экран
        }                               //завершение второго цикла for
    }                                   //завершение первого цикла for
    getch();                            //задержка полученного изображения
    return 0;
}
Итогом работы программы является не раскрашивание ячеек, а полностью закрашенный экран с 0 по 1998. Хотя по примеру все верно... В чем может быть ошибка?
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
23.01.2011, 20:27 #5
Цитата Сообщение от zabuka Посмотреть сообщение
Итогом работы программы является не раскрашивание ячеек, а полностью закрашенный экран с 0 по 1998
C++
1
2
for(int count = 0; count < 80 *25 -1; count++)
count < 80 *25 -1;
80*25 = 2000, и от него еще 1 отнимаем. а так же стоит строго "<", значит еще единицу отнимаем. вот и выходит 1998.
вроде так ..
1
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
23.01.2011, 20:34  [ТС] #6
Цитата Сообщение от NiRamz Посмотреть сообщение
....
вроде так ..
Спасибо! Но вопрос не в этом. В книге описан результат, что ячейки, которые пронумерованы от 0, и в нашем случае, до 1998, будут раскрашены в цвета: ячейки с просты номером (2, 3, 5 и т.д.) - белым цветом, непростые числа - серым. Итогом же работы является полностью закрашенный экран от 0 до 1998.
0
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
23.01.2011, 21:02 #7
хм, так красит в один цвет .. если убрать break; то красить начинает в разные цвета ..
1
zabuka
1 / 1 / 0
Регистрация: 16.12.2010
Сообщений: 38
23.01.2011, 21:06  [ТС] #8
Цитата Сообщение от NiRamz Посмотреть сообщение
хм, так красит в один цвет .. если убрать break; то красить начинает в разные цвета ..
Спасибо большое! Неприятно поражен, что в такой литературе, такое огромное количество ошибок. Помимо тех вопросов, что задаю на форуме, сам много, на своем уровне, нахожу в книге.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2011, 21:06
Привет! Вот еще темы с ответами:

Листинг из книги Лафоре - C++
Добрый вечер. Хочу попросить помощи: в третьей главе книги Лафоре идет объяснение циклов, начинается с цикла for. В данной главе...

Рекурсия с++ из книги Лафоре - C++
Что за принцип у работы рекурсии? // factor2.cpp // подсчет факториала числа с помощью рекурсии #include &lt;iostream&gt; using...

Непонятен пример из Лафоре - C++
В 7й Главе Никак не могу понять как реализован выход из цикла #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; ...

Лафоре Не компилируется пример - C++
Вот текст кода#include &quot;msoftcon.h&quot; class Shape { protected: int xCo, yCo; color fillcolor; fstyle fillstyle; ...


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

Или воспользуйтесь поиском по форуму:
8
Yandex
Объявления
23.01.2011, 21:06
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru