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

Доработка примеров учебника. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В чём разница между процедурами и функциями ? http://www.cyberforum.ru/cpp-beginners/thread437111.html
Мне просто нужно будет выполнить одну и ту же операцию несколько раз, а сама операция включает в себя несколько вычислений , создание массивов, сравнение массивов и т.д.... Вот не знаю что лучше -...
C++ Неправильный вывод #include <cstdlib> #include <iostream> using namespace std; class Kit{ public: float dovzhuna; float shuruna; float vusota; http://www.cyberforum.ru/cpp-beginners/thread437107.html
C++ Как сделать флаг чередованием --**--**... ?
Язык Си.
C++ Вывести слова которые повторяются и количество их повторения
Ребят помогите реализовать следующую програмку: нужно чтоб когда на входе программы было например "мама мыла раму раму мыла мама". программа вывела: слова которые повторяются и количество их...
C++ проверка функций http://www.cyberforum.ru/cpp-beginners/thread437052.html
Всем привет! Вот проблема: #include<iostream.h> #include<conio.h> #include<math.h> struct Angle { int degree; int minute;
C++ помогите с Error 13 ??? во время компиляцеи видает ошибку 13, после printf , как исправить ошибку ? #include <stdio.h> int main (void) { char name1 , name2 , name3 ; char sch1 , sch2 , sch3 ; int sc1,sc2,sc3;... подробнее

Показать сообщение отдельно
Гортор
11 / 11 / 0
Регистрация: 24.10.2011
Сообщений: 134

Доработка примеров учебника. - C++

29.01.2012, 01:27. Просмотров 531. Ответов 5
Метки (Все метки)

Доброго времени суток!
Изучая структура повторения while, и рассматривая приведенные примеры немного доработал код для (как мне кажется) большей маневренности программы и исключения некоторых багов. Прошу рассмотреть мои переработки и сказать, действительно ли они улучшают программу, или они могут как-то не так повлиять на программу?

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
//Программа для расчета среднего значения 
//с повторением, управляемым счетчиком.
 
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    int counter, grade, total, average;
    
    //этап задания начальных значений.
    total =0;
    counter = 1;
    
    //этап обработки данных
    while (counter <= 10)
    {
        cout << "Enter assessment: ";
        cin >> grade;
        total = total + grade;
        counter = counter + 1;
    }
    //завершающий этап
    average = total / 10;
    cout << "Average assessment = " << average << endl;
    
    return 0;
}
Если добавить некое значение number как количество учеников(пример из учебника), запросить в начале программы, собственно ввод этого количества и заменить "10" на number, то получится более гибкий способ вывода среднего арифметического оценок в классе.

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
#include <iostream>
using std::cout;
using std::cin;
using std::endl;
 
int main()
{
    int counter, grade, total, average, nomber;
    
    cout << "Enter nomber of students: ";
    cin >> nomber;
    
    //этап задания начальных значений.
    total =0;
    counter = 1;
    
    //этап обработки данных
    while (counter <= nomber)
    {
        cout << "Enter assessment: ";
        cin >> grade;
        total = total + grade;
        counter = counter + 1;
    }
    //завершающий этап
    average = total / nomber;
    cout << "Average assessment = " << average << endl;
    
    return 0;
}
И аналогичный пример с управляемой меткой(-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
//Программа для расчета среднего значения
//с повторением, управляемым меткой.
 
#include <iostream>
#include <iomanip.h>
 
using std::cout;
using std::cin;
using std::endl;
 
main()
{
    float average;   //введение переменной с десятичной запятой
    int counter, grade , total;
    
    //этап задания начальных значений
    total =0;
    counter =0;
    
    //этап обработки данных
    cout << "Enter assessment or -1 for complite: ";
    cin >> grade;
    
    while (grade != -1)
    {
        total = total + grade;
        counter = counter +1;
        cout << "Enter assessment or -1 for complite: ";
        cin >> grade;
    }
    
    //завершающий этап
    if (counter != 0)
    {
        average = (float) total / counter;
        cout << "Average = " << setprecision(2)
             <<setiosflags(ios::fixed | ios::showpoint)
             << average << endl;
    }
    else
        cout << "Assessment not found (404)" << endl;
    
    return 0;
}
Если заменить
C++
1
while (grade != -1)
на
C++
1
while (grade > 0)
, то можно избежать (случайного) ввода отрицательного значения, отавляя место для метки (-1).

И еще хотелось бы уточнить назначение директивы #include <iomanip.h>, ибо в книжке она раскрывается чуть более, чем никак.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru