4380
Введение в программирование на С++
Лабораторная работа
Информатика, кибернетика и программирование
Введение в программирование на С++ Цель: получить основы программирования на С++ ознакомится с созданием простейшей программы в консольном режиме понять что такое переменная и её назначение, научится выводить информацию на экран. Теоретический мат...
Русский
2012-11-18
427 KB
9 чел.
Введение в программирование на С++
Цель: получить основы программирования на С++; ознакомится с созданием простейшей программы в консольном режиме; понять что такое переменная и её назначение, научится выводить информацию на экран.
Теоретический материал
Алфавит и лексемы языка С++. В алфавит входят:
1 |
Прописные и строчные буквы латинского алфавита A-Z, a-z |
2 |
Цифры: 0 1 2 3 4 5 6 7 8 9 0 |
3 |
Специальные знаки: “ { } , | [ ] ( ) + - / % \ ; : ? < = > _ ! & # ~ ^ . * |
Переменная. Переменная это место в памяти компьютера, где можно размещать хранимое значение, а затем извлекать его. Значение, которое хранится в переменной, можно изменять, перезаписывать.
Синтаксис объявления переменной. Для объявления переменной необходимо соблюдать следующий синтаксис:
Тип_ переменной Имя_Переменной;
Пример:
int x;
double fon;
или
Тип_переменной Имя_Переменной_1, Имя_Переменной_2, Имя_Переменной_3;
Пример:
int z,p,r;
При объявлении переменной можно её инициализировать, то есть записать данные в нашу переменную:
Тип_ переменной Имя_Переменной=значение;
Пример:
double pi=3,14;
или
Тип_переменной Имя_Переменной_1=значение_1,
Имя_Переменной_2=значение_2,
Имя_Переменной_3=значение_3;
Пример:
int A=90,B=-89;C=0;
Правило задания написания имён переменных.
В задании имени переменной можно использовать:
Примеры правильного задания имен переменных:
Res res array Array
_res _Res _array _Array
_res01 _Res01 _array_119 __Array_029
В задании имени переменной нельзя использовать:
Примеры неправильного задания имен переменных:
23Res re$ int Massиv
_r es double _arr@y переменная
_re$01 include _array 119 _#_Array_029
Замечание 1.1: идентификаторы (имена переменных), включающие два подряд символа подчёркивания (_ _), резервируются для реализаций С++ и стандартных библиотек. А идентификаторы, начинающиеся с символа подчёркивания (_), используются в реализациях языка С. Поэтому начинать выбираемые пользователем идентификаторы (имена переменных) с символа подчёркивания и двойного подчёркивания не рекомендуется, но не запрещается.
Замечание 1.2: переменные, которые имеют одинаковый синтаксис написания, например Res и res, array и Array, array и ARRAY, но различаются лишь верхним и нижним регистром, будут разными переменными, так как С/С++ чувствителен к регистру.
Комментарии. Очень часто программист, написавший программу, открыв код через некоторое время (неделю, месяц, год…) для внесения в него изменений сам не может его понять, узнать и у него может создаться такое впечатление, что этот код писал вовсе не он сам, а другой человек. Для того чтобы этого не происходило необходимо пользоваться комментариями и делать заметки в коде, чтобы код можно было в последствии быстро понять. Кроме того, код, который закомментирован, компилятор пропускает, при компоновке они также не учитываются.
В языке С++ есть два способа задания комментариев: первый способ определяет комментарий как последовательность символов, которые слева ограничены символами /*, а справа */. Этот тип комментария можно использовать при комментировании одновременно более одной строки.
/* означают, что это начало комментария);
*/ конец комментария.
Пример использования многострочного комментария показан на рис.1.1
Рис.1.1: Пример использования многострочного комментария
Второй способ предназначен для комментирования только одной строки. Начало комментария считаются два «слэша» без пробелов //. Концом комментария будет считаться конец строки.
Пример использования однострочного комментария показан на рис.1.2
Рис.1.2: Пример использования однострочного комментария
Служебные слова. В С++ есть служебные (или ключевые) слова. Это зарезервированные слова в языке С++ для специального использования. Эти слова необходимо запомнить и ни в коем случае нельзя использовать в качестве произвольных имен переменных и функций. Ниже перечислены ключевые слова С++:
asm |
double |
new |
switch |
auto |
else |
operator |
template |
break |
enum |
private |
this |
case |
extern |
protected |
throw |
catch |
float |
public |
try |
char |
for |
register |
typedef |
class |
friend |
return |
typeid |
const |
goto |
short |
union |
continue |
if |
signed |
unsigned |
default |
inline |
sizeof |
virtual |
delete |
int |
static |
void |
do |
long |
struct |
volatile |
while |
Замечание 1.3: Перечисленные выше служебные слова нельзя использовать в качестве произвольно выбираемых имен переменных, поэтому важно знать эти слова, чтобы не допускать ошибок.
Главная функция программы. Функция main() это главная функция программы, присутствие этой функции в программе обязательно. Практически весь основной код программы должен быть описан в этой функции. Функцию нужно писать только малыми латинскими буквами, после слова main обязательно должны присутствовать круглые скобки (). Основной код программы должен размещаться внутри фигурных скобок {}, которые пишутся сразу после main(). Всё, что находится внутри фигурных скобок называется «телом функции».
Если перед именем главной функции программы будет написано слово int, то это означает, что функция, по завершению работы, должна вернуть целое число, то есть целочисленный результат. Для возврата результата обязательно должно присутствовать зарезервированное слово return, после которого нужно написать переменную типа int или целое число.
Если перед именем главной функции программы будет написано слово void, то это означает, что функция ничего возвращать не будет. На рисунке 1.3 приведены примеры написания главной функции программы.
Рис.1.3: Примеры написания главной функции программы
Однако допускаются следующие записи главной функции (рис.1.4):
Рис.1.4: Примеры написания главной функции программы 2-й вариант
Если при написании функции явно не указывают, что это функция будет возвращать целое число, и при этом написано слово return, то компилятор автоматически определяет эту функцию как int main(), которая возвращает целое число. При этом ни ошибок, ни предупреждений не будет.
Если же слово return не присутствует и тип возвращаемой функции явно не указан, то функция определяется как void main(). При этом ошибок не будет, а будет предупреждение следующего содержания: «warning C4508: 'main' : function should return a value; 'void' return type assumed».
Команды вывода данных на экран.
В теле главной функции написана команда cout<<”This is my first program\n”;, эта команда выполняет вывод строки ”This is my first program” на экран. Чтобы можно было использовать команду cout необходимо с помощью директивы #include подключить заголовочный файл “iostream.h”, который отвечает за ввод данных и вывод данных на экран. В команде cout<<”This is my first program\n”; при выводе текста встречается символы \n, эти символы не выводятся на экран. Обратный слэш (\) называется знаком перехода или escape-символом, он свидетельствует о том, что должен выводиться «специальный» символ. Когда обратный слэш встречается в цепочке символов, следующий символ комбинируется с обратным слэшем и формирует управляющую последовательность (escape-последовательность). Управляющая последовательность \n означает новую строку. Она вызывает перемещение курсора к началу следующей строки на экране. Некоторые другие управляющие последовательности приведены в таблице 1.1.
Таблица 1.1: Некоторые управляющие последовательности и их описания.
Управляющая последовательность |
Описание |
\n |
Новая строка. Позиционирование курсора к началу следующей строки. |
\t |
Символ горизонтальной табуляции. Перемещение курсора к следующей позиции табуляции. |
\r |
Возврат каретки. Позиционирование курсора к началу текущей строки; запрет перехода к следующей строке. |
\a |
Сигнал тревоги. Звук системного звонка. |
\\ |
Обратный слэш. Используется для печати символа обратного слэша. |
\” |
Двойные кавычки. Используют для печати символа двойных кавычек. |
Как уже отмечалось, для использования команды вывода cout (а также команды ввода данных), необходимо подключить заголовочный файл с именем iostream.h. В этом файле описаны и реализованы функции, которые отвечают за ввод и вывод данных.
Этот заголовочный файл можно подключить несколькими способами:
1 |
#include <iostream.h> |
Эта запись использовалась в старых компиляторах. |
2 |
#include “iostream.h” |
Эта запись использовалась в старых компиляторах. |
3 |
#include <ciostream> |
Эта запись используется в новых компиляторах. |
4 |
#include “ciostream” |
Эта запись используется в новых компиляторах. |
Если вы подключаете заголовочные файлы одним из следующим способом: #include <ciostream> или #include “ciostream”, то для использования команд ввода и вывода нужно писать std::cout либо std::cin, либо написать строку using namespace std;
Замечание 1.5: При подключении заголовочного файла часто допускают следующую ошибку ставят точку с запятой в конце строки:
Замечание 1.6: Точка с запятой при реализации главной функции программы, как показано в следующем примере, запрещена:
int main();
{
return 0;
}
Ход работы
Рис.1.5: Главное окно программы С++
Рис.1.6: Диалоговое окно создания нового проекта (New), файла и др. документов
Рис.1.7: Диалоговое окно мастера создания консольного приложения
Рис.1.8: Информация по только что созданному проекту
Рис.1.9: Окно Workspace
Рис.1.10: Диалоговое окно создания файлов на вкладке Files
1 |
#include <iostream.h> |
2 |
|
3 |
int main() |
4 |
{ |
5 |
cout<<"This is my first program\n"; |
6 |
|
7 |
|
. |
|
. |
|
37 |
|
38 |
return 0; |
39 |
} |
Объяснение написанного кода:
В первой (1) строке подключаем заголовочный файл iostream.h, в котором находятся функции, отвечающие за ввод данных с клавиатуры и вывод на экран. Все заголовочные файлы подключаются с помощью директивы #include, она должна находиться перед именем заголовочного файла. Заголовочный файл можно писать в угловых скобках <> (например: <iostream.h>) и в двойных кавычках “” (например: “iostream.h”). |
|
Важно: заголовочные файлы необходимо подключать в самом начале программы. |
|
Во второй (2) строке ничего не написано, обычно строку оставляют пустой для удобочитаемости, чтобы визуально разделить программный код на части. |
|
В третей (3) строке написана главная функция программы main(), слово int, указывает какой будет возвращаемый результат функции (здесь имеется ввиду какого типа будет возвращаемая информация: число, строка, символ, числа с плавающей запятой и т.д. (в нашем случае тип int это небольшие целые числа [-32768; 32767])), а main это имя функции. Любая функция пишется с круглыми скобками в конце её имени, в скобках могут быть параметры, передаваемые в функцию, в нашем случае никакие параметры не передаются. |
|
В четвёртой (4) и тридцать девятой (39) строках написаны фигурные скобки. Весь код программы должен быть написан между этими фигурными скобками (внутри них). |
|
В пятой (5) строке написана команда cout, которая предназначена для вывода данных на экран. Эта команда имеет следующее правило написания: |
|
cout<<"Текст, выводимый на экран"; |
|
cout<<Имя_переменной_содержащей_в_себе_данные; |
|
В конце текста This is my first program после слова program и знаком закрывающей кавычки " стоят символы \n. \n используется для перехода на следующую строку, если бы не было написано \n, то на экране результат выглядел бы следующим образом: |
|
This is my first programPress any key to continue, |
|
а не так как на рис.1.10. |
|
В тридцать восьмой (38) строке написано ключевое слово return, а после него через пробел ноль. Это указывает на то, что функция после успешного выполнения должна вернуть значение равное нулю. |
Рис.1.11: Результат работы нами написанного консольного приложения
7 |
// Первый способ вывода предложения на экран |
8 |
cout<<"Choose variable names that suggest the usage.\n"; |
9 |
|
10 |
// Второй способ вывода предложения на экран |
11 |
cout<<"Choose "; |
12 |
cout<<"variable "; |
13 |
cout<<"names "; |
14 |
cout<<"that "; |
15 |
cout<<"suggest "; |
16 |
cout<<"the "; |
17 |
cout<<"usage."; |
18 |
cout<<"\n"; |
Сравните результат работы команды вывода одной командой cout (седьмая строка) и несколькими командами cout (восьмая пятнадцатая строки). Сделайте выводы и запишите их в тетради.
19 |
|
20 |
// Третий способ вывода предложения на экран |
21 |
cout<<"Choose "<<"variable "<<"names "<<"that "<<"suggest "<<"the "<<"usage."<<"\n"; |
Сделайте сравнение с предыдущими выводами этого же предложения (строки семь - пятнадцать). Сделайте выводы и запишите их в тетрадь.
22 |
|
23 |
// Использование табуляторов при выводе данных на экран |
24 |
cout<<"number\t"<<"color\t"<<"code\t"<<"RGB\n"; |
25 |
cout<<"1\t"<<"red\t"<<"(1,0,0)\t"<<"RGB\n"; |
26 |
cout<<"2\t"<<"green\t"<<"(0,1,0)\t"<<"RGB\n"; |
27 |
cout<<"3\t"<<"blue\t"<<"(0,0,1)\t"<<"RGB\n"; |
Рис.1.12: Пример вывода данных на экран
Include files in C++ always have the file name extension ".hh" or ".h".
и
C:\Program Files\Outlook Express\*.*
Результат вывода строк показан на рисунке 1.13.
Рис.1.13: Результат вывода строк с использованием символов \ и "
Контрольные вопросы
Что такое переменная? Правило задания имен переменных. Правило объявления переменных (объявления с инициализацией). Привести примеры.
Содержание отчёта
В рабочей тетради оформление темы и номера лабораторной работы.
Цель работы.
Задача.
Код программы написанный от руки или распечатанную на листах, вклеенных в тетрадь.
Код программы обязательно должен содержать комментарии и условие задачи.
Предоставить исходный код программы со всем проектом в целом в электронном виде.
Ответить на контрольные вопросы.
Выводы по проделанной лабораторной работы.
А также другие работы, которые могут Вас заинтересовать | |||
16635. | Определение видов и размеров дефектов, которые не допускаются в сварных соединениях, выбор методов их контроля, последовательности и объемов контроля каждым методом | 571.5 KB | |
Лабораторная работа Определение видов и размеров дефектов которые не допускаются в сварных соединениях выбор методов их контроля последовательности и объемов контроля каждым методом Общие сведения Дефекты наличие которых в сварных соединениях не допускает | |||
16636. | Обзор возможностей Quantum GIS | 3.96 MB | |
Обзор возможностей Quantum GIS Цель работы: Получение практических навыков выполнения простейших операций в геоинформационной системе Quantum GIS. Ход работы Изучаю возможности геоинформационной системы Quantum GIS. Quantum GIS это кроссплатформенная геоинформационная сист... | |||
16637. | Работа с векторными данными в Quantum GIS | 1.11 MB | |
Лабораторная работа №2 Работа с векторными данными Цель работы: Получение практических навыков создания и редактирования векторных данных в геоинформационной системе Quantum GIS. Ход работы Для создания плана территории БГТУ им. В.Г. Шухова воспользуемся сайтом h... | |||
16638. | Компоновка карты в Quantum GIS | 2.06 MB | |
Компоновка карты в Quantum GIS Цель работы: Получение практических навыков компоновки карты в геоинформационной системе Quantum GIS. Ход работы Компоновщик карты в Quantum GIS QGIS обеспечивает широкие возможности для подготовки макета карты и его печати. При создании м... | |||
16639. | Понятие, сущность и составление векселей: некоторые практические проблемы | 93 KB | |
Понятие сущность и составление векселей: некоторые практические проблемы Несмотря на широчайшее распространение документов под наименованием вексель в современной России мы можем утверждать что векселями в нормальном классическом смысле этого термина являются ... | |||
16640. | Излишние вещи в векселе | 66.5 KB | |
Излишние вещи в векселе В.А. Белов Законодательство N 4 апрель 2002 г. Излишние вещи в векселе I. Существо проблемы и причины ее возникновения II. Общее правило III. Оплата | |||
16641. | Вексельные возражения | 99 KB | |
Вексельные возражения Основы юридического учения о возражениях Вексельные возражения: понятие и виды В настоящей статье предпринимается попытка сформулировать основы учения о гражданскоправовых возражениях как юридическом институте определить с | |||
16642. | Преступления, совершаемые первым приобретателем векселя | 106 KB | |
Преступления совершаемые первым приобретателем векселя Развитие вексельного обращения в современной России вызвало к жизни целый ряд явлений неизвестных доселе даже по книгам. В их числе огромное количество юридических проблем. Работой по разрешению таковых в нас | |||
16643. | Вексельные преступления | 100 KB | |
Вексельные преступления I. Преступления совершаемые векселедателем простого векселя II. Преступления которые могут быть совершены любым держателем векселя III. Преступления совершаемые по предварительному сговору векселедателя и од... | |||