Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;

Презентация:



Advertisements
Похожие презентации
Инструкции C++ Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--;
Advertisements

Работа с файлами FILE НГТУ ИРИТ кафедра ИСУ Ольга Пронина.
Лекция 3 ПЕРВЫЕ ПРОГРАММЫ, ВВОД/ВЫВОД В ЯЗЫКЕ С++
Лекция 11 Файлы. Точного определения файла не существует. Файлом может быть: Объект файловой системы (файлы, папки и т.д.) Устройство ввода/вывода (клавиатура,
Лекция 2Лекция 2Структура программы Директивы препроцессора main () { Описания переменных Операторы }
Лабораторная работа 7. Работа с динамической памятью, строками и файлами.
Работа с файлами. Операции с файлами Для того чтобы можно было читать из файла или писать в файл, он должен быть предварительно открыт с помощью библиотечной.
ООП Классы Данные отдельно, методы отдельно struct Node { Node* next; void* data; }; struct List { Node* first; int size; }; void* allocate() { … } void.
Лекция 6 Функции. Объявления и определения Объявление функции – указание имени функции, а также входных и выходных параметров Определение функции – указание.
Лекция 6 Функции. Объявления и определения Объявление функции – указание имени функции, а также входных и выходных параметров Определение функции – указание.
Потоки (файлы) Функции и типы для работы с потоками в стиле С описаны в модуле stdio.h. В отличие от Паскаля в С с потоком не связан тип данных. Поток.
Синтаксис языка Java. Символы и синтаксис Перевод строчки эквивалентен пробелу Регистр в именах различается.
Преобразования типов В языке C/C++ имеется несколько операций преобразования типов. Они используются в случае, если переменная одного типа должна рассматриваться.
Лекция 2 Функции библиотек языка C. stdio.h Заголовочный файл стандартной библиотеки языка C. Содержит определения констант, объявления функций и типов.
Лекция 9 Функции. Массивы-параметры функции Передача массива в функцию Пример: void array_enter(int a[], int size) { int i; for (i = 0; i < size; i++)
Работа с файлами Сазонов Д.О. ПМиЭММ Часть 2. Тема занятия: Работа с файлами через потоки Для реализации файлового ввода/вывода, необходимо включить в.
1 ©Павловская Т.А. Язык С++ Курс «С++. Программирование на языке высокого уровня» Павловская Т.А.
Обработка исключительных ситуаций Исключительная ситуация (исключение) – это ошибка, возникающая во время выполнения программы. Например, ошибка работы.
Лекция 10 ОбъектыЛекция 10 ОбъектыООП Инкапсуляция Возможность совместного хранения данных и кода для их обработки Наследование Возможность расширять существующие.
Подготовили студенты группы 4133 Гусарова Екатерина, Сухова Анастасия, Замалетдинова Эльвина, Хасанов Мурат.
Транксрипт:

Инструкции C++

Условная инструкция Формат: if (условие) оператор; else оператор; Пример: if (i!=0) { if (j) j++; if(k) k++; else if(p) k--; } else i--; Формат: switch (выражение) { case константа: набор операторов; break; … default: набор операторов; } Инструкция выбора

Циклы С предусловием: while (условие) оператор; С постусловием: do оператор; while (условие); Пересчетного типа: for(инициализация;условие;приращение)оператор;

Инструкции перехода break; Пример: for(int I=0; I0) continue; goto loop_exit; } loop_exit: … Инструкция безусловного перехода Формат: goto метка; Используется только в случаях крайней необходимости! break; }

Функции Функция до её использования должна быть описана или объявлена в виде (имена параметров игнорируются): Прототип_функции; Функция должна быть описана только один раз в виде: Прототип_функции { тело_функции } Формат прототипа: Тип_возвращаемого_значения имя(список_параметров) Формат списка параметров: тип имя_аргумента,…,тип имя_аргумента Функцию можно определить со спецификатором inline inline int fac(int n) {return (n

Возвращаемое значение Любая функция, если она не объявлена как void, должна возвращать значение. Это значение задается в инструкции return выражение; - инициализации неименованной переменной возвращаемого типа. Функция может иметь несколько инструкций return. Если функция не возвращает значения, то выражение в инструкции return может быть пустым или вызовом функции типа void.

Пример. int fac(int n) { if(n>1) return n*fac(n-1); return 1; } Ошибка. int* fp(void) {int& fr(void) { int local=1; return &local; return local; }} Возвращается адрес локальной переменной, которая будет уничтожена. Значение, на которое будет указывать этот адрес, будет меняться непредсказуемо!

Передача аргументов По значению void val(int i) { i++; } void main() { int k=0; val(k); cout

Функции с неопределенным числом аргументов #include #include int average( int first,... ); void main() { cout

Аргументы функции main #include void main(int n,char* s[]) {cout

Ввод/вывод Ввод-вывод на консоль. Файловый ввод-вывод.

Ввод/вывод символов int getchar();int putchar(int); #include void main() { int c; while(c=getchar()) putchar(c); } #include void main() { int c; while((c=getchar())!=EOF) putchar(c); } int getch(); int getche();

Ввод-вывод строк char *gets(char*)int puts(char*) #include void main() { char s[80]; gets(s); puts(s); } NB: gets(); - не проверяет выход за границы массива!

Форматированный ввод/вывод int printf(const char*,…)int scanf(const char*,…) Спецификаторы преобразования: %c – символ; %s – строка; %d или %i – десятичное целое со знаком; %u – десятичное целое без знака; %о – восьмеричное без знака; %х или %Х – шестнадцатеричное без знака; %е или %Е – вещественное в форме с плавающей точкой; %f – вещественное в форме с фиксированной точкой; %g или %G = %f или %e, зависит от того, какая форма короче; %p – указатель; % – знак %.

Форматированный ввод/вывод int printf(const char*,…)int scanf(const char*,…) ::= h | l | L | F | N | | # | - | + | ::=.* |. ::= * | | 0

Пример #include void main() {int i1,i2; double a=0.1e-6; char s[80]; scanf(%d %d %s,&i1,&i2,s), printf(i1=%i i2=%i %5.7s %s\n,i1,i2,s,s); printf("%10g %10g\n",a,1000*a); printf("%#0*.*g\n",i1,i2,a); printf("%-20g%c\n",a,'*'); } i1=21 i2= e e-07 1e-07 *

Файловый ввод/вывод fopen(); fputc(); или putc(); fputs(); fprintf(); rewind(); fseek(); remove(); fclose(); fgetc(); или getc(); fgets(); fscanf(); feof(); ftell(); ferror(); FILE *имя;

Открытие файла fopen(const char* Имя, const char* Режим); rbОткрыть текстовый/двоичный файл для чтения; wbСоздать текстовый/двоичный файл для записи; abДобавить в конец текстового/двоичного файла; r+bОткрыть текстовый/двоичный файл для чтения/записи; w+bСоздать текстовый/двоичный файл для чтения/записи a+bДобавить в конец текстового/двоичного файла или создать текстовый/двоичный файл для чтения/записи Прямой доступ fseek(FILE * Уф, long число_байт, int Точка_отсчета ); Точка отсчета:SEEK_SETОт начала файла SEEK_CURОт текущей позиции SEEK_ENDОт конца файла

Пример #include void main() { FILE *fp; char ch; if(!(fp=fopen("file.dat","r+"))) { printf("File open error!\n"); exit(1); } for(int i=0;i

Полиморфизм – один интерфейс, множество методов void print(long);// печать целого void print(char*);// печать символьной строки void print(float);// печать вещественного Проблема: print(10); 1.Не требуется преобразования типа (int и const int). 2.Существует стандартное преобразование типа с расширением точности (int в long). 3.Тоже с возможной потерей точности (double в int). 4.Преобразование типа определено пользователем. 5.С переменным числом аргументов.

Указатель на функцию #include double I(double a,double b,int n,const double (&F)(double)) {double h=(b-a)/n--,s=(F(a)+F(b))/2; while(n--) s+=F(a+=h); return s*h; } double f(double x) { return x; } void main() {cout

Макросы Расширение исходного кода #include #include имя_файла Вставить определение Определить константу #define имя_макроса список_лексем #define va_list void* #define sqr(x) (x)*(x) #define имя константа #define array_size 128 NB!#define sqr(x) x*x A=sqr(a+b); // A=a+b*a+b; Условной компиляции #if#ifdef#ifndef … #else#elif … #endif

Библиотечные функции #include #define eof (-1) int getchar(void); int putchar(int); int printf(char*,…); int scanf(char*,…); #include double sin(double); double cosh(double); double exp(double); double sqrt(double); double pow(double,double); #include #define NULL 0 char* strcpy(char*, const char*); int strcmp(const char*,const char*); int strlen(const char*); char* strstr(const char*,const char*); #include int getch(void); int getche(void); int putch(int); void gotoxy(int,int);

От проектирования процедур к организации данных #include struct complex { double re,im; }; void main(void) {complex a; a.re=1.; a.im=2.; cout

Инкапсуляция #include struct complex { double re,im; void assign(double r,double i) { re=r; im=i; } void print(void); }; void complex::print(void) { cout

Сокрытие данных #include struct complex { private: double re,im; public: void assign(doble r,double i) { re=r; im=i; } void print(void); }; void complex::print(void) { cout

Конструкторы class complex { double re,im; public: complex(double r=0.,double i=0.) { re=r; im=i; } void print(void) const; }; void complex::print(void) const { cout

Преобразование типов class complex { double re,im; public: complex(double r=0.,double i=0.) { re=r; im=i; } operator double() { return sqrt(re*re+im*im); } void print(void) const; }; void complex::print(void) const { cout

Перегрузка операторов class complex { double re,im; public: complex(double r=0.,double i=0.) { re=r; im=i; } operator double() { return sqrt(re*re+im*im); } complex operator +(double b){ return complex(re+b,im); } complex operator+(complex a) { return complex(a.re+re,a.im+im); } void print() const { cout

Дружественные функции class complex { double re,im; public: complex(double r=0.,double i=0.) { re=r; im=i; } operator double() { return sqrt(re*re+im*im); } friend complex operator+(double,complex); complex operator +(double b){ return complex(re+b,im); } complex operator+(complex a) { return complex(a.re+re,a.im+im); } void print() const { cout

Перегрузка оператора

Шаблон template class complex { T re,im; public: complex(T r=0, T i=0) { re=r; im=i; } operator T() { return sqrt(re*re+im*im); } complex operator+(T b){return complex (re+b,im); } complex operator+(complex a) {return complex (re+a.re,im+a.im); } friend ostream& operator &); }; template ostream& operator & a) { s

Пример