Чтение онлайн

на главную

Жанры

Освой самостоятельно С++ за 21 день.

Либерти Джесс

Шрифт:

return (Salary+500) / 1000;

}

5. Измените класс Employee так, чтобы можно было инициализировать данные-члены

age, YearsOfService и Salary в процессе "создания" служащего.

class Employee

{

public:

Employee(int Age, int yearsOfService, int salary);

int GetAge const;

void SetAge(int Age);

int GetYearsOfService const;

void SetYearsOfService(int years);

int GetSalary const;

void SetSalary(int salary);

private:

int Age;

int YearsOfService;

int Salary;

};

6. Жучки:

что неправильно в следующем объявлении?

class Square

{

public:

int Side;

}

Объявления классов должны завершаться точкой с запятой.

7. Жучки: что весьма полезное отсутствует в следующем объявлении класса?

class Cat

{

int GetAge const;

private:

int itsAge;

};

Метод доступа к данным GetAge является закрытым по умолчанию. Помните: все члены класса считаются закрытыми, если не оговорено иначе.

8. Жучки: какие три ошибки обнаружит компилятор в этом коде?

class TV

{

public:

void SetStation(int Station);

int GetStation const;

private:

int itsStation;

};

main

{

TV myTV;

myTV.itsStation = 9;

TV.SetStation(10);

TV myOtherTv(2);

}

Нельзя обращаться к переменной itsStation непосредственно. Это закрытая пере- менная-член.

Нельзя вызывать функцию-член SetStationnpHMO в классе. Метод SetStation можно вызывать только для объекта.

Нельзя инициализировать переменную-член itsStation, поскольку в программе не определен нужный для этого конструктор.

День 7

Контрольные вопросы 

1. Можно ли в цикле for инициализировать сразу несколько переменных-счетчиков?

Можно, для этого в строке инициализации их следует разделить запятыми, например:

for <х = 0. у = 10; х < 100; х++, у++)

2. Почему следует избегать использование оператора goto?

Оператор Goto выполняет переход в любом направлении к любой произвольной

строке программы. Это делает исходный код слишком запутанным, а следовательно, и трудным для понимания и дальнейшего обслуживания.

3. Можно ли с помошью оператора for организовать цикл, тело которого не будет выполняться?

Да. Если условие после инициализации оказывается ложным (FALSE), то тело цикла

for никогда не будет выполняться. Вот пример:

for (lnt х = 100; х < 100; х++)

4. Можно ли организовать цикл while внутри цикла for?

Да. Любой цикл может быть вложен внутрь любого другого цикла.

5. Можно ли организовать цикл, который никогда не завершится? Приведите пример.

Да. Ниже приведены примеры как для цикла for, так и для цикла wtiile:

for(;;)

{

// Этот цикл никогда не заканчивается!

}

whlle(1)

{

// Этот цикл никогда не заканчивается!

}

6. Что происходит при запуске бесконечного цикла?

Программа зависнет и придется перезагрузить компьютер.

Упражнения 

1. Каким будет значение переменной х после завершения никла

for (int X = 0; X < 100; х++)?

100

2. Создайте вложенный цикл for, заполняющий нулями массив размером 10x10.

for (int = 0; i< 10; i++)

{

for ( int j = 0; j< 10; j++)

cout << О ;

cout << "\n";

}

3. Организуйте цикл for, счетчик которого изменяется от 100 до 200 с шагом 2.

for (int х = 100; х<=200; х*=2)

4. Организуйте цикл while, счетчик которого изменяется от 100 до 200 с шагом 2.

int х = 100;

while (х <= 200)

х+= 2:

5. Организуйте цикл do...while, счетчик которого изменяется от 100 до 200 с шагом 2.

int х = 100;

do

{

х+=2:

} while (х <= 200);

6. Жучки: найдите ошибку в приведенном фрагменте программы:

int counter = 0;

while (counter < 10)

{

cout << "counter: " << counter;

}

Нет выражения, в котором выполнялось бы приращение счетчика counter, поэтому цикл while никогда не закончится.

7. Жучки: найдите ошибку в приведенном фрагменте программы:

for (int counter = 0; counter < 10; counter++);

cout << counter << " ";

В конце строки задания цикла стоит точка с запятой, поэтому цикл выполняет только приращение счетчика. Программист, возможно, именно это и имел в виду, но если предполагался еще и вывод каждого значения переменной counter, то этого не произойдет.

8. Жучки: найдите ошибку в приведенном фрагменте программы:

int counter = 100;

while (counter < 10)

{

cout << "counter now: " << counter;

counter—-;

Поделиться:
Популярные книги

Начальник милиции

Дамиров Рафаэль
1. Начальник милиции
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Начальник милиции

И только смерть разлучит нас

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
И только смерть разлучит нас

На границе империй. Том 8. Часть 2

INDIGO
13. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 8. Часть 2

Кодекс Охотника. Книга IX

Винокуров Юрий
9. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга IX

На руинах Мальрока

Каменистый Артем
2. Девятый
Фантастика:
боевая фантастика
9.02
рейтинг книги
На руинах Мальрока

Без шансов

Семенов Павел
2. Пробуждение Системы
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Без шансов

Последняя Арена 10

Греков Сергей
10. Последняя Арена
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Последняя Арена 10

Кодекс Охотника. Книга XXII

Винокуров Юрий
22. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Охотника. Книга XXII

Охота на разведенку

Зайцева Мария
Любовные романы:
современные любовные романы
эро литература
6.76
рейтинг книги
Охота на разведенку

Измена. Не прощу

Леманн Анастасия
1. Измены
Любовные романы:
современные любовные романы
4.00
рейтинг книги
Измена. Не прощу

Защитник

Кораблев Родион
11. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Защитник

Адмирал южных морей

Каменистый Артем
4. Девятый
Фантастика:
фэнтези
8.96
рейтинг книги
Адмирал южных морей

Наизнанку

Юнина Наталья
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Наизнанку

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6