Разделы презентаций


Язык программирования C++

Содержание

Структура курсаЛекции – Особенности программирования на С++ в среде разработки Microsoft Visual Studio 2008Практики (17-19 – Delphi, 20-29 – C++ 2008): ИУ6-21 – четверг 830-1150; ИУ6-22 – суббота

Слайды и текст этой презентации

Слайд 1Алгоритмические языки и программирование. 2 семестр
МГТУ им. Н.Э. Баумана
Факультет

Информатика и системы управления
Кафедра Компьютерные системы и сети
Лектор: д.т.н., проф.


Иванова Галина Сергеевна
Алгоритмические языки и программирование.  2 семестр МГТУ им. Н.Э. БауманаФакультет Информатика и системы управленияКафедра Компьютерные системы

Слайд 2Структура курса
Лекции – Особенности программирования на С++ в среде разработки

Microsoft Visual Studio 2008
Практики (17-19 – Delphi, 20-29 – C++

2008):
ИУ6-21 – четверг 830-1150;
ИУ6-22 – суббота 830-1150;
ИУ6-23 – понедельник 1200-1525

РК1: динамические структуры данных (9 неделя);
РК2: иерархии классов (14 неделя);
ДЗ1: практики 17-23 с отчетами (8 неделя)

Зачет (кафедральный) по практикам.
Экзамен (результат идет в диплом):
1 – С++;
2 – Сравнение возможностей С++ и Delphi;
3 – Задача (снимается по результатам рейтингов)
Структура курсаЛекции – Особенности программирования на С++ в среде разработки Microsoft Visual Studio 2008Практики (17-19 – Delphi,

Слайд 3Литература
Подбельский В.В. Язык С++: Учеб. пособие. – М.: Финансы и

статистика, 2006.
Иванова Г.С., Ничушкина Т.Н., Пугачев Е.К. Объектно-ориентированное программирование.

Учеб. для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2007.
Агабеков Л.Е., Иванова Г.С. Программирование на С++. Часть 1. Средства процедурного программирования. Учебное пособие. – М.: МГТУ, 1997. – В электронном виде.
Агабеков Л.Е., Иванова Г.С. Программирование на С++. Часть 2. Средства объектно-ориентированного программирования. Учебное пособие. – М.: МГТУ, 1996. – В электронном виде.
Иванова Г.С., Ничушкина Т.Н. Консольные приложения С++ в среде Microsoft Studio 2003 (Visual C++): Методические указания по выполнению лабораторных работ. – М.: МГТУ им. Н.Э. Баумана, 2008. – 13 с. – В электронном виде.
ЛитератураПодбельский В.В. Язык С++: Учеб. пособие. – М.: Финансы и статистика, 2006. Иванова Г.С., Ничушкина Т.Н., Пугачев

Слайд 4История создания С++
Первоначальное название -

«С with Classes».
Основное достоинство – наличие большого количества специаль-ных средств

и механизмов, упрощающих написание слож-ных системных программ.
Основной недостаток – незащищенный синтаксис, кото-рый часто не позволяет точно идентифицировать ошибку на этапе компиляции программы.

Си - 1972 Денис Ритчи
(1989 Стандарт ANSI,
1999 Новый стандарт)

С++
(начало работы:1979-й год
автор: Бьерн Страуструп)

Standard С++
(1998)

BCPL (1967)

Java

C#

История создания С++Первоначальное название -      «С with Classes».Основное достоинство – наличие большого

Слайд 5МГТУ им. Н.Э. Баумана
Факультет Информатика и системы управления
Кафедра Компьютерные системы

и сети
Лектор: д.т.н., проф.
Иванова Галина Сергеевна
Глава 1

Скалярные типы данных. Основные операторы С++
МГТУ им. Н.Э. БауманаФакультет Информатика и системы управленияКафедра Компьютерные системы и сетиЛектор: д.т.н., проф. 	  Иванова

Слайд 61.1 Алфавит языка. Структура программы
Алфавит языка С++ включает:
1) латинские буквы;
2)

арабские цифры: 0, 1, 2, 3, 4, 5, 6, 7,

8, 9;
3) шестнадцатеричные цифры: 0..9, а..f или A..F;
4) специальные символы: + - * / = ; { } и т. д.;
5) служебные слова: do, while, for, if, else и т. д.

В отличие от Паскаля С++ различает строчные и прописные буквы.
1.1 Алфавит языка. Структура программыАлфавит языка С++ включает:1) латинские буквы;2) арабские цифры: 0, 1, 2, 3, 4,

Слайд 7
В С++ все программы/подпрограммы называются функциями.
Функция main() – основная

программа, всегда имеющая имя main, принимающая управление от операционной системы

и возвращаю-щая его ей. Присутствие этой функции (или функции WinMain() – для Windows) является обязательным.
Команды препроцессора – команды, выполняемые перед компиля-цией программы, могут использоваться для подключения необхо-димых библиотек.

<Команды препроцессора>
[<Объявление типов, переменных и констант>]
[<Объявления (прототипы) функций>]
<Описание функции main()>
[<Описания других функций>]

Структура консольной программы

Консольная программа на С++ включает:

Нотация:
<...> – означает некоторую конструк-цию С++;
[<...>] – означает, что присутствие конструк-ции в операторе не обязательно

В С++ все программы/подпрограммы называются функциями.Функция main() – основная программа, всегда имеющая имя main, принимающая управление

Слайд 8Описание функции
Если функция возвращает скалярное значение, то первое слово описания

содержит его тип. Если функция не возвращает значения, т.е. фактически

является процедурой, то указывают void – «пустой» тип.
Независимо от наличия или отсутствия параметров скобки после имени функции должны быть указаны обязательно. При отсутствии параметров в скобках может быть указано void
{...} – операторные скобки, ограничивающие тело функции – аналог begin ... end Паскаля

<Тип результата или void> <Имя функции> ([<Список параметров>])
{[ < Объявление локальных переменных и констант >]
<Операторы>
}

Описание функцииЕсли функция возвращает скалярное значение, то первое слово описания содержит его тип. Если функция не возвращает

Слайд 9Сравнение программ, написанных на Паскале и С++
Turbo Delphi (консольный режим):

Program

primer;
{$APPTYPE CONSOLE}
Uses SysUtils;

Var A:integer=18;
B:integer=24;
Var

C:integer;

Function Nod(A,B:integer):integer;
Begin
while A<>B do
if A>B then A:=A-B
else B:=B-A;
Nod:=A;
End;

Begin
C:=Nod(A,B);
Writeln(‘Nod=‘, C);
End.

Microsoft Visual C++ - Пример Ex1_01:


#include



int a=18,
b=24,
c;

int nod(int a,int b)
{
while (a!=b)
if (a>b) a=a-b;
else b=b-a;
return a;
}
int main()
{
c=nod(a,b);
printf("nod=%d\n", c);
return 0;
}

Команда
препроцессора - подключение библиотек

Объявление
переменных

Основная
функция

Описание
функции

Сравнение программ, написанных на Паскале и С++Turbo Delphi (консольный режим):Program primer;{$APPTYPE CONSOLE}Uses SysUtils;Var  A:integer=18;

Слайд 101.2 Фундаментальные типы данных 1. Интегральные типы
Для совместимости с

С по-прежнему считается: 0 – false; не 0 – true.

1.2 Фундаментальные типы данных  1. Интегральные типы Для совместимости с С по-прежнему считается: 0 – false;

Слайд 11 2. Вещественные типы
3. Неопределенный («пустой») тип void
Нельзя объявлять

значения типа void, этот тип используется только при объявлении:
нетипизированных

указателей;
функций, не возвращающих значений (процедур).
2. Вещественные типы3. Неопределенный («пустой») тип void Нельзя объявлять значения типа void, этот тип используется только

Слайд 121.3 Объявление переменных и констант
Формат:
[] [][=];
где – описатель

возможности изменения значений:
const – константа,
volatile – независимо меняющаяся переменная,

