Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Языки программирования (пособие).doc
Скачиваний:
6
Добавлен:
01.07.2025
Размер:
965 Кб
Скачать
☆

1.5.2Кавычки и апострофы

Обратите внимание на то, что строки заключаются в двойные кавычки, а символы – в апострофы. Ниже приведены примеры.

//Корректные записи

//Пример 1.

char ch = 'A';

//Пример 2.

string str = "Кашу маслом не испортишь";

//Пример 3.

cout << "Назвался груздем — полезай в кузов";

//Пример 4.

cout << "С"; cout << "ы"; cout << "p" << endl;

//Пример 5.

cout << 'С'; cout << 'ы'; cout << 'p' << endl;

//Некорректные записи

//Пример 1. (Символ заключен в кавычки)

char ch = "A";

//Пример 2. (Запись строки в char)

char ch = "Россия";

//Пример 3. (Запись строки в char)

char ch = 'Россия';

//Пример 4 (Строка заключена в апострофы).

string str = 'Кашу маслом не испортишь';

//Пример 5 (Строка заключена в апострофы).

cout << 'Кашу маслом не испортишь';

1.5.3Ввод русских символов

Рассмотренная ранее функция setlocale позволяет корректно выводить русские символы, но не вводить их. Рассмотрим пример:

setlocale(LC_ALL, "Russian");

char name[20];

cout << "Введите свое имя:";

cin >> name;

cout << "Ваше имя:";

cout << name << endl;

Введенное имя выведется некорректно (рис. 5).

Рисунок 5. Некорректный вывод введенного русского слова

Для устранения проблемы можно использовать второй способ:

#include <iostream>

using namespace std;

#include <windows.h>

int main() {

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

string name;

cout << "Введите свое имя:";

cin >> name;

cout << "Ваше имя:";

cout << name << endl;

return 0;

}

После запуска программы необходимо сменить шрифт консоли. Щелкните правой клавишей мыши на шапку консоли и выберите «Свойства». Выберите вкладку Шрифт и установите Lucida Console.

Рисунок 6. Выбор шрифра Lucida Console

Теперь все отобразится корректно (рис. 7).

Рисунок 7. Корректное отображение введенных русских символов

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

  1. Как объявить строку?

  2. Какую библиотеку необходимо подключить для корректной работы со строками?

  3. Объясните использование кавычек и апострофов применительно к символам и строкам.

  4. Как вывести строку на экран?

  5. Как ввести строку с клавиатуры?

  6. Как корректно вводить русские символы?

2Циклы и массивы Тема 2.1. Цикл на базе if и goto

Оператор goto, называемый оператором безусловного перехода, предназначен для того, чтобы осуществлять «скачки» в теле программы. Для этого перед командой, на которую необходимо осуществить переход, следует поставить метку, а затем в другом месте программы вызвать оператор goto и указать эту метку. Метку можно представлять себе как адрес команды и при необходимости к нему обращаться. Например, зная адрес дома, можно сказать человеку прийти по этому адресу. Аналогично работает и оператор goto: он сообщает компьютеру, что нужно перейти к помеченной команде.

В соверменном программировании распространено мнение, что любую программу, написанную с помощью оператора goto, можнои нужно переписать без него. Считается, что он нарушает принципы структурного программирования, позволяя изменять последовательное выполнение команд. Тем не менее, почти во всех современных языках он присутствует. Считается, что использование goto оправдано, когда требуется выйти из глубого вложенных циклических конструкций (мы рассмотрим эту ситуацию позднее). В нашем курсе этот оператор также почти не используется, но понимать работу этого оператора и иметь некоторый опыт работы с ним должен любой программист.

В данной теме мы изучим синтаксис оператора goto и рассмотрим несколько примеров. В частиности, усовершенствуем консольное меню так, чтобы пользователь мог с ним работать, пока не будет выбран пункт меню «Выход». Напомню, что в первой версии меню позволяло сделать выбор только один раз. Далее будет усовершенствована игра «Угадай число!». Новая версия позволит определять количество попыток, потребовавшихся для угадывания числа. Первая версия этой игры предлагала лишь одну попытку. Наконец мы реализуем циклическую конструкцию на базе операторов if и goto, что позволит лучше понять работу оператора безусловного перехода и подготовиться к освоению материала, связанного с циклами.