Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Лысаков. Основы программирования

Лысаков. Основы программирования (Лекции (2017)), страница 4

PDF-файл Лысаков. Основы программирования (Лекции (2017)), страница 4 Программирование (85821): Лекции - 2 семестрЛысаков. Основы программирования (Лекции (2017)) - PDF, страница 4 (85821) - СтудИзба2021-01-26СтудИзба

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

Файл "Лысаков. Основы программирования" внутри архива находится в следующих папках: Лекции 2017, Лекции 2017. PDF-файл из архива "Лекции (2017)", который расположен в категории "". Всё это находится в предмете "программирование" из 2 семестр, которые можно найти в файловом архиве НГУ. Не смотря на прямую связь этого архива с НГУ, его также можно найти и в других разделах. .

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

Текст 4 страницы из PDF

То есть при запуске программы, происходитэкран может привести либо к выводу «мусора», либо даже к ошибкевыполнение тех команд, которые написаны в этой функции. В описанномвыполнения программы (в зависимости от среды выполнения).примере это одна команда – вывод на экран текстового сообщения.Внутри функции main (а также всех других функций), каждая строкадолжна заканчиваться символом ;.2324www.phys.nsu.ruint a = 4;char ch = 'Q';double pi = 3.141592;Написанные код, как видно, имеет удобное форматирование, удобноедля чтения. Форматирование производится командой табуляции (кнопкаTab на клавиатуре).

Но при этом, если написание программы происходитcout << a;cout << ch;cout << pi;построчно, то при переходе на следующую строчку (кнопка Enter наклавиатуре), текст форматируется автоматически.2.4.Ввод и вывод переменныхВвод значений переменных также осуществляется без дополнительнойПри работе программы, зачастую необходимо чтобы пользовательинформации о переменной.сообщал программе различные параметры, а программа, по ходуdouble pi;cin >> pi;выполнения, выдавала результат вычислению пользователю.В языке программирования С, для вывода значений переменных наконсоль, необходимо дополнительно указывать тип данных.

Поэтомувывод переменных выглядит следующим образом:привводезначений>> – в данном контексте, это операция извлекающая данные изпотокасправа,преобразующаяизтекстовоговида,иПри операциях вывода значений переменных возможны комбинациипеременных и текстовых выражений. При операциях ввода, такие средстване предусмотрены.переменныхсконсоли,программист должен априорно быть знакомым с понятиями ссылок иуказателей на объкты, а также помнить, что для дробных чисел ввод ивывод осуществляются по-разному.double pi;scanf("%lg", &pi);Язык программирования С++, позволяет значительно упроститьоперации ввода-вывода значений переменных, за счет использованияНиже приведен фрагмент кода, запрашивающий у пользователязначение переменной, и выводящей ее квадрат.int a;int Res;cout << "Input value a = ";cin >> a;Res = a*a;cout << "a*a = " << Res << endl;потоков.25ихскладывающая их в переменную, указанную слева.printf("%d", a);printf("%c", ch);printf("%f", pi);этого,cin – поток ввода.

Обычно поток cin связан с клавиатурой, и весьнабираемый в консоли текст, хранится в потоке.•int a = 4;char ch = 'Q';double pi = 3.141592;Помимо•26www.phys.nsu.ruОбратите внимание, что символы >> и << показывают направление2.5.1. Выражения и приведение арифметических типовпотока – в переменную, или из нее на консоль.Специальная команда endl означает перевод строки.2.5.Каждое выражение состоит из одного или нескольких операндов,Арифметические операции и их использованиеДля вычислений выражений в языках С и С++ могут использоватьсяразличные арифметические операции.

При этом каждая операция имеетсвой ранг, определяющий приоритет ее выполнения. Чем ниже рангоперации, тем больший приоритет имеет операция. Операции одного рангаисполняются согласно правилам ассоциативности либо слева направо (–>),либо справа налево (<–). В таблице разобраны типовые операции порангам и тип их ассоциативности:символов операций и ограничителей, в качестве которых чаще всеговыступают круглые скобки ( ). Назначение любого выражения —формирование некоторого значения. Тип результата определяется типомвыражений. Если значениями выражения являются целые и вещественныетипы, то говорят об арифметических выражениях, в которых допустимыследующие операции:+ — сложение;– — вычитание;* — умножение;/Ранг123456789101112131415Операции() [] –> .! ~ + – ++ -- & * (тип)sizeof()*/%(мультипликативныебинарные)+ – (аддитивные бинарные)<< >> (поразрядного сдвига)< <= >= > (отношения)== != (отношения)& (поразрядная конъюнкция «И»)^ (поразрядное исключающее «ИЛИ»)| (поразрядное дизъюнкция «ИЛИ»)&& (конъюнкция «И»)|| (дизъюнкция «ИЛИ»)?: (условная операция)= *= /= %= += –= &= ^=|= <<= >>=, (операция «запятая» – перечисление)АссоциативностьÎÍ— деление;% — получение остатка от целочисленного деления.Примеры выражений с двумя операндами:ÎÎÎÎÎÎÎÎÎÎÍÍÎA + b12.3 – x3.14169 * Ze / 88 % iТакже существуют специфичные унарные операции ++ и -- дляизменения операнда на 1.

При этом эти операнды могут применяться какпосле операнда (а++), так и до него (--х). При этом результат будетразличный:•Если изначально а было равно 6. То после выполнения z = a++,результатом будет: z = 6; a = 7;•Если изначально а было равно 6. То после выполнения z = --a,результатом будет: z = 5; a = 5.2728www.phys.nsu.ru2.5.2. Отношения и логические выражения2.5.3. Приведение типовОтношение определяется как пара выражений, между которыми стоитОсобенность языков С и С++ заключается в том, что при вычислениизнак операции отношения. Допустимы следующие операции:значений выражений, результат всегда приводится к типу первого== — равно (два знака «равно»);операнда. То есть при делении двух целых значений результат будет также!= — не равно;иметь тип целого числа, поскольку каждый из операндов представлен> — больше;целым типом.< — меньше;int a = 5;int b = 2;double res;>= — больше или равно;<= — меньше или равно.res = a / b;Примеры отношений:а – b > 6.8(x – 8) * 3 == 155 >= 1Для получения вещественного типа необходимо, чтобы хотя бы одиноперанд имел тип вещественного числа.

Для этого можно использоватьЛогический тип (истина или ложь) в языке С отсутствует. Поэтомупринято, что отношение имеет ненулевое значение (обычно 1), если оноистинно, и равно 0, если оно ложно.приведение типов. В коде программ достаточно часто приводится явноеприведение типов, что не влечет изменение типа самой переменной.Рекомендуется в случае подобных вычислений приводить к желаемомутипу первый операнд, что упрощает чтение и последующую отладкупрограмм.Логических операций в языке С три:!— отрицание— логическое НЕ&&— конъюнкция— логическое И||— дизъюнкция— логическое ИЛИТаккакзначением// Результатом будет 2отношенияявляетсяint a = 5;int b = 2;double res;целое,тоничегоне противоречит применению логических операций к целочисленнымзначениям. При этом любое положительное ненулевое значение будетвосприниматься как истинное.

Иначе говоря значением !0 будет 1, а !54res = (double)a / b;2.5.4. Выражения с поразрядными операциямиТакие операции позволяют конструировать выражения, в которыхобработка операндов выполняется побитно (в двоичном представлениибудет 0.числа). Возможны следующие операции:~ — инвертирование битов;// ~170 равно 85>> — сдвиг последовательности битов вправо; // 100 >> 2 равно 252930www.phys.nsu.ru<< — сдвиг последовательности битов влево// 5 << 2 равно 20При этом, если необходимо исполнить несколько операторов, то их^ — поразрядное исключающее ИЛИ;необходимо выделить в ТЕЛО, которое обозначается фигурными|скобками.— поразрядное ИЛИ;if ( условие )& — поразрядное И;{Операции побитового сдвига часто применяются в программировании,оператор_1;поскольку позволяют значительно ускорять операции умножения илиоператор_2;nцелочисленного деления на 2 .оператор_3;}int a;cout << "Input value a = ";cin >> a;В случае ветвления исполнения, оператор имеет следующий вид:if ( условие )оператор_1;cout << "a*16 = " << (a << 4) << endl;elsecout << "a/8 = " << (a >> 3) << endl;оператор_2;Операторы ветвления2.6.В языках С и С++ существует два оператора ветвления:•условный оператор if.•переключатель switch.При этом возможно ветвление и на большее количество ветвей:if ( условие_1 )оператор_1;else if(условие_2 )оператор_2;2.6.1.

Оператор ifelseоператор_3;Оператор if может использоваться либо для условного выполненияопределенного действия, либо для разветвления программы на небольшоеВ качестве условия могут использоваться арифметические выражения,количество ветвей.В случае условного исполнения, оператор имеет следующий вид:отношения и логические выражения (x > 10 && x < 87).Приведем фрагмент программы для определения корней уравненияif ( условие )видаax 2 + bx + c = 0оператор;3132www.phys.nsu.ruявляется меткой, обозначающей место выполнения программы послеD = b*b-4*a*c;SWITCH.if ( D < 0)cout << "No roots" << endl;Оператором перехода может быть break, который осуществляет выходиз тела (фрагмент кода, обозначенный фигурными скобками).Переключатели чаще всего используются, когда количество ветвейelse if(D == 0){x = (double)-b / (2*a);cout << "1 root: x = " << x << endl;}больше 3, либо необходимо перебрать заданные константы.Для иллюстрации приведен фрагмент программы, которая выводит наэкран название введенной цифры от 0 до 9:else{x1 = ( - b + sqrt(D)) / (2*a);x2 = ( - b - sqrt(D)) / (2*a);cout << "2 root: x1 = " << x1 << " x2 = " << x2;}2.6.2.

Переключатель switchДанный оператор используется для организации мультиветвленияследующим и выглядит следующим образом:switch (выражение){case Константа_1: операторы_1;case Константа_2: операторы_2;….default: операторы;}При первом совпадении значения выражения с константой происходитвыполнение операторов, помеченных данной меткой. Если после ихвыполнениянепредусмотреноникакихоператоровперехода,товыполняются также все последующие операторы.

То есть по сути, CASE33int a;cout << "Input a = ";cin >> a;switch (a){case 1: cout << a << " - One" << endl;break;case 2: cout << a << " - Two" << endl;break;case 3: cout << a << " - Three" << endl;break;case 4: cout << a << " - Four" << endl;break;case 5: cout << a << " - Five" << endl;break;case 6: cout << a << " - Six" << endl;break;case 7: cout << a << " - Seven" << endl;break;case 8: cout << a << " - Eight" << endl;break;case 9: cout << a << " - Nine" << endl;break;case 0: cout << a << " - Zero" << endl;break;default: cout << "The value is not from 0 to 9";}34www.phys.nsu.ruЕще раз отметим, что если бы в программе отсутствовалиоператоры break, то при вводе например цифры 6, на экран бы2.7.В качестве примера рассмотрим программу, распечатывающую всечисла, которые делятся на 2 до введенного пользователем значения.распечаталось следующее:6 –7 –8 –9 –0 –The.SixSevenEightNineZerovalue is not from 0 to 9int i, Max;cin >> Max;for(i = 0; i <= Max; i++){if(i%2 == 0)cout << i << endl;}Операторы цикловВ языках С и С++ существуют три разных способа оргиназации циклов.Ниже мы их разберем с примерами использования.Выражения, указывающиеся в скобках оператора for не являютсяобязательными.Нижеприведенполностьюидентичныйкод,выполняющий точно такой же цикл.Помните, что даже если программист не указывает внутри оператораfor какие-либо выражения, все 3 поля должны быть оставлены пустыми!2.7.1.

Цикл forОператор for является, пожалуй базовым оператором для организациициклов. Цикл for — это параметрический цикл, то есть имеетсявозможность задавать параметры для выполнения цикла: начальныезначение и условия. Форма записи выглядит следующим образом:for (выражение_1; условие_цикла; выражение_2)Тело циклавыражение_1int i, Max;cin >> Max;i = 0;for(;;){if(i <= Max){if(i%2 == 0)cout << i << endl;i++;}elsebreak;– определяет действия, выполняемые до начала цикла.условие_цикла – обычно логическое или арифметическое условие.Пока это условие истинно, выполняется цикл. Проверка происходит передначалом очередной итерации тела цикла.}выражение_2 — это действие, выполняемые в конце каждой итерациицикла.3536www.phys.nsu.ru2.7.2.

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