SlideShare a Scribd company logo
1 of 4
Download to read offline
Лекция №1 для дисциплин: «Прикладное программирование» и «Языки
программирования»
1
Лекция 1
Тема 1.1. Концепция разработки программного модуля
В данной лекции рассматривается структура программы на C++. Приведены основные
понятия и определения, касающиеся заголовочной части программы
Продемонстрируем пример простейшей программы на языке C++, которая запрашивает у
пользователя два целочисленных значения переменных a и b, анализирует их и выводит
наибольшее число.
01 #include <iostream.h>
02 #include <conio.h>
03 int main(void)
04 {
05 int a,b,max;
06 cout << "a="; //приглашение ввести значение a
07 cin >> a; //ввод значения переменной а
08 cout << "b="; //приглашение ввести значение b
09 cin >> b; //ввод значения переменной b
10 if(a>b) max=a; //если a>b то max=a
11 else max=b; //иначе max=b
12 cout << "max="<<max; //вывод максимального значения
13 getch(); //останов до нажатия клавиши
14 return 0; //выход из функции
15 }
Номера, которые проставлены в начале каждой строки программы, не являются
принадлежностью программы. Они введены только для упрощения ссылок на описание действия
тех или иных строк. Строки 01 и 02 подключают ( include – включить) к тексту программы так
называемые заголовочные ( h от header – заголовок) файлы системы. В этих файлах описаны
системные функции и их аргументы. Используя эти описания, компилятор проверяет
правильность вызова системных функций. В нашем случае программа использует системные
функции ввода ( cin >> ) и вывода ( cout << ), описания которых находятся в заголовочном
файле iostream.h, а также функцию ожидания нажатия какой-либо клавиши ( getch ), описание
которой находится в заголовочном файле conio.h. Названия заголовочных файлов зачастую
образовываются от каких-либо аббревиатур английских слов, их полезно научиться понимать, а
не запоминать. В нашем примере: io – input/output (ввод/вывод), stream (поток), con (
console – пульт оператора, т.е. клавиатура и дисплей).
Строка 03 содержит заголовок функции main. Функция с таким названием обязана
присутствовать в каждой программе на языке C, C++. Именно с нее начинается выполнение
программы, она – главная (именно так переводится служебное слово main ). Предшествующее
ей служебное слово int (от integer – целый) сообщает, что результатом работы функции
main должно быть целое число. По возвращаемому функцией значению операционная система,
запустившая программу main, может "сообразить", правильно или неправильно завершилась
Лекция №1 для дисциплин: «Прикладное программирование» и «Языки
программирования»
2
работа программы. По общепринятому соглашению нулевое значение, возвращаемое функцией
main, свидетельствует о нормальном завершении работы программы. Служебное слово void
(дословно – пустота), указанное в круглых скобках, сообщает, что у функции main аргументы
отсутствуют.
Текст программы (тело функции) заключается в фигурные скобки (строки 04 и 15). В
большинстве последующих строк присутствует пояснительный текст на русском языке,
следующий после пары символов // – это комментарий, на содержание которого система не
обращает внимания.
В строке 05 объявлены три переменные с именами a, b и max, которые могут принимать
только целочисленные значения (тип – int ).
Строка 06 является первой строкой программы, которая производит некоторое действие –
она выводит на дисплей сообщение, состоящее из двух символов ( a= ). Текст сообщения
заключен в двойные кавычки. Строка 07 организует приостановку работы программы до тех пор,
пока пользователь не наберет на клавиатуре какое-либо число и нажмет клавишу Enter.
Поступившее значение будет хорошо воспринято, если оно целое, и направлено в переменную a.
Точно таким же образом в строках 08 и 09 будет организован ввод значения числовой
переменной b.
В строке 10 сравниваются ( if – если) текущие значения переменных a и b. Если
проверяемое условие выполнено, т.е. значение переменной a больше, то оно присваивается
переменной max – выполняется действие, записанное после проверки условия. В противном
случае ( else – иначе) в переменную max заносится значение b.
Строка 12 выводит на дисплей два сообщения – текстовое ( max= ) и числовое (значение
переменной max ).
Обращение к функции getch (строка 13) приводит к задержке на экране сообщения
программы до тех пор, пока пользователь не нажмет какую-либо клавишу ( getch – от get
character, дай символ).
Последняя выполняемая строка с номером 14 возвращает управление операционной
системе ( return – вернуться) и выдает в качестве значения функции нулевой результат.
Обратите внимание на следующие детали. Если программа обращается к каким-либо
системным функциям, то в первых ее строках обязательно должно стоять указание о
подключении соответствующих заголовочных файлов. Программа может содержать более чем
одну функцию, но среди них обязательно должна присутствовать функция с именем main.
Каждая строка программы, содержащая какое-либо объявление или выполняемое действие,
оканчивается точкой с запятой. Тело функции обязательно заключается в фигурные скобки (в
Паскале аналогичные функции выполняли операторные скобки – begin и end).
Лекция №1 для дисциплин: «Прикладное программирование» и «Языки
программирования»
3
1.2 Директивы препроцессору (подключение заголовочных файлов)
#include <iostream>
является директивой препроцессору. Строки, начинающиеся с #, обрабатываются
препроцессором до компиляции программы. #include дает указание препроцессору
включить в программу содержимое заголовочного файла, в данном случае
содержащего описание библиотеки ввода/вывода<iostream>. Этот файл должен быть
включен во все программы, которые выводят данные на экран или читают с
клавиатуры. Для использования других библиотек необходимо подключать другие
заголовочные файлы.
using namespace std;
Все стандартные библиотеки заключены в пространство имен, для использования этих
библиотек необходимо получить доступ в это пространство при помощи записи using
namespace std. Если не подключать пространство имен, каждой функции стандартной
библиотеки придется добавлять запись std::, тогда строка, выводящая текст на экран
может выглядеть так:
std::cout<<"Welcome to C++!"<<std::endl;
1.3 Комментарии
Комментарии в С++ начинается с символов //, показывающих, что остальная часть
строки это комментарий. Комментарии пишут, чтобы документировать программу,
чтобы было легче читать и понимать ее. Комментарии не вызывают при выполнении
программы никаких действий компьютера, они игнорируются компилятором C++.
Комментарий, который начинается с //, называется однострочным комментарием,
потому что комментарий заканчивается в конце текущей строки.
Если необходимо закомментировать несколько строк, можно
использовать многострочный комментарий, который начинается с символов /* и
заканчивается символами */.
/* многострочный
комментарий */
1.4 Функции
Функция main() имеется в любой программе на C++. Фигурные скобки после main
показывают, что это блок программы, называемый функцией. Программы на C++
состоят обычно из одной или большего числа функций и классов, но одна из функций
Лекция №1 для дисциплин: «Прикладное программирование» и «Языки
программирования»
4
обязательно должна быть функцией main, именно с нее начинается выполнение
программы, даже если она не первая в программе.
Тело каждой функции должно начинаться с левой фигурной скобки
{
Заканчивать тело функции должна соответствующая правая фигурная скобка
}
Хороший стиль программирования – делать отступ на один символ табуляции после
каждой открывающей фигурной скобки. Это выделяет функциональную структуру
программы и облегчает ее чтение.
Ключевое слово void слева от main сообщает, что main не возвращает никакого
значения. Ключевое слово является словом в коде программы, имеющим в C++
специальное назначение.
Полный список ключевых слов языка C++ приведен в приложении 3.
1.5 Ввод и вывод на экран
cout<<"Welcome to C++!"<<endl;
Эта строка называет оператором. Всякий оператор C++ должен заканчиваться точкой
с запятой. Директивы препроцессора (подобные #include) не оканчиваются точкой с
запятой.
Вывод и ввод в C++ осуществляется посредством символьных потоков. Когда
выполняется оператор cout, он посылает поток строку Welcome to C++! в стандартный
выходной поток, который выводит данные на экран.
Операция << называется операцией передачи в поток. Когда программа выполняется,
значение справа от операции (правый операнд), помещается в выходной поток.
Заметьте, что знаки операции направлены в соответствии с направлением движения
данных. Символы правого операнда обычно выводятся точно так, как они записаны в
строке внутри кавычек. Манипулятор потока endl означает переход курсора на новую
строку.
Если бы мы захотели выводить каждое слово на новой строке, это можно было бы
сделать следующим образом:
cout<<"Welcome"<<endl<<"to"<<endl<<"C++!"<<endl;

More Related Content

What's hot

C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6Technopark
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2Michael Karpov
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеYakubovichDA
 
22 pascal urok_6
22 pascal urok_622 pascal urok_6
22 pascal urok_6Ann Eres
 
32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++Tatyanazaxarova
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямSergey Staroletov
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.YakubovichDA
 
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМПрограммирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМAlexandr Konfidentsialno
 
Отладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программОтладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программTatyanazaxarova
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.Igor Shkulipa
 
Язык программирования Pascal
Язык программирования PascalЯзык программирования Pascal
Язык программирования PascalSchool 242
 
Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)Ayan_R
 
Презентация на тему: Знакомство с языком программирования QBasic
Презентация на тему: Знакомство с языком программирования QBasicПрезентация на тему: Знакомство с языком программирования QBasic
Презентация на тему: Знакомство с языком программирования QBasic2berkas
 

What's hot (17)

C++ осень 2012 лекция 6
C++ осень 2012 лекция 6C++ осень 2012 лекция 6
C++ осень 2012 лекция 6
 
20090721 hpc exercise2
20090721 hpc exercise220090721 hpc exercise2
20090721 hpc exercise2
 
основы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программированиеосновы ооп на языке C#. часть 1. введение в программирование
основы ооп на языке C#. часть 1. введение в программирование
 
22 pascal urok_6
22 pascal urok_622 pascal urok_6
22 pascal urok_6
 
32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++32 подводных камня OpenMP при программировании на Си++
32 подводных камня OpenMP при программировании на Си++
 
Теория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциямТеория языков программирования некоторые слайды к лекциям
Теория языков программирования некоторые слайды к лекциям
 
Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.Основы ооп на языке C#. Часть 2. базовый синтаксис.
Основы ооп на языке C#. Часть 2. базовый синтаксис.
 
лр7
лр7лр7
лр7
 
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМПрограммирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
Программирование на языке C Sharp (СИ решетка) ПРАКТИКУМ
 
Отладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программОтладка и оптимизация многопоточных OpenMP-программ
Отладка и оптимизация многопоточных OpenMP-программ
 
C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.C++ Базовый. Занятие 01.
C++ Базовый. Занятие 01.
 
Язык программирования Pascal
Язык программирования PascalЯзык программирования Pascal
Язык программирования Pascal
 
206297
206297206297
206297
 
6
66
6
 
лек12 2
лек12 2лек12 2
лек12 2
 
Ayan9r1 po(1)
Ayan9r1 po(1)Ayan9r1 po(1)
Ayan9r1 po(1)
 
Презентация на тему: Знакомство с языком программирования QBasic
Презентация на тему: Знакомство с языком программирования QBasicПрезентация на тему: Знакомство с языком программирования QBasic
Презентация на тему: Знакомство с языком программирования QBasic
 

Viewers also liked

Лаборатороия Касперского. Новые горизонты безопасности.
Лаборатороия Касперского. Новые горизонты безопасности.Лаборатороия Касперского. Новые горизонты безопасности.
Лаборатороия Касперского. Новые горизонты безопасности.Expolink
 
Система управления недвижимостью Maconomy
Система управления недвижимостью MaconomyСистема управления недвижимостью Maconomy
Система управления недвижимостью MaconomyFTS Russia
 
1 лекция Обогащение ПИ
1 лекция Обогащение ПИ1 лекция Обогащение ПИ
1 лекция Обогащение ПИSuslina
 
Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...
Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...
Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...vdohnovlennye
 
Обзор систем веб аналитики
Обзор систем веб аналитикиОбзор систем веб аналитики
Обзор систем веб аналитикиVEKA Rus
 
PCWEEK Sociality & ECM
PCWEEK Sociality & ECMPCWEEK Sociality & ECM
PCWEEK Sociality & ECMOleg Beilezon
 
Инструкция об экспериментальной деятельности
Инструкция об экспериментальной деятельностиИнструкция об экспериментальной деятельности
Инструкция об экспериментальной деятельностиArtyukhova
 
Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"
Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"
Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"Бишкек Урбан Форум
 
Ug и twitter bootstrap что дальше
Ug и twitter bootstrap что дальшеUg и twitter bootstrap что дальше
Ug и twitter bootstrap что дальшеMaxim Chistyakov
 
оголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 р
оголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 роголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 р
оголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 рLibrary Franko
 
Земельная реформа - национальная идея России
Земельная реформа - национальная идея РоссииЗемельная реформа - национальная идея России
Земельная реформа - национальная идея РоссииМихаил Прохоров
 
презентация каталог
презентация каталогпрезентация каталог
презентация каталогVital3000
 
Электронный архив
Электронный архивЭлектронный архив
Электронный архивE_L_A_U
 
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...ADV/web-engineering
 
Ramil organizaciya internet_magazina_na_baze_drupal_7_2
Ramil organizaciya internet_magazina_na_baze_drupal_7_2Ramil organizaciya internet_magazina_na_baze_drupal_7_2
Ramil organizaciya internet_magazina_na_baze_drupal_7_2drupalconf
 

Viewers also liked (20)

Лаборатороия Касперского. Новые горизонты безопасности.
Лаборатороия Касперского. Новые горизонты безопасности.Лаборатороия Касперского. Новые горизонты безопасности.
Лаборатороия Касперского. Новые горизонты безопасности.
 
Система управления недвижимостью Maconomy
Система управления недвижимостью MaconomyСистема управления недвижимостью Maconomy
Система управления недвижимостью Maconomy
 
Cv nar
Cv narCv nar
Cv nar
 
1 лекция Обогащение ПИ
1 лекция Обогащение ПИ1 лекция Обогащение ПИ
1 лекция Обогащение ПИ
 
Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...
Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...
Ткачев В.В. Эффективное использование дидактического потенциала внеаудиторной...
 
Fabrika umh
Fabrika umhFabrika umh
Fabrika umh
 
Microsoft
MicrosoftMicrosoft
Microsoft
 
гз
гзгз
гз
 
Обзор систем веб аналитики
Обзор систем веб аналитикиОбзор систем веб аналитики
Обзор систем веб аналитики
 
PCWEEK Sociality & ECM
PCWEEK Sociality & ECMPCWEEK Sociality & ECM
PCWEEK Sociality & ECM
 
Инструкция об экспериментальной деятельности
Инструкция об экспериментальной деятельностиИнструкция об экспериментальной деятельности
Инструкция об экспериментальной деятельности
 
Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"
Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"
Жылдыз Мамытова"Социальная ответственность бизнеса: миссия компании"
 
Ug и twitter bootstrap что дальше
Ug и twitter bootstrap что дальшеUg и twitter bootstrap что дальше
Ug и twitter bootstrap что дальше
 
оголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 р
оголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 роголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 р
оголошення про проведення відкритих торгів № 5 2013-оз від 03.10.2013 р
 
Земельная реформа - национальная идея России
Земельная реформа - национальная идея РоссииЗемельная реформа - национальная идея России
Земельная реформа - национальная идея России
 
ДР3
ДР3ДР3
ДР3
 
презентация каталог
презентация каталогпрезентация каталог
презентация каталог
 
Электронный архив
Электронный архивЭлектронный архив
Электронный архив
 
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
Секции ADV RIW на 2013: Как автоматизировать персональные коммуникации на все...
 
Ramil organizaciya internet_magazina_na_baze_drupal_7_2
Ramil organizaciya internet_magazina_na_baze_drupal_7_2Ramil organizaciya internet_magazina_na_baze_drupal_7_2
Ramil organizaciya internet_magazina_na_baze_drupal_7_2
 

Similar to лек1

C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
C++ теория
C++ теорияC++ теория
C++ теорияtank1975
 
Cреда программирования
Cреда программированияCреда программирования
Cреда программированияirina8682
 
Deep c slides_oct2011_rus
Deep c slides_oct2011_rusDeep c slides_oct2011_rus
Deep c slides_oct2011_rusGarrikus
 
C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.Igor Shkulipa
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.Igor Shkulipa
 
вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмыЕлена Ключева
 
оператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данныхоператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данныхЕлена Ключева
 
4 4 pascal_urok_1
4 4 pascal_urok_14 4 pascal_urok_1
4 4 pascal_urok_1Ann Eres
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1Michael Karpov
 
Основы программирования на C++
Основы программирования на C++Основы программирования на C++
Основы программирования на C++Olga Maksimenkova
 
НуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptНуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptdinarium2016
 
Характеристики языка С++
Характеристики языка С++Характеристики языка С++
Характеристики языка С++DEVTYPE
 
оп.05 основы программирования
оп.05 основы программированияоп.05 основы программирования
оп.05 основы программированияStepan1234
 
лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)djbelyakk
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in russuser0562f1
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++ssuser0562f1
 

Similar to лек1 (20)

C++ теория
C++ теорияC++ теория
C++ теория
 
C++ теория
C++ теорияC++ теория
C++ теория
 
Cреда программирования
Cреда программированияCреда программирования
Cреда программирования
 
Deep c slides_oct2011_rus
Deep c slides_oct2011_rusDeep c slides_oct2011_rus
Deep c slides_oct2011_rus
 
C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.C++ Базовый. Занятие 03.
C++ Базовый. Занятие 03.
 
C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.C++ Базовый. Занятие 04.
C++ Базовый. Занятие 04.
 
вспомогательные алгоритмы
вспомогательные алгоритмывспомогательные алгоритмы
вспомогательные алгоритмы
 
оператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данныхоператор присваивания, ввод и вывод данных
оператор присваивания, ввод и вывод данных
 
4 4 pascal_urok_1
4 4 pascal_urok_14 4 pascal_urok_1
4 4 pascal_urok_1
 
20090720 hpc exercise1
20090720 hpc exercise120090720 hpc exercise1
20090720 hpc exercise1
 
Основы программирования на C++
Основы программирования на C++Основы программирования на C++
Основы программирования на C++
 
НуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.pptНуП_Лекция 2. Управление программами.ppt
НуП_Лекция 2. Управление программами.ppt
 
Характеристики языка С++
Характеристики языка С++Характеристики языка С++
Характеристики языка С++
 
лр8
лр8лр8
лр8
 
оп.05 основы программирования
оп.05 основы программированияоп.05 основы программирования
оп.05 основы программирования
 
лекция 1
лекция 1лекция 1
лекция 1
 
лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)лекции спрг 6_семестр (1)
лекции спрг 6_семестр (1)
 
Algorithms and programming lecture in ru
Algorithms and programming lecture in ruAlgorithms and programming lecture in ru
Algorithms and programming lecture in ru
 
Алгоритмизация и программирование С/С++
Алгоритмизация и  программирование С/С++Алгоритмизация и  программирование С/С++
Алгоритмизация и программирование С/С++
 
лек13 3
лек13 3лек13 3
лек13 3
 

More from Anastasia Snegina

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014 Anastasia Snegina
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14Anastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошинаAnastasia Snegina
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошинаAnastasia Snegina
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике вAnastasia Snegina
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике вAnastasia Snegina
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике вAnastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике втAnastasia Snegina
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике втAnastasia Snegina
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике втAnastasia Snegina
 

More from Anastasia Snegina (20)

птп по ппп 2013 2014
птп по ппп 2013 2014 птп по ппп 2013 2014
птп по ппп 2013 2014
 
прикл.прогр птп 13 14
прикл.прогр птп 13 14прикл.прогр птп 13 14
прикл.прогр птп 13 14
 
я.прогр птп
я.прогр птпя.прогр птп
я.прогр птп
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
пп кос в
пп кос впп кос в
пп кос в
 
пп кос в
пп кос впп кос в
пп кос в
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
2012 2013 пм спп провидошина
2012 2013  пм спп провидошина2012 2013  пм спп провидошина
2012 2013 пм спп провидошина
 
пп кос вт
пп кос втпп кос вт
пп кос вт
 
рп по у пп практике в
рп по у пп практике врп по у пп практике в
рп по у пп практике в
 
рп по пр практике в
рп по пр практике врп по пр практике в
рп по пр практике в
 
рп по у сп практике в
рп по у сп практике врп по у сп практике в
рп по у сп практике в
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
рп по у пп практике вт
рп по у пп практике втрп по у пп практике вт
рп по у пп практике вт
 
рп по пр практике вт
рп по пр практике втрп по пр практике вт
рп по пр практике вт
 