без указания – обычная переменная
<Тип> – описатель типа: int, char, float, double и т.д.;
<Список идентификаторов> – список имен переменных или констант;
<Значение> – начальное значение переменной или значение
константы.
Примеры:
а) int a, b; // две целые переменные
б) float c=1.05, d; // инициализированное и неинициализ. значения
в) const unsigned char letter=‘a’; // константа – код буквы «a»
г) const a=15; // целая константа 15 – тип int – по умолчанию !
1.3 Объявление переменных и константФормат:[] [][=];где – описатель возможности изменения значений: 			const – константа,			volatile – независимо меняющаяся

Слайд 13Перечисляемый тип
Используется для объявления совокупности поименованных целых констант.

Формат:
enum {[=] [,[]…]}


;

Пример:

enum {SUN, MON, TUES, FRI=5, SAT} day;



Константы присваиваются, начиная

с нуля или с указанного значения.

Имя
переменной

SUN =0, MON = 1, TUES = 2, FRI=5, SAT=6

Перечисляемый типИспользуется для объявления совокупности поименованных целых констант.Формат:enum {[=] [,[]…]} 						;Пример:enum {SUN, MON, TUES, FRI=5, SAT} day;Константы

Слайд 14Объявление типа
Появилось только в С++.
Формат:
typedef ;

Примеры:

1)

typedef unsigned int word;
2) typedef enum {false, true} boolean;



Имя
нового типа

Имя
нового типа

Объявление типаПоявилось только в С++.Формат:typedef ;	Примеры:1) typedef unsigned int word; 2) typedef enum {false, true} boolean; Имя

Слайд 151.4 Стандартные функции ввода/вывода 1 Форматный ввод /вывод
Ввод:
int scanf(,


<Список адресов переменных>);
// возвращает количество значений или EOF(-1)

Вывод:
int printf(<Форматная строка>, <Список выражений>);
где <Форматная строка> - строка, которая помимо символов содержит спецификации формата вида для выводимых значений:
%[-] [<Целое 1>] [.<Целое 2>] <Формат>
«-» - выравнивание по левой границе,
<Целое 1> - ширина поля вывода;
<Целое 2> - количество цифр дробной части вещественного числа;
<Формат> - определяется специальной литерой.
1.4 Стандартные функции ввода/вывода 1 Форматный ввод /вывод Ввод:int scanf(,

Слайд 16Спецификации формата
d - целое десятичное число;
u - целое десятичное число

без знака;
o - целое число в восьмеричной системе счисления;
x -

целое число в шестнадцатеричной системе счисления (% 4x - без гашения незначащих нулей);
f - вещественное число;
e - вещественное число в экспоненциальной форме;
c - символ;
p - указатель (адрес);
s - символьная строка.
Кроме этого, форматная строка может содержать:
\n - переход на следующую строку;
\n hhh - вставка символа с кодом ASCII hhh (код задается в шестнадцатеричной системе счисления);
%% - печать знака %.
Спецификации форматаd - целое десятичное число;u - целое десятичное число без знака;o - целое число в восьмеричной

Слайд 17Примеры форматного ввода/вывода
а) i=26;
printf ("%-6d∪∪∪%%∪ %o∪ %x\n", i,

i, i);



б) scanf(”%d %d”,&a,&b);
Вводимые

значения: 1) 24 28 2) 24↵
28
в) scanf("%d,%d",&a,&b);
Вводимые значения: 24,28

г) scanf("%s",name);
Вводимые значения: Иванов Иван
Результат ввода: name="Иванов"

26∪∪∪∪∪∪∪%∪32∪1A ↵

Примеры форматного ввода/выводаа) i=26;  printf (

Слайд 182 Ввод/вывод строк
Ввод:
char* gets();

//

возвращает копию строки или NULL
Вывод:
int puts (<Строковая константа или переменная>);

Примеры:
а) puts("Это строка");
Результат: Это строка↵
б) gets(st);
Вводимые значения: Иванов Иван↵
Результат: st ="Иванов Иван"
2 Ввод/вывод строкВвод:char* gets();

Слайд 193 Ввод/вывод символов
Ввод символа:
int getchar(); // возвращает символ или

EOF

Вывод символа:
int putchar();

Примеры:

а) ch=getchar( );
б) putchar(’t’);

3 Ввод/вывод символовВвод символа:int getchar();  // возвращает символ или EOFВывод символа:int putchar();Примеры:а) ch=getchar( );б) putchar(’t’);

Слайд 201.5 Операции
Арифметические:

+ – сложение;
-

– вычитание;
* – умножение;
/ – деление – результат – вещественное, если хотя бы одно из чисел – вещественное, результат – целое, если делимое и делитель – целые,
% - остаток от деления целых чисел.
Логические: ! (не), && (и), || (или).

Логические поразрядные:
- (не), & (и), | (или), ^ (исключающее или).

Отношения:
<, >, <=, >=, = = (равно), ! = (неравно).

1.5 Операции   Арифметические:        + – сложение;

Слайд 21Операции (2)
Сдвиги:
>>

- сдвиг вправо,

- сдвиг влево.

Порядковые:
++<идентификатор>, <идентификатор>++ (следующее);
- -<идентификатор>, <идентификатор> - - (предыдущее).

Присваивания:
= += -= *= /= %= &= ^= |= <<= >>=

Условная:
<Выражение1>?<Выражение2>:<Выражение3>

Операции (2)   Сдвиги: 	   >> - сдвиг вправо,

Слайд 22Приоритет операций
1. ( ) [ ] ->

:: .
2. ! (не) + - ++ --

&(адрес) *(указатель) sizeof new delete
3. .* ->*
4. * / %
5. + - (бинарные)
6. << >>
7. < <= > >=
8. = = ! =
9. &(поразрядное и)
10. ^(исключающее или)
11. | (поразрядное или)
12. &&
13. ||
14. ?=
15. = *= /= %= += -= &= ^= |= <<= >>=
16. ,
Приоритет операций 1. ( )  [ ]  -> ::  . 2. ! (не) +

Слайд 231.6 Оператор «Выражение»
Формат:
[,,...[,]...]
Примеры:
a) int a=10, b=3; float ret; ret=a/b;


б) c=1; b=c++;
в) c=1;

sum=++c;
г) c=a<<4;
д) a+=b;
е) a=b=5;
ж) с=(a=5, b=a*a);
з) a=(b=s/k)+n;
и) c=(a>b)?a:b;

ret=3

b=1, c=2

c=2, sum=2

эквивалентно с=a*16;

эквивалентно a=a+b;

эквивалентно b=5; a=b;

эквивалентно a=5; b=a*a; c=b;

эквивалентно b=s/k; a=b+n;

если a>b, то с=a, иначе с=b

1.6 Оператор «Выражение»Формат:[,,...[,]...]Примеры:a) int a=10, b=3; float ret; ret=a/b;  б) c=1;  b=c++;   в)

Слайд 241.7 Блок операторов
Блок операторов используется в конструкциях ветвления, выбора и

циклов, предусматривающих один оператор.
Формат:
{ ;… ;}

Пример:

{
f=a+b;
a+=10;
}

Точка с запятой в отличие от Паскаля является частью оператора, а потому не может опускаться перед фигурной скобкой.

1.7 Блок операторовБлок операторов используется в конструкциях ветвления, выбора и циклов, предусматривающих один оператор.Формат:{ ;… ;}Пример:

Слайд 25if () [ else ]

Примеры:

а) if (!b)

puts("с - не определено"); // если b=0, то –

ошибка,
else {c=a/b; printf("c=%d\n", c);} // иначе - выводится с.

б) if ((c=a+b)!=5) c+=b;
else c=a;

в) if ((ch=getchar())==′q′) // если в ch введено q,
puts ("Программа завершена."); // то ...
else puts ("Продолжаем работу..."); // иначе ...

г) ch=′a′;
if ((oldch=ch, ch=′b′)==′a′)puts("Это символ ′a′\n");
else puts("Это символ ′b′\n");

1.8 Оператор условной передачи управления

