bmstu_iu6_Cpp1 (823967), страница 5

Файл №823967 bmstu_iu6_Cpp1 (Методические пособия по C++ Г.С.Иванова 3 части) 5 страницаbmstu_iu6_Cpp1 (823967) страница 52021-07-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

Для изменения порядка выполнения операций используются круглые скобки.Грамматика С++ определяет 16 категорий приоритетов операций или рангов. Операции 1 ранга имеют высший приоритет, т.е. выполняются в первую очередь:1. ( ) [ ] -> :: .2. ! (не) + - (унарные) ++ -- &(адрес) *(указатель) sizeof new delete3. .* ->*4. * / %5.

+ - (бинарные)6. << >>7. < <= > >=8. = = ! =9. &(поразрядное и)10. ^(исключающее или)11. | (поразрядное или)12. &&13. ||14. ?:15. = *= /= %= += -= &= ^= |= <<= >>=16. ,Например:Оглавление22inta=10, b=3; float ret; ret=a/b;c=1;b=c++;// результат: b=1, с=2c=1;sum=++c;// результат: c=2 , sum=2// результат: ret=3c=a<<4;// эквивалентно с=a*16;a+=b;// эквивалентно a=a+b;a=b=5;// эквивалентно b=5; a=b;a=(b=s/k)+n;// эквивалентно b=s/k; a=b+n;c=(a>b)?a:b;// если a>b, то с=a, иначе с=bСложные выражения представляют собой последовательность простых, записанных через запятую «,»:<Выражение1>,<Выражение2>,...<Выражение n>По таблице приоритетов операций запятая имеет низший ранг, поэтому простые выражения, разделенные запятой, выполняются последовательно слева направо, а в качестверезультата выражения берется тип и значение самого правого выражения.Например:int m=5,z;z=(m=m*5,m*3);// результат: m=25, z=75int d,k;k=(d=4,d*8);// результат:d=4, k=32 .с=(a=5, b=a*a); // эквивалентно a=5; b=a*a; c=b;Стандартные математические функции.

В выражениях можно применять стандартные математические функции из библиотеки math. При их использовании необходимо подключить файл прототипов функций math.h:#include <math.h>Наиболее часто используют следующие функции:fabs(< Вещественное выражение>)// абсолютное значение вещественного числаabs(<Целое выражение>)// абсолютное значение целого числаsqrt(<Вещественное выражение>)// √xexp(<Вещественное выражение>)//exlog(<Вещественное выражение>)//ln xlog10 (< Вещественное выражение >)//log10 xsin(<Вещественное выражение>)//sin xcos(<Вещественное выражение>)//cos xОглавление23atan(<Вещественное выражение>)//arctg xtan(< Вещественное выражение >)//tg xacos (< Вещественное выражение >)//арккосинусasin (< Вещественное выражение >)//арксинусsinh(<Вещественное выражение>)//гиперболический синусcosh(<Вещественное выражение>)//гиперболический косинусКроме этих функций еще достаточно часто используют функции, позволяющие получать последовательности случайных чисел.

Их прототипы находятся в файле conio.h.rand () – генерация случайного числа 0 ≤ x < 215-1;srand (<Целое число>) – инициализация генератора случайных чисел.Например:srand((unsigned)time(NULL));//инициализация датчика текущим временемnum=rand()/1000.0; // генерация вещественного случайного числаДля такой инициализации к проекту должен быть подключен файл time.h:#include <time.h>1.6 Элементарный ввод выводДля ввода/вывода данных скалярных типов и строк обычно используют стандартныефункции ввода/вывода, описанные в библиотеке stdio.

Для того чтобы применять этифункции необходимо, чтобы программе был доступен файл stdio.h, содержащий прототипы функций из этой библиотеки. Для этого необходимо подключить этот файл с помощью директивы препроцессора include:#include <stdio.h>В библиотеке существуют три вида функций, организующих элементарный ввод склавиатуры и вывод на экран:•форматный ввод/вывод – для выполнения операций ввода/вывода над скалярными значениями, символами и строками;•ввод/вывод строк;•ввод/вывод символов.Оглавление241.6.1 Форматный ввод /выводВвод чисел, символов и строк с клавиатуры:int scanf(<Форматная строка>, <Список адресов переменных>); // возвращает//количество введенных значений или EOF(-1)Вывод чисел, символов и строк на экран:int printf(<Форматная строка>, <Список выражений>); // возвращает// количество выведенных байтовФорматная строка – это строка, которая помимо символов содержит управляющиеспецификации вида:%[-] [<Целое 1>] [.<Целое 2>] <Формат>где «-» – выравнивание по левой границе,<Целое 1> – ширина поля вывода;<Целое 2> – количество цифр дробной части числа;<Формат > – формат для ввода/вывода значения.Основные форматы для ввода и вывода:d – целое десятичное число;u – целое десятичное число без знака;o – целое число в восьмеричной системе счисления;x – целое число в шестнадцатеричной системе счисления (% 4x – без гашения незначащих нулей);f – вещественное число;e – вещественное число в экспоненциальной форме;c – символ;p – ближний указатель (адрес);s – символьная строка, вводит строку до первого пробела.Кроме этого, форматная строка может содержать Esc-последовательности:\n – переход на следующую строку;\t – переход на следующую позицию табуляции;\r – перевод каретки;\f – перевод страницы;\n hhh – вставка символа с кодом ANSI hhh (код задается в шестнадцатеричной системе счисления);%% – печать знака %.Оглавление25Примеры форматного ввода/вывода:а) i=26;printf (″%-6d∪∪∪%%∪ %o∪ %x\n″, i, i, i);Выведенная строка: 26∪∪∪∪∪∪∪%∪32∪1A ↵б) scanf(″%d%d″,&a,&b);Вводимые значения:1) 24 282) 24↵28в) scanf(″%d,%d″,&a,&b);Вводимые значения: 24,28г) scanf(″%s″,name);Вводимые значения: ИвановИванРезультат ввода: ИвановПоследний пример демонстрирует, что по формату s строка вводится только до пробела.

Чтобы ввести всю строку используют специальную функцию ввода строк или повторяют ввод в другие переменные из той же строки.Примечание. Начиная с версии Visual С++ 2008 разработчики языка рекомендуютвместо стандартной функции scanf использовать функцию scanf_s, которая контролирует длину вводимой пользователем строки, позволяя исключить ошибку переполнениябуфера. При вызове функции scanf_s максимально возможную длину вводимой строкиуказывают после соответствующего формата.Пример 1.2.

Пример работы функции scanf_s().#include <stdio.h>#include <conio.h>int main(){int i,result;float fp;charc,s[81];result = scanf_s( "%d %f %c %s", &i, &fp, &c, 1, s, 80 );printf( "The number of fields input is %d\n", result );printf( "The contents are: %d %f %c %s \n", i, fp, c, s);_getch();}Оглавление26Результат работы программы (полужирно выделены вводимые значения):45 67.8fghjkThe number of fields input is 4The contents are: 45 67.800003 f ghjk1.6.2 Ввод/вывод строкВвод строк с клавиатуры:char* gets(<Строковая переменная>); // возвращает копию строки или NULLВывод строк на экран с переходом на следующую строку:int puts (<Строковая константа или переменная>);Примеры:а) puts(″Это строка″);Результат:Это строка↵б) gets(st);Вводимые значения:Результат:ИвановИванов Иван↵Иван1.6.3 Ввод/вывод символовВвод символов с клавиатуры:int getchar();// возвращает символ или EOFВывод символов на экран:int putchar(<Символьная переменная или константа>);Например:ch=getchar();putchar(′t′);Пример 1.3.

Программа определения корней квадратного уравнения Ax2+Bx+C=0при условии, что дискриминант неотрицателен.#include <locale>#include <stdio.h>#include <conio.h>#include <math.h>Оглавление27// основная программаint main(int argc, char* argv[]){setlocale(0,"russian");float A,B,C,E,D,X1,X2;puts("Введите A,B,C:");scanf_s("%f%f%f",&A,&B,&C);printf("A=%5.2fB=%5.2fC=%5.2f\n",A,B,C);E=2*A;D=sqrt(B*B-4*A*C);X1=(-B+D)/E;X2=(-B-D)/E;printf("X1= %7.3fX2=%7.3f\n",X1,X2);puts("Нажмите любую клавишу для завершения...");_getch();return 0;}В результате получим следующее (вводимая информация выделена полужирно):Введите A,B,C:1 -5 6A= 1.00X1=B=-5.003.000C= 6.00X2=2.000Нажмите любую клавишу для завершения...Контрольные вопросы к главе 11.

Что такое тип данных и каково его назначение?Ответ.2. Дайте определение литерала. Приведите примеры литералов?Ответ.3. Что такое переменная и как она определяется в С++?Ответ.4. Какие операции над данными определены в С++?Ответ.5. Какие логические поразрядные операции реализованы в С++ и особенности ихвыполнения?Ответ.Оглавление286. Какие операции присваивания Вы знаете? В чем особенности их выполнения?Ответ.7. Что такое выражение? Дайте определение простого выражения.Ответ.8.

Что такое приоритет и ассоциативность операций в С++?Ответ.9. Какие стандартные функции можно использовать в С++ и какую библиотеку для этогонужно подключить?Ответ.10. Что такое форматная строка и как она используется при вводе и выводе данных?Ответ.Оглавление292УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ ЯЗЫКАУправляющими называют операторы, способные изменять линейность процесса вычислений. К таким операторам относятся оператор условной передачи управления if, оператор выбора switch, операторы циклов while, do, for и операторы безусловной передачи управления goto, break, continue, exit.2.1 Блок операторов и пустой операторПри объявлении управляющих операторов широко используют конструкции «блокоператоров» и «пустой оператор».Блоком операторов называют последовательность операторов, заключенную в фигурные скобки:{<Оператор>;… <Оператор>;}Например:{f=a+b;a+=10;}Особенность блока операторов заключается в том, что при анализе синтаксиса онрассматривается как единый оператор.

Это позволяет использовать его там, где по правилам записи конструкций возможен только один оператор, а по алгоритму программы должны выполняться несколько действий.Пустой оператор включает только символ «;», перед которым нет никакого выражения или не завершенного разделителем оператора. Пустой оператор не предусматриваетвыполнения никаких действий. Он используется там, где синтаксис языка требует присутствия оператора, а по алгоритму программы никакие действия не должны выполняться.2.2 Оператор условной передачи управленияОператором условной передачи управления называют конструкцию, позволяющуювыбрать одну из возможных альтернатив вычислительного процесса в зависимости от результата условия.

Характеристики

Тип файла
PDF-файл
Размер
1009,74 Kb
Тип материала
Высшее учебное заведение

Список файлов книги

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