рп по у сп практике вт
рп по у сп практике втрп по у сп практике вт
рп по у сп практике вт
 
лр18
лр18лр18
лр18
 
лр15
лр15лр15
лр15
 

лек1

  • 1. Лекция №1 для дисциплин: «Прикладное программирование» и «Языки программирования» 1 Лекция 1 Тема 1.1. Концепция разработки программного модуля В данной лекции рассматривается структура программы на C++. Приведены основные понятия и определения, касающиеся заголовочной части программы Продемонстрируем пример простейшей программы на языке C++, которая запрашивает у пользователя два целочисленных значения переменных a и b, анализирует их и выводит наибольшее число. 01 #include <iostream.h> 02 #include <conio.h> 03 int main(void) 04 { 05 int a,b,max; 06 cout << "a="; //приглашение ввести значение a 07 cin >> a; //ввод значения переменной а 08 cout << "b="; //приглашение ввести значение b 09 cin >> b; //ввод значения переменной b 10 if(a>b) max=a; //если a>b то max=a 11 else max=b; //иначе max=b 12 cout << "max="<<max; //вывод максимального значения 13 getch(); //останов до нажатия клавиши 14 return 0; //выход из функции 15 } Номера, которые проставлены в начале каждой строки программы, не являются принадлежностью программы. Они введены только для упрощения ссылок на описание действия тех или иных строк. Строки 01 и 02 подключают ( include – включить) к тексту программы так называемые заголовочные ( h от header – заголовок) файлы системы. В этих файлах описаны системные функции и их аргументы. Используя эти описания, компилятор проверяет правильность вызова системных функций. В нашем случае программа использует системные функции ввода ( cin >> ) и вывода ( cout << ), описания которых находятся в заголовочном файле iostream.h, а также функцию ожидания нажатия какой-либо клавиши ( getch ), описание которой находится в заголовочном файле conio.h. Названия заголовочных файлов зачастую образовываются от каких-либо аббревиатур английских слов, их полезно научиться понимать, а не запоминать. В нашем примере: io – input/output (ввод/вывод), stream (поток), con ( console – пульт оператора, т.е. клавиатура и дисплей). Строка 03 содержит заголовок функции main. Функция с таким названием обязана присутствовать в каждой программе на языке C, C++. Именно с нее начинается выполнение программы, она – главная (именно так переводится служебное слово main ). Предшествующее ей служебное слово int (от integer – целый) сообщает, что результатом работы функции main должно быть целое число. По возвращаемому функцией значению операционная система, запустившая программу main, может "сообразить", правильно или неправильно завершилась
  • 2. Лекция №1 для дисциплин: «Прикладное программирование» и «Языки программирования» 2 работа программы. По общепринятому соглашению нулевое значение, возвращаемое функцией main, свидетельствует о нормальном завершении работы программы. Служебное слово void (дословно – пустота), указанное в круглых скобках, сообщает, что у функции main аргументы отсутствуют. Текст программы (тело функции) заключается в фигурные скобки (строки 04 и 15). В большинстве последующих строк присутствует пояснительный текст на русском языке, следующий после пары символов // – это комментарий, на содержание которого система не обращает внимания. В строке 05 объявлены три переменные с именами a, b и max, которые могут принимать только целочисленные значения (тип – int ). Строка 06 является первой строкой программы, которая производит некоторое действие – она выводит на дисплей сообщение, состоящее из двух символов ( a= ). Текст сообщения заключен в двойные кавычки. Строка 07 организует приостановку работы программы до тех пор, пока пользователь не наберет на клавиатуре какое-либо число и нажмет клавишу Enter. Поступившее значение будет хорошо воспринято, если оно целое, и направлено в переменную a. Точно таким же образом в строках 08 и 09 будет организован ввод значения числовой переменной b. В строке 10 сравниваются ( if – если) текущие значения переменных a и b. Если проверяемое условие выполнено, т.е. значение переменной a больше, то оно присваивается переменной max – выполняется действие, записанное после проверки условия. В противном случае ( else – иначе) в переменную max заносится значение b. Строка 12 выводит на дисплей два сообщения – текстовое ( max= ) и числовое (значение переменной max ). Обращение к функции getch (строка 13) приводит к задержке на экране сообщения программы до тех пор, пока пользователь не нажмет какую-либо клавишу ( getch – от get character, дай символ). Последняя выполняемая строка с номером 14 возвращает управление операционной системе ( return – вернуться) и выдает в качестве значения функции нулевой результат. Обратите внимание на следующие детали. Если программа обращается к каким-либо системным функциям, то в первых ее строках обязательно должно стоять указание о подключении соответствующих заголовочных файлов. Программа может содержать более чем одну функцию, но среди них обязательно должна присутствовать функция с именем main. Каждая строка программы, содержащая какое-либо объявление или выполняемое действие, оканчивается точкой с запятой. Тело функции обязательно заключается в фигурные скобки (в Паскале аналогичные функции выполняли операторные скобки – begin и end).
  • 3. Лекция №1 для дисциплин: «Прикладное программирование» и «Языки программирования» 3 1.2 Директивы препроцессору (подключение заголовочных файлов) #include <iostream> является директивой препроцессору. Строки, начинающиеся с #, обрабатываются препроцессором до компиляции программы. #include дает указание препроцессору включить в программу содержимое заголовочного файла, в данном случае содержащего описание библиотеки ввода/вывода<iostream>. Этот файл должен быть включен во все программы, которые выводят данные на экран или читают с клавиатуры. Для использования других библиотек необходимо подключать другие заголовочные файлы. using namespace std; Все стандартные библиотеки заключены в пространство имен, для использования этих библиотек необходимо получить доступ в это пространство при помощи записи using namespace std. Если не подключать пространство имен, каждой функции стандартной библиотеки придется добавлять запись std::, тогда строка, выводящая текст на экран может выглядеть так: std::cout<<"Welcome to C++!"<<std::endl; 1.3 Комментарии Комментарии в С++ начинается с символов //, показывающих, что остальная часть строки это комментарий. Комментарии пишут, чтобы документировать программу, чтобы было легче читать и понимать ее. Комментарии не вызывают при выполнении программы никаких действий компьютера, они игнорируются компилятором C++. Комментарий, который начинается с //, называется однострочным комментарием, потому что комментарий заканчивается в конце текущей строки. Если необходимо закомментировать несколько строк, можно использовать многострочный комментарий, который начинается с символов /* и заканчивается символами */. /* многострочный комментарий */ 1.4 Функции Функция main() имеется в любой программе на C++. Фигурные скобки после main показывают, что это блок программы, называемый функцией. Программы на C++ состоят обычно из одной или большего числа функций и классов, но одна из функций
  • 4. Лекция №1 для дисциплин: «Прикладное программирование» и «Языки программирования» 4 обязательно должна быть функцией main, именно с нее начинается выполнение программы, даже если она не первая в программе. Тело каждой функции должно начинаться с левой фигурной скобки { Заканчивать тело функции должна соответствующая правая фигурная скобка } Хороший стиль программирования – делать отступ на один символ табуляции после каждой открывающей фигурной скобки. Это выделяет функциональную структуру программы и облегчает ее чтение. Ключевое слово void слева от main сообщает, что main не возвращает никакого значения. Ключевое слово является словом в коде программы, имеющим в C++ специальное назначение. Полный список ключевых слов языка C++ приведен в приложении 3. 1.5 Ввод и вывод на экран cout<<"Welcome to C++!"<<endl; Эта строка называет оператором. Всякий оператор C++ должен заканчиваться точкой с запятой. Директивы препроцессора (подобные #include) не оканчиваются точкой с запятой. Вывод и ввод в C++ осуществляется посредством символьных потоков. Когда выполняется оператор cout, он посылает поток строку Welcome to C++! в стандартный выходной поток, который выводит данные на экран. Операция << называется операцией передачи в поток. Когда программа выполняется, значение справа от операции (правый операнд), помещается в выходной поток. Заметьте, что знаки операции направлены в соответствии с направлением движения данных. Символы правого операнда обычно выводятся точно так, как они записаны в строке внутри кавычек. Манипулятор потока endl означает переход курсора на новую строку. Если бы мы захотели выводить каждое слово на новой строке, это можно было бы сделать следующим образом: cout<<"Welcome"<<endl<<"to"<<endl<<"C++!"<<endl;