if () [ else ]Примеры:а) if (!b)    puts(

Слайд 261.9 Оператор выбора
switch ()
{

case :

case <элемент>: <операторы;>
. . .
[ default : <операторы;>]
}

Пример:

switch (n_day)
{ case 1:
case 2:
case 3:
case 4:
case 5: puts("Go work!"); break;
case 6: printf("%s","Clean the yard and");
case 7: puts("relax!");
}
1.9 Оператор выбора switch (){        case :

Слайд 271.10 Операторы циклов 1. Оператор цикла while
while ()

Пример Ex1_02.

Вычислить при x > 1 сумму ряда S=1+1/x-1/x2+1/x3-... с точностью

ξ.

#include
#include
void main(int argc, char* argv[])
{ float s, r,x,eps;
puts("Input x, eps:");
scanf("%f %f", &x, &eps);
if (x<=1) puts("Error.");
else { s=1; r=1/x;
while (fabs(r)>eps){ s+=r; r=-r/x; }
printf("Result= %f.\n", s);
}
}
1.10 Операторы циклов 1. Оператор цикла whilewhile () Пример Ex1_02. Вычислить при x > 1 сумму ряда

Слайд 282. Оператор цикла for
for (;;);

Эквивалентно:

while ()

{;
;
}


Пример Ex1_03. Вычислить сумму первых

десяти натуральных чисел.

#include
int main(int argc, char* argv[])
{ int i,s;
for (i=1,s=0;i<=10;i++) s+=i;
printf("Sum=%d\n",s);
return 0;
}
2. Оператор цикла forfor (;;); Эквивалентно: while ()  {;   ;  }Пример Ex1_03. Вычислить

Слайд 293. Оператор цикла do ... while
do while ()

;

Пример. Игнорировать ввод значения, выходящего за пределы заданного интервала.

do

{
printf("Введите значение от %d до % d : ",low, high);
scanf(" %d ", &a);
}
while (ahigh);

3. Оператор цикла do ... whiledo while () ; Пример. Игнорировать ввод значения, выходящего за пределы заданного

Слайд 301.11 Неструктурные операторы передачи управления 1. Оператор безусловного перехода goto

goto

;

Пример:
again: x=y+a;

...
goto again;
1.11 Неструктурные операторы передачи управления 1. Оператор безусловного перехода goto 	goto ;	Пример:	again: x=y+a;

Слайд 312. Оператор досрочного завершения break
break;

Пример Ex1_04. Суммирование до 10 чисел

вводимой последовательности. При вводе отрицательного числа работа программы завершается.

#include
void

main()
{ int s=0, i, k;
puts("Input up to 10 numbers.");
for (i=1; i<11; i++)
{
scanf("%d",&k);
if (k<0) break;
s+=k;
}
printf("Result = %d.\n",s);
}

break

2. Оператор досрочного завершения breakbreak;Пример Ex1_04. Суммирование до 10 чисел вводимой последовательности. При вводе отрицательного числа работа

Слайд 323. Оператор продолжения continue
continue;

Пример Ex1_05. Программа суммирует 10
целых положительных

чисел.


#include
void main()
{ int s=0,i=1,k;
puts("Input 10

numbers.");
while(i<11)
{ scanf("%d",&k);
if (k<0) { puts("Error.");
continue;
}
s+=k; i++;
}
printf("Result = %d.\n",s);
}

continue

3. Оператор продолжения continuecontinue;Пример Ex1_05. Программа суммирует 10 целых положительных чисел. #include void main() { int s=0,i=1,k;

Слайд 33Пример Ex1_06. Вывод таблицы кодов
#include
int main(int argc, char*

argv[ ])
{
int i,i1,in,col;
puts("Input first and last values");
scanf("%d

%d",&i1,&in);
puts("Input colon number");
scanf("%d",&col);
for(i=i1;i<=in;i++)
if (i printf("%c-%3d;%c",i,i,((i-i1+1)%col!=0)?' ':'\n');
else printf("%c - %3d.",i,i);
return 0;
}

-32; !–33; "-34; #-35;
$-36; %-37; &-38; ′ -39.

Пример Ex1_06. Вывод таблицы кодов #include int main(int argc, char* argv[ ]){	 int i,i1,in,col; puts(

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика