Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Краткий конспект языка С++

Краткий конспект языка С++

PDF-файл Краткий конспект языка С++ Информатика (36382): Лекции - 1 семестрКраткий конспект языка С++: Информатика - PDF (36382) - СтудИзба2019-04-28СтудИзба

Описание файла

PDF-файл из архива "Краткий конспект языка С++", который расположен в категории "". Всё это находится в предмете "информатика" из 1 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

студентыфизики2013unkonnСтудент физфакаИсточникиhttp://ofvp.phys.msu.ru/science_education/lections/CS/cp_menu.htmlПо материалам семинаров Панова Н.А. в 1 и 2 семестрах.Краткий конспект СиБиблиотеки#include<stdio.h>#include<conio.h>#include<math.h>#include<cmath>#include<time.h>#include<stdlib.h>#include<iostream>#include<fstream>////////////////standard input/output: header, printf, scanf, файлыgetch() – ожидание нажатия клавишиматематическая библиотека: abs()математическая библиотека c++работа с датой, временем: time()srand, RAND_MAX, malloc, freecin, cout. (добавить также using namespace std;)потоки в файлыОсновная часть программыint main { … ; return 0; }void main { … ; }Автозамена текста программы(C)#define N 10#define sqr(x) (x*x)// замена компилятором части кодаПример ошибки#define sqr(x) x*x// отсутствие скобок.

Тогда y=sqr(a+b);  y=a+b*a+b;(C++)const float N=20;inline <тип_возвр_зн> sqr(float x) { return x*x }объединение операторов{ <оп>; <оп>; … }Описание переменных<тип> <пер1>,<пер2>=<знач>, … ; в любом месте программы, до появления соответствующейпеременнойintцелый тип, 4 байта (-4*10^9…4*10^9)floatтип с плавающей точкой, 4 байтаdoubleтип с плавающей точкой двойной точности, 8 байтcharсимвольный тип c='b'+1; - следующий в кодировке после «b» символchar[N]массив типа char (строковой тип)char b[N][M] массив типа charint a[N]массив a[0],…,a[N-1] переменных типа intint a[2] = {11, 2};Некотрые операцииx=5;присваивание типа intx=5.0; x=5.; присаивание типа floati++; или ++i; или i=i+1;i--; или --i; или i=i-1;i+=5;или i=i+5;Особые операции для int:/ деление нацело (5/2=2)% остаток от деления (5%2=1)Особые операции для float/double:/ обыкновенное деление (5./2.=2.5) (5./2=2.5) (5/2.=2.5)abs(x); возвращение модуля xПреобразование типовx=b; неявно (=float, b=int)x=float(b); или x=(float)b; (=float, b=int)float=int к float можно неявно присвоить intint=float к int нельзя неявно присвоить floatВвод/выводОбычный ввод/вывод(C)#include<stdio.h>scanf("<строка>",&<пер1>,&<пер2>,пример scanf("%d%lf",&a,&b)printf("<строка>"[,<пер1>,<пер2>,printf("Hello world");printf("a=%i b=%i c=%f\n",x,y,z);Потоки (C++)#include<iostream>using namespace std;cout << “x=” << x << “y=” << y <<cout.precision(1); число значащихcin >> b;Типы во вводе/выводе и оформление\nпереход на новую строку\tтабуляция%d, %i int...);//ввод...]);// вывод ([] - необязательно)endl;цифр в экспоненциальной записи(C,C++)%f%lf%c%sfloatdouble; %.xlf – x цифр после запятойcharchar[N]Логические операции0ложь!0истина!a(!0  1, !5  0)a&&bи (0&&0  !0&&0  0&&!0  0; !0&&!0  1)a||bили (0&&0  0; !0&&0  0&&!0  !0&&!0  1)==равно!=не равно>=, <=, >, <Условный оператор (по возможности избегать)if(<число>) <оп1 !0>; else <оп2 0>;//условный оператор.

Число представлется как логическаяпеременная.switch(x)//оператор выбора{case 5: <оп>; break;case 1: <оп>; break;default <оп>;}//остальные случаи (аналог else)Циклыwhile (<усл>) <оп>;// с предусловиемdo <оп> while (<усл>);// с постусловием. По возможности избегатьfor(<оп1>;<усл>;<оп2>) <оп>;// с предусловием. Если в <оп> хотите несколько операций,отделяйте их запятой без точки.<оп1>; for(;;) { if(<усл>) break; else <оп> }; // или даже так – без параметров в for()Файлы#include<stdio.h>FILE*<файлоая переменная>;<файл пер>=fopen("<file name>","<способ>");// связь файла и переменной для открытия:Способы:w - открыть для записиr - открыть для чтенияa -открыть для добавления в конецfprintf(<файл пер>,"%d",i);// запись в файлfscanf(<файл пер>,"%c",&c);// чтение из файлаfclose(<файл пер>);// закрыть.

Файлы нужно закрывать.feof(<файл пер>);// функция конца файла (конец =1, не конец =0)файлы в потокиofstream file2;fistream file1;file1.open("NewFileIn.txt");file2.open("NewFileOut.txt");file1 >> x ;file2 << "Enter";file1.close();file2.close();// создать потоковый объект класса. ofstream - для записи// создать потоковый объект класса. ifstream - для чтения////////связать объект с именем файлачтение из потокавывод в поток файлазакрыть файлФункцииОписываются до блока mainТипы (по типу выводимого значения)voidвозвращает ничтоint; double возвращает соответствующий тип<тип выдаваем знач> <имя функц>(<перем>);// глобальные переменныеint abc(<тип1> <пер1>,<тип2> <пер2>, … ){int a,b,c;// локальные переменныеm=11;// использование глобальной переменнойreturn x; }// возвращение значения функцииabc(a,b+17);// вызов функциипрототипы (если функция вызывается до своего объявления)void B();// прототипvoid A() { B() }// без прототипа функция A не видела бы Bvoid B() { A() }// без прототипа функция B видит AЗначения функций по умолчаниюvoid Show(int i=10, int j=0){cout << i+j; }void main(){Show (1,2); // 3Show(1);// 1Show(); }// 10Динамическая памятьsrand(time(NULL));x=rand()пр x=rand()%aпр x=(b-a)*rand()/RAND_MAX+a;// случайное число в диапазоне [0;RAND_MAX]// случайное число в диапазоне [0;a-1]// случайное число в диапазоне [a;b]Ca=(<тип>*)malloc(N*sizeof(<тип>)); // динамический массив переменных типа <тип> размера Nb=(int*)malloc((end-beg+1)*sizeof(int));free(a);// очистка динамической памятиC++a=new <тип>[<размер>];// динамический массив переменных типа <тип>delete a;// очистка динамической памятиСтруктураТип переменных, введенный пользователем.struct <имяструк>{<тип> <пер1>;<тип> <пер1>;…};<имяструк> <пер>;// объявление переменной типа <имяструк><имяструк> *<указ>=<пер1>;// объявление указателя на <пер1> типа <имяструк><пер>.<пер1>=11;// доступ к полю <пер1> переменной <пер> типа <имяструк><указ> -> <пер1>=4;// доступ к полю <пер1> переменной <пер> типа <имяструк>через указательпример структуры с указателями (для создания стека):struct type{int x;// поле с переменной типа inttype *p;// поле с указателем на переменную типа type};type *last = new type;// объявление указателя типа typetype *temp = new type;// то жеtype *nd = new type;// то жеlast->p = NULL;// очистка указателяnd->p = last;// писваиване полю p в указателе ndscanf("%d",&(nd->x));//last = nd;// копирование содержимогоУказателисодержат адрес на ячейку памяти<тип>* <указ>;// объявление указателя<указ>=&<пер>;// & - взятие адреса <пер> и запись в указатель*<указ>=6; или <пер>=6;// * - доступ к значению переменной по адресу в указателе.*<указ>=NULL;// в никудаdelete <указ>;// удаление указателяОсобый доступ к массивам:int a[N];*a=6;  a[0]=6;*(a+2)=7;  a[2]=7;int *p=new int[size];//создание массива типа int размером size элементов с помощьюуказателяДвумерные указателиint **p;p=new int*[yy];for (y=0;y<yy;y++){p[y]=new int[xx];p[y][x]=3;for (int y=0;y<yy;y++)delete p;//создание массива ссылок p[y]}//объявление элемента p[y] массива ссылок как массив// p[y][x];  *(*(p+y)+x);delete p[y];// очисткаСсылки (C++)Ссылка – вид указателя («псевдоним» переменной, второе имя ячейки памяти).Привязывается только к переменной<тип> &<ссыл>;объявление ссылки<ссыл>=<пер>;<ссыл>++; или <пер>++;Полиморфизм.

Перегрузка функций (C++)Функции с различными по типу аргументами различны. Выбор происходит в зависимости от типааргументов:intsum(int a, int b){ return a+b; }//(1)float sum(float a, float b) { return a+b; }//(2)sum(c,d);// (1). c,d - intsum(c,d);// (2). c,d – floatИнкапсуляция. Класс (C++)Инкапсуляция - Объединение данных и методов их обработки в рамках одного типаКласс – тип, в который объединяются данные и методы. Частный случай класса – структураЭкземпляр класса – объектclass matrix// объявление класса matrix{private:// видны изнутри класса (локальные) (можно не использовать)int x,y;public:// видны везде (глобальные)matrix(int,int);// конструкторmatrix(matrix &);// конcтруктор копийmatrix operator+(matrix);// переопределение +friend matrix operator*(matrix, matrix); // переопределение * через дружественнуюфункцию.void show();// прототип метода~matrix();// деструктор.

Вызывается автоматически при закрытии};matrix::matrix(int y1=3, int x1=4)// конструктор. 3,4 – значения по умолчаию{ … }matrix::matrix(matrix &orig)//конструктор копий.{x=orig.x; }void matrix::show(){cout << x << “ “ << y << }matrix matrix::operator+(matrix v)// переопределение +{v.x+=this->x;// this - указ на объект, для которого вызван методreturn v; }matrix operator*(matrix u, matrix v)// переопределение * через дружественную{… ; return matr; }matrix::~matrix()// деструктор{delete p; }void main(){matrix A;// вызов matrix со значениями параметров по умолчаниюmatrix B(m,n);// вызов matrix с пользовательскими значениями параметровA.show();(A+B).show(); }// вывод матрицы A+B на экран в соответствии с определением плюсаНаследование. Виртуальные классы (C++)class A{public:virtual void solve()=0; };/* virtual - виртуальная функция, =0 - в описании не нуждается.

Класс с виртуальной функцией –виртуальный класс, не создающий своих объектов. */class B: public A// класс наследует свойства класса A и также свои{};class integral: public A, public B//множественное наследование{};int main(){ return 0; }Обработка исключенийtry// область возможного существования исключений{throw 1;// (1)throw "ERROR"; }// (2)catch(char *s){cout << s;//exit(0);}// выход из программыcatch(int *k){cout << k;}//(1) отправка значения 1 в ближайший catch с типом int и преход к концу блока try//(2) отправка значения ERROR в ближайший catch с типом string.

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее