Скачать 1.94 Mb.
|
Часть "else (иначе)" в операторе if необязательна. Более того, если после "if ( условие )" стоит только один оператор, то можно опустить фигурные скобки и записать оператор так: 13 if ( условие ) Оператор1; В программах условные операторы часто встречаются группами, например: if (total_test_score < 50) cout « "Вы не прошли тест. Выучите материал как следует.\n"; else if (total_test_score < 65) cout « "Вы прошли тест со средним результатом.\n"; else if (total_test_score < 80) cout « "Вы хорошо выполнили тест.\n"; else if (total_test_score < 95) cout « "Вы показали отличный результат.\n"; else { cout « "Вы сдали тест нечестно!\n"; total_test_score = 0; Приведенный фрагмент программы может показаться довольно сложным. Тем не менее, он соответствует правилам Си++. Это легко понять, если обратиться к синтаксической диаграмме оператора if (рис. 4). В овальных или круговых рамках на синтаксических диаграммах указываются элементы языка, которые буквально так и воспроизводятся в исходном тексте программ. В прямоугольных рамках приведены элементы, требующие дальнейшего определения, возможно, с помощью других синтаксических диаграмм. Набор таких диаграмм служит формальным описанием синтаксиса языка программирования. Обратите внимание, что на рис. 4 отсутствует символ ";" и разделители "{}". Эти элементы языка включены в определение (и синтаксическую диаграмму) для обобщенного понятия "оператор языка Си++". Рис. 4. Синтаксическая диаграмма оператора if. При обработке приведенного фрагмента программы компилятор Си++ трактует весь текст, выделенный ниже полужирным шрифтом, как один оператор после первого слова else. if (total_test_score < 50) cout « "Вы не прошли тест. Выучите материал как следует.\n"; else if (total_test_score < 65) cout « "Вы прошли тест со средним результатом.\n"; else if (total_test_score < 80) cout « "Вы хорошо выполнили тест.\n"; 14 else if (total_test_score < 95) cout « "Вы показали отличный результат.\n"; else { cout « "Вы сдали тест нечестно!\n"; total_test_score = 0; 8. Оформление исходного текста Между текстом программы, приведенным в п.5 и текстом, который показан ниже, для компилятора Си++ нет никаких различий. #include Отсутствие комментариев, пробелов, пустых строк и отступов делают эту программу практически непригодной для чтения человеком. Для выработки хорошего стиля программирования, конечно, требуется знать не только правила оформления текста программы, но их следует соблюдать с самого начала. При оформлении собственных программ будьте последовательны и делайте так, чтобы отступы и пробелы отражали логическую структуру ваших программ. Для переменных следует выбирать осмысленные имена: имена "year_now", "age_now", "another_year" и "another age" лучше, чем "y_n", "a_n", "a_y" и "a_a" и намного лучше, чем "w", "x", "y" и "z". Это особенно важно, если в будущем ваши программы могут потребовать изменения с помощью других программистов. 9. Сводка результатов В данной лекции кратко и неформально были рассмотрены несколько важных вопросов: переменные и типы данных, ввод и вывод, оператор присваивания и условный оператор ("оператор if"). Более строго и подробно эти вопросы будут рассмотрены в последующих лекциях. 10. Упражнения Для выполнения этих упражнений требуется некоторый опыт работы с ПК под управлением операционной системы Windows 95/NT. Упражнение 1 Изучите краткое руководство по Visual C++ в Приложении. Создайте проект с именем "AgeCalculator". Создайте исходный файл с именем AgeCalculator.cpp 15 и наберите в нем исходный текст программы 5.1. Сохраните файл на диске и добавьте его в проект. Соберите проект и запустите программу на выполнение. Возможно, вы встретитесь со следующими проблемами: 1) В окне программы вместо русских букв выводятся какие-то странные символы. Эта проблема объясняется различием таблиц кодировок Windows и DOS. В этих таблицах русские буквы расположены в разных местах. Консольные программы при работе используют кодировку DOS, а текстовый редактор Visual C++ - кодировку Windows. Поэтому вам придется добавить преобразование строк с русскими буквами из кодировки Windows в кодировку DOS. Для этого включите в программу, после файла iostream.h, файл windows .h с описанием функций операционной системы Windows: #include Перед функцией main () создайте новую функцию с именем rus_str (), которая будет выполнять необходимое преобразование с помощью специальной функции Windows: char* rus_str( char* str ) { CharToOem( str, str ); return str; } Во всех строках программы, где на экран выдаются символьные строки с русскими буквами, укажите преобразование этих строк с помощью новой функции, например: cout << rus str( "Введите текущий год и нажмите ENTER.\n" ); 2) После завершения работы окно программы закрывается и не удается увидеть ре зультаты. Для исправления этого недостатка проще всего предусмотреть в конце программы ввод произвольного символа. Пока пользователь не нажмет какую-нибудь символьную клавишу и потом Enter, окно программы будет оставаться на экране. Для этого потребуется завести символьную переменную (строку с описанием этой переменной расположите после строки с описанием целочисленных переменных): char wait_char; Перед строкой с оператором возврата "return 0" добавьте оператор для ввода символа с клавиатуры: cin » wait_char; Сравните результаты работы своей программы с примером из лекции. Поэкспериментируйте над улучшением или изменением формата вывода на экран. Упражнение 2 Модифицируйте программу 5.1, чтобы при превышении переменной "another_age" значения 150 на экран выводилось сообщение: Извините, но вы вряд ли доживете до [year] года! Проверьте работу своей программы для нескольких разных лет. Упражнение 3 Измените программу из упр.2 так, чтобы в ней учитывались и годы, и месяцы. На экран программа должна выводить следующие сообщения: Введите текущий год и нажмите ENTER. 2000 Введите текущий месяц (число от 1 до 12). 10 16 Введите свой возраст (в годах). 25 Введите месяц своего рождения (число от 1 до 12). 5 Введите год, для которого вы хотите узнать свой возраст. 2006 Введите месяц этого года. 6 Ваш возраст в 6/2006: 31 год и 1 месяц. Программа должна выдавать корректные сообщения для единственного и множественного числа лет и месяцев, т.е. должна выводить на экран "25 лет и 1 месяц", но "2 4 года и 2 месяца". Подсказка: В программе вам потребуются дополнительные переменные. Обязательно добавьте их имена в оператор описания переменных. При вычислениях могут пригодиться некоторые стандартные операции Си++:
(Обратите внимание, что в приведенной таблице операция деления "/" применялась к двум целым числам, поэтому результат — тоже целое число.) Кроме арифметических операций, для проверки условий в операторе if вам могут потребоваться некоторые логические операции.
17 ЛЕКЦИЯ 2. Переменные, типы данных и выражения 1. Идентификаторы В исходном тексте программ на Си++ используется довольно много английских слов и их сокращений. Все слова (идентификаторы), встречающиеся в программах, можно разделить на три категории: 1) Служебные слова языка. Например, это слова if, int и else. Назначение этих слов предопределено и его нельзя изменить. Ниже приведен более полный список служебных слов:
float for friend goto if inline int long По назначению эти слова можно разбить на отдельные группы (прил. 8.1). |
И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной... Цели: 1 продолжить знакомство с героями поэмы «Полтава»; познакомиться с изображением Полтавской битвы в поэме | И. П. Гиривенко к т. н., доцент, зав кафедрой информатики и вычислительной... ... | ||
Методические рекомендации по подготовке, оформлению, предзащите и... В. А. Усков, заместитель декана естественно-географического факультета по развитию, доцент кафедры физической географии и методики... | Проблемы коммуникации М. Е. Евсевьева (зав кафедрой, доцент А. А. Ветошкин); С. А. Борисова, директор Института международных отношений Ульяновского государственного... | ||
Программа по формированию навыков безопасного поведения на дорогах... Елена Святославовна Симакова, кандидат педагогических наук, доцент кафедры гуманитарных и естественнонаучных дисциплин Рязанского... | Программа курса по выбору «Орнитология» предназначена для студентов... Автор программы: к б н., доцент, зав кафедрой биологии и химии Марина Николаевна Харламова | ||
Российской Федерации Федеральное государственное образовательное... Петренко И. М., зав кафедрой экономической теории, д-р экон наук профессор Дулин М. П., зав кафедрой педагогики и психологии, д-р... | Рахманкулова Людмила Кузьминична, кандидат филологических наук, доцент... Автор программы: С. А. Виноградова, кандидат филологических наук, доцент, зав кафедрой английского языка и английской филологии | ||
Протокол №5 От 12 января 2012 г Заседания кафедры электроники и вычислительной... Зав кафедрой Хакимова Г. Г. сообщила, что кафедра проводит 2-й Чемпионат по цифровой схемотехнике | Лингвистические проблемы Московского государственного педагогического института иностранных языков им. М. Тореза (зав кафедрой доцент Ю. А. Денисенко); д-р... | ||
Мгпу учебно-методический комплекс дисциплины А. В. Прялухина, кандидат психологических наук, доцент, зав кафедрой психологии Российского государственного социального университета... | Рабочая программа по дисциплине «теория экономического анализа» Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... | ||
Рабочая программа по дисциплине «международный менеджмент» Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... | Методические рекомендации по написанию курсовых работ дисциплине Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... | ||
Учебное пособие Краснодар 2008 В. А. Оробец); кафедра паразитологии и ветсанэкспертизы Донского государственного аграрного университета (зав кафедрой, проф., к... | Рабочая программа по дисциплине «Экономика организаций (предприятий)... Рецензент: к с н., доцент, зав кафедрой «Экономики и управления на предприятии и маркетинга» Пятигорского государственного гуманитарно-технологического... |