ВКР. Учебно-методическое пособие Тольятти тгу 2011 удк 004 3(075) ббк. Учебнометодическое пособие по дисциплине Языки программирования предназначено для студентов очной формы обучения и содержит конспект лекций по ключевым темам курса и практикум
Скачать 0.88 Mb.
|
2.3.2Пример простой программыНиже приведён исходный текст простой программы на Си++. // В языке Си++ с двойной косой черты начинаются комментарии // (например, как эта строка). Компилятор игнорирует комментарии, // начиная от первой черты и до конца строки. /* Второй способ записи комментариев – после косой черты со звёздочкой. После текста комментария надо поставить звёздочку, а затем – косую черту. Комментарии, записанные подобным образом, могут занимать больше одной строки. */ /* В программе ОБЯЗАТЕЛЬНО должно быть достаточное количество комментариев! */ /* Эта программа запрашивает у пользователя текущий год, возраст пользователя и еще один год. Затем программа вычисляет возраст пользователя, который будет у него во втором введённом году.*/ #include int main() { int year_now, age_now, another_year, another_age; cout << "Введите текущий год и нажмите ENTER.\n"; cin >> year_now; cout << "Введите свой возраст (в годах).\n"; cin >> age_now; cout << "Введите год, для которого вы хотите узнать свой возраст.\n"; cin >> another_year; another_age = another_year - (year_now - age_now); if (another_age >= 0) { cout << "В " << another_year << " годувамбудет "; cout << another_age << "\n"; } else { cout << "В " << another_year << " вы еще не родились!\n"; } return 0; } Некоторые свойства приведённой программы являются обычными для большинства программ на Си++. Программа начинается (после комментариев) с оператора #include Директива include предназначена для включения в исходный текст содержимого другого файла. Например, в приведённую программу включается файл iostream.h, содержащий описания функций стандартной библиотеки ввода/вывода для работы с клавиатурой и экраном. Алгоритм, записанный в приведённой программе, очень простой. Поэтому структуру программы легко представить в виде списка последовательно выполняемых команд (операторов). Схематично программу, содержащуюся после директивы #include, можно представить в виде: int main() { Первый оператор; ... ... Последний оператор; return 0; } Подобная структура является общей для всех программ на Си++. Каждый оператор в теле программы завершается точкой с запятой. В хорошо разработанной большой программе большинство операторов являются обращениями (вызовами) к подпрограммам, которые записываются после функции main() или в отдельных файлах. Каждая подпрограмма (функция) имеет структуру, подобную функции main(). Но функция main() в каждой программе только одна. Именно с нее начинается выполнение программы. (Подробнее функции будут рассматриваться далее.) В конце функции main() записана строка: return 0; Эта строка значит «вернуть операционной системе в качестве сигнала об успешном завершении программы значение 0». Оператор возврата return применяется не только при завершении программы, но и при завершении отдельных подпрограмм. В любом случае этот оператор возвращает определённое значение на более высокий уровень управления. В программе-примере используются четыре переменные: year_now, age_now, another_year и another_age Переменные в программировании отличаются от математических переменных. Они используются как символические имена «фрагментов оперативной памяти компьютера». При выполнении программы в различные моменты времени переменные могут хранить различные значения. В приведённой программе первое упоминание четырёх переменных содержится в строке с оператором описания переменных: int year_now, age_now, another_year, another_age; Этот оператор уведомляет компилятор, что для хранения четырёх переменных типа «целое число» (integer – int) требуется выделить необходимое количество памяти. Эта область памяти будет зарезервирована в течение выполнения оставшейся части программы. Переменные всегда должны быть описаны до первого использования. В программировании хорошим стилем считается описание всех переменных, используемых в подпрограмме, в начале этой подпрограммы. В Си++ есть несколько различных типов переменных, и они будут обсуждаться немного позже. После компиляции программы её можно запустить на выполнение. Результат выполнения на экране будет выглядеть примерно так: Введите текущий год и нажмите ENTER. 2000 Введите свой возраст (в годах). 21 Введите год, для которого вы хотите узнать свой возраст. 2017 В 2017 году вам будет 38 Первая, третья, пятая и седьмая строки выдаются на экран программой с помощью следующего оператора: cout << Выражение1 << Выражение2 << ... << ВыражениеN; Этот оператор выводит на экран сообщение: Выражение1 Выражение2 ... ВыражениеN Последовательность операторов cout << Выражение1; cout << Выражение2; ... ... cout << ВыражениеN; приводит к аналогичному результату. Если между выражениями требуется вставить пробелы или новые строки, то их нужно указать явно, с помощью символов "" и "\n" соответственно. Числа, показанные выше в примере выдачи на экран полужирным шрифтом, были напечатаны пользователем. В показанном примере оператор cin >> year_now; приводит к тому, что переменной year_now присваивается значение 2000. Это происходит после того, как пользователь напечатает «2000» и нажмет клавишу Enter. В программе есть ещё места, где переменным присваиваются значения, в том числе оператор присваивания: another_age = another_year - (year_now - age_now); Операция «=» означает «присвоить переменной, стоящей слева от знака равенства, значение, указанное справа». Проверка на равенство в Си++ обозначается двойным символом: «==». В нескольких последних строках программы (до строки «return 0») записано: if (another_age >= 0) { cout << "В " << another_year << " годувамбудет "; cout << another_age << "\n"; } else { cout << "В " << another_year << " вы еще не родились!\n"; } Оператор ветвления (условный оператор) «if...else...» выглядит примерно одинаково во всех процедурных языках программирования. В Си++ он называется просто оператором if, и его общая структура такова: if (условие) { Оператор1; ... ... ОператорN; } else { ОператорN+1; ... ... ОператорN+M; } Часть «else (иначе)» в операторе if необязательна. Более того, если после «if (условие)» стоит только один оператор, то можно опустить фигурные скобки и записать оператор так: 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; } ... ... Приведённый фрагмент программы может показаться довольно сложным. Тем не менее, он соответствует правилам Си++. При обработке приведённого фрагмента программы компилятор Си++ трактует весь текст, выделенный ниже полужирным шрифтом, как один оператор после первого слова else. ... ... 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; } ... ... |