Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

ВВЕДЕНИЕ. Дисциплина «Программирование» относится к циклу общепрофессиональных дисциплин и блоку дисциплин, обеспечивающих программную подготовку студентов




Дисциплина «Программирование» относится к циклу общепрофессиональных дисциплин и блоку дисциплин, обеспечивающих программную подготовку студентов. Дисциплина основана на знаниях, полученных в результате изучения дисциплины «Информатика» и является базисом для изучения таких общепрофессиональных и специальных дисциплин как «Технология программирования», «Системное и программное обеспечение», «Формальные языки и грамматики», «Компьютерное моделирование», «Базы данных», «Теория вычислительных процессов и структур» «Функциональное программирование», «Параллельное программирование». Целью курса является изучение студентами основ структурного и объектно-ориентированного программирования на языке высокого уровня.

В результате изучения дисциплины студенты должны знать и уметь использовать основные конструкции языков программирования, основные и абстрактные типы данных, способы записи алгоритма на языке программирования, обладать навыками объектно-ориентированного программирования.

В качестве базового языка выбран язык С++. Язык программирования С ++ был разработан на основе языка С Б. Страуструпом и вышел за пределы его исследовательской группы в начале 80-х годов. На первых этапах разработки язык носил условное название «С с классами», а в 1983 г. Р. Масситти предложил название С ++, что образно отразило происхождение этого языка от языка С. Язык С ++ является расширением (надмножеством) языка С, поэтому программы, написанные на С, могут обрабатываться компиляторами языка С ++, а в программах, написанных на С ++, можно обращаться к библиотечным функциям языкам С. Однако, язык C ++ существенно отличается от C, так как поддерживает абстракцию данных и обеспечивает объектно-ориентрованное программирование.

Данное пособие предназначено для изучения основ языка С ++ и не требует от читателя знакомства с языком С. В пособии описывается структура программы, написанной на С ++, типы данных, используемые в языке, операции языка, конструкции ветвления, циклов и передачи управления, а также даются основы процедурного и объектно-ориентированного программирования.

Данное пособие может быть использовано на практических занятиях при изучении дисциплины «Программирование» (специальность «Математическое обеспечении и администрирование информационных систем») по следующим разделам дисциплины «Основы программирования на языке высокого уровня» (глава 1), «Динамические структуры данных» (глава 2), «Основы объектно-ориентированного программирования» (глава 3). Разделы «Технология создания программ» и «Основные парадигмы программирования» не освещены в пособии, так как в соотвествии с рабочей программой не предполагают проведения практических занятий. Кроме того, пособие может быть испольвано на практических занятиях при изучении дисциплин «Информатка и программирование» (направление «Бизнес-информатика», календарный модуль 3-4) и «Языки программирования и методы трансляции» (специальность «Прикладная математика и информатика»). Каждая глава пособия содержит краткий теоретический материал, необоходимый для выполнения практических заданий, примеры решения заданий, а также перечень заданий.


ГЛАВА 1. Основы программирования на языке высокого уровня

1.1. Структура программы на языке С++

Для того чтобы описать структуру программы, написанной на C++, рассмотрим простейшую программу, выводящую на экран строку Hello, world.

// Program1.cpp

#include <iostream.h>

void main()

{

cout << "\nHello, world\n";

}

В первой строке данной программы находится однострочный комментарий. В приведенном комментарии указано имя файла, в котором хранится исходный текст программы. В С++ комментарии могут быть заданы двумя способами. Для однострочных комментариев используют символы //, как в нашем примере. Для многострочных комментариев можно использовать символы /*, */, между которыми и должен находится сам текст комментария. В тексте комментария могут содержаться любые символы, а вся последовательность символов эквивалентна символу пропуска (например, символу пробела). Комментарии одного типа не могут быть вложенными, однако можно использовать символы // для того, чтобы закомментировать символы /*… */, а символами /*…*/можно закомментировать //.

Во второй строке программы помещена команда препроцессора (директива) #include, позволяющая подключить стандартные библиотеки функций используемого компилятора или оттранслированные модули, написанные самим программистом. Директива #include имеет два формата:

#include <имя_файла>

#include “имя_файла”.

В первом случае имя_файла определяет текстовый (заголовочный) файл, содержащий прототипы (описания) той или иной группы стандартных для данного компилятора функций. Например, в нашем случае директива #include <iostream.h> обеспечивает включение стандартных возможностей потока ввода и вывода, находящихся в файле iostream.h (мнемоника: “i” (input) – ввод, “o” (output) – вывод, stream – поток, “h” (head)- заголовок). Стандартным потоком вывода по умолчанию считается вывод на экран монитора, стандартный поток ввода обеспечивает чтение данных с клавиатуры. Приведем еще несколько примеров использования директивы #include. Если программист хочет использовать в своей программе такие стандартные функции как косинус (cos), синус (sin), степень числа (pow), то он должен использовать директиву #include <math.h>, для использования функции ожидания ввода любого символа с клавиатуры без отображения на экране, то есть функции задержки экрана (getch) – директиву #include <conio.h>, функцию конкатенации строк (strcat)- директиву #include <string.h>. Если в программе, например, используется функция cos (функция вычисления косинуса), но не указана директива #include <math.h>, то на этапе компиляции возникнет ошибка. Ниже приведено функциональное значение основных заголовочных файлов:

math.h –математические функции;

ctype.h – функции проверки и преобразования символов;

stdio.h – функции ввода вывода для стандартных файлов;

string.h, stdlib.h – функции для работы со строками;

alloc.h – функции для выделения и освобождения памяти;

conio.h – функции для работы с терминалом в текстовом режиме;

graphics.h – функции для работы с графикой.

Если имя_файла после директивы #include указано в кавычках, это означает, что используется не стандартный заголовочный файл, а файл, созданный самим программистом.

Третья строка программы является заголовком функции с именем main. Каждая программа должна содержать функцию с именем main, и работа программы начинается с выполнения этой функции. Перед именем main помещено служебное слово void – спецификатор типа, указывающий, что функция main в данной программе не возвращает никакого значения. Круглые скобки после main требуются в связи с синтаксисом заголовка любой функции и содержат список параметров. В нашем примере параметры не нужны и этот список пуст.

Тело любой функции в языке С++ – это заключенная в фигурные скобки последовательность описаний и операторов. Каждое описание и оператор заканчивается символом ‘;’. В данном примере в теле функции main нет явных описаний, а есть только один оператор

cout << "\nHello, world\n";

Имя cout, в соответствии с информацией, содержащейся в файле iostrem.h, является именем объекта, который обеспечивает вывод информации на экран монитора. (Поэтому, если строка #include <iosteam.h> будет отсутствовать в программе, то имя cout будет воспринято как неизвестное на этапе компиляции программы). Операция << (“поместить в”) пишет свой второй аргумент в первый (в данном случае, строковую константу "\nHello, world\n" в стандартный поток вывода cout). Строковая константа в языке С++ - это последовательность символов, заключенная в двойные кавычки. В строке символ обратной косой черты ‘\’, за которым следует другой символ, обозначает один специальный символ, в данном случае, ‘\n’ является символом новой строки. Таким образом, выводимые символы в данном случае состоят из символа перевода строки, символов Hello, world и еще одного символа перевода строки.

Отметим, что обратная косая черта ‘\’ позволяет не только записывать символы, не имеющего графического изображения и некоторые другие, но и выводить символьные константы, явно задавая их коды в восьмеричном или шестнадцатеричном виде. Последовательность литер, начинающаяся с символа ‘\’ называют esc-последовательностями (ескейп-последовательностями). Их допустимые значения приведены в таблице 1.

Отметим несколько особенностей использования стандартного потока вывода cout.

1. Строки, помещенные в два подряд идущих потока cout, при условии, что в них нет символа перевода строки, будут выведены на экран как одна строка, то есть операторы

cout << “Это”;

cout << “строка”;

обеспечивают вывод на экран текста: Это строка.

2. Несколько строк, последовательно помещенных в поток cout, при условии, что в них нет символа перевода строки, будут выведены на экран как одна, то есть оператор

cout << “С” “т” “рока”;

обеспечивает вывод на экран текста: Строка.

3. Длинную текстовую строку можно разместить подряд в нескольких строках программы, используя символ \. Например, оператор

cout << “Это \

строка”

обеспечит вывод строки: Это строка. (Обратите внимание, что пробелы из второй строки сохраняются).

Методы организации вывода числовой информации и ввода данных будут рассмотрены в следующей главе.

Таблица 1. Допустимые ESC-последовательности

Изображение Смысл
\a Звуковой сигнал
\b Возврат на шаг (забой)
\n Перевод строки (новая строка)
\r Возврат каретки
\t Табуляция горизонтальная
\\ Обратная косая черта (\)
\’ Апостроф (‘)
\” Двойная кавычка (“)
\000 Восьмеричный код символа (000 - любые восьмеричные символы)
\xhh Шестнадцатеричный код символа (hh – любые шестнадцатеричные символы)

Задания

Каждому студенту рекомендуется выполнить хотя бы одно из упражнений 1–10.

Используя esc-последовательности, выведите на экран следующий текст.

1. Это строка,
иначе –“стринг”,
иначе – “строковый литерал”

2. Это звуковой
сигнал!
(Сопроводите вывод строки звуковым сигналом)

3. Это строка?
“Да!”

4. Вывод очень- очень- очень- очень- очень-очень- очень- очень- очень- очень длиной строки можно обеспечить, используя
символ \

5. “ – это двойные кавычки
‘ – это апостроф

6. Это “строка”?
Это “строка”!
(Используя символ возврата на шаг, во второй строке удалите восклицательный знак)

7. Это строка?
Это строка!
(Замените слово “Это” во второй строке словом “Да”, используя возврат каретки)

8. \\Это комментарий?
//Нет, это комментарий

9. Используя шестнадцатеричные коды символов, выведите на экран текст: “Это строка”

10. Используя восьмеричные коды символов, выведите на экран текст: “Это строка”

11. Используя шестнадцатеричные коды символов, выведите на экран текст: “Hello, world”

12. Используя восьмеричные коды символов, выведите на экран текст: “Hello, world”




Поделиться с друзьями:


Дата добавления: 2014-12-27; Просмотров: 524; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.023 сек.