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

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

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

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

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

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

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

Цикл while2.8.Цикл while — это цикл с предусловием, то есть перед каждойитерацией проверяется условие, и только если оно истинно, то происходитвыполнение тела цикла. Он имеет следующий вид:Массивы данныхВ случае, если программы обрабатывает множество однотипныхданных, именовать каждую переменную не только неудобно, но порой ипросто невозможно из-за их большого количества. Для обработкиwhile (выражение условия цикла)однотипныхданныхприменяютсямассивы,которыепозволяюткомпоновать переменные.Тело циклаНаиболее наглядными примерами применения массивов являютсяПриведем фрагмент кода, который также распечатывает все числа,которые делятся на 2 до введенного пользователем значенияi = 0;while(i <= Max){if(i%2 == 0)cout << i << endl;задачи статистической обработки данных.

Также можно упомянутьобработку векторов различной размерности.Для определения массива необходимо указать, какой тип будут иметьего элементы, и количество этих элементов:int mas[10];Таким образом, определен одномерный массив, состоящий из целыхi++;чисел, имеющий 10 элементов. Элементы в массиве нумеруются начиная}с 0, поэтому в приведенном примере массив содержит элементы сКак видно из примера, условие цикла записывается в более наглядномвиде, чем при использовании for. Но при таком описании довольно частовозникают ошибки связанные с тем, что необходимо явно описыватьномерами от 0 до 9.

Обращаться к его элементам следует следующимобразом:mas[i]Ниже приведен фрагмент кода, в котором пользователь задает 10инкрементацию счетчика цикла.значений, а программа выводит их сумму.2.7.3. Цикл do-whileЦикл do — это цикл с постусловием, то есть проверка условия циклапроисходит после каждой итерации. Это обеспечивает, по крайней мере,одну итерацию выполнения вне зависимости от условий. Он имеетследующий вид:doТело циклаwhile (выражение условия цикла);37int mas[10];int i;for(i=0; i < 10; i++){cout << "a[" << i << "] = ";cin >> mas[i];}int Sum = 0;for(i=0; i < 10; i++)38www.phys.nsu.ruSum += mas[i];Необходимо помнить, что в отличие от объявления переменных, вcout << "Summa = " << Sum << endl;Из примера видно, что работа с элементами массивов мало чемотличается от работы с любыми другими переменными.2.9.Функциисписке параметров функции недопустимо перечислять несколько именпеременных одного типа – для каждой переменной должен быть явноуказан тип.Реализация функции всегда должна происходить после ее объявления.В ряде случаев (например когда вся программа состоит только из одногофайла), допускается не делать отдельных объявлений функций.Теперь некоторые пояснения к самой программе.

Любая программа наязыке С, состоит из одной или более "функций", указывающихфактические операции компьютера, которые должны быть выполнены. Посвоей сути, в функции перечисляется порядок действий, а также заводятсяпеременные для хранения данных.Функция с именем main – особенная. Именно выполнение этойфункции и происходит при запуске любой программы. Это означает, чтокаждая программа должна в каком-то месте содержать функцию с именемmain. Для выполнения определенных действий функция main обычнообращается к другим функциям, часть из которых находится в той жесамой программе, а часть - в библиотеках, содержащих ранее написанныефункции.Действия, выполняемые при обращении к функции, задает ее тело,которое выделяется фигурными скобками { }.

Структура определенияфункции имеет вид:Тип_результата Имя функции (список_параметров);Реализация функции происходит следующим образом:Тип_результата Имя_Функции (список_параметров){...}39Помните, что объявление (или реализация, если объявления несуществут) должно производится до того места, где функция вызывается!То есть если создается пользовательская функция, которая будетвызываться из функции main, то она должна быть описана до функцииmain.Если не указан тип возвращаемого значения, по умолчанию считается,что функция возвращает тип int.

Для возврата значения используетсякоманда return (она может быть выполнена в любом месте кода тела, новыполнение функции после этого заканчивается). Если функция невозвращает никаких значений, то используется специальный тип void.В качестве примера рассмотрим программу, в которой описанапользовательская функция для вычисления дискриминанта квадратногоуравнения, видаax 2 + bx + c = 0 :#include <iostream>using namespace std;double Discr_Calc(int a, int b, int c){double D;D = b*b - 4*a*c;return D;}void main(){40www.phys.nsu.ruint a, b, c;double D;a = 1;b = 5;c = 3;переменная с именем D является глобальной. При этом к ней обращаютсядве различные функции, для которых эта переменная является общей.#include <iostream>using namespace std;D = Discr_Calc(a, b, c);}double D = 0;cout << "D = " << D << endl;void Discr_Calc(int a, int b, int c){D = b*b - 4*a*c;}Функция может возвращать только одно значение.Обычно функции используются для написания более простых длячтения программ.

Так программа, которая содержит только функциюvoid main(){int a, b, c;a = 1; b = 5; c = 3;main(), состоящую из 13 окон теста, очень трудна для понимания, темболее сторонним человеком. Поэтому часто используется негласноесоглашение, что текст любой функции не должен превышать по размеруDiscr_Calc(a, b, c);cout << "D = " << D << endl;одного экрана — размера, которые человек может охватить взглядом. Привыборе имен функций программист также должен руководствоваться темпринципом, чтобы постороннему человеку стало интуитивно понятно, чтоделает функция.}2.10.2.Локальные переменныеЛокальные переменные обладают ограничением области видимости –2.10.

Локальные и глобальные переменныеони видны и доступны только внутри того блока, в котором они созданы.Все создаваемые в программе переменные, имеют определеннуюВажно помнить, что локальные переменные перестают существовать приобласть видимости. Для переменных выделяют две основных областивидимости: локальные и глобальные.выходе из блока, в котором они были объявлены.Блоками, ограничивающими видимость, могут являться функции, либопросто набор действий, выделенных в отдельное тело.2.10.1.Глобальные переменныеТаким образом, если бы в тесте предыдущей программы описатьфункцию вычисления дискриминантом следующим образом:Из названия этого класса переменных становится понятно, что онидоступны всем.

Под всеми подразумеваются все функции проекта.Для того чтобы переменная была глобальная, она должна бытьобъявлена вне функций. Ниже приведен текст программы, в которойvoid Discr_Calc(int a, int b, int c){double D;D = b*b - 4*a*c;}4142www.phys.nsu.ruТо в ней существует собственная локальная переменная D, котораяПеременные, перечисленные в списке параметров функции, такжеперестает существовать, как только исполнение программы выходит изявляются локальными для этой функции. Их отличие от описанных в телеэтой функции. Другими словами, локальные переменные перекрываютфункции только в том, что они будут гарантированно инициализированы кглобальные, в результате чего, выполнение описанный программы смоменту вызова функции.такими изменениями приведет к тому, что на экран всегда будетвыводиться НОЛЬ!Нижеприведенпримерещеоднойнеправильнонаписаннойпрограммы, которая не сможет быть даже скомпилирована.#include <iostream>using namespace std;void Discr_Calc(int a, int b, int c){D = b*b - 4*a*c;}void main(){int a, b, c;double D;a = 1;b = 5;c = 3;Discr_Calc(a, b, c);cout << "D = " << D << endl;}В приведенной программе ошибка заключается в том, что переменная сименем D определена в функции main(), и не существует за ее пределами.Таким образом, в функции Discr_Calc() происходит обращение кнесуществующей переменной D.4344www.phys.nsu.ru3.

Работа с динамической памятьюРабота с динамической памятью позволяет программисту решатьзадачи с неизвестным количеством исходных данных, позволяя добавлятьновые возможности в функционал программ.Основными понятиями для работы с динамической памятью являютсяуказатели и ссылки. Именно с помощью переменных этих типовПри определении указателя необходимо обозначать, на какой типданных указывает эта переменная. Здесь и далее при объявленииуказателей будем использовать символ «р» в названиях указателей. Этопозволит легко отличать в тексте программы указатели, от собственнопеременных. Примеры определения указателя и присваивания емузначения:int Ch = 14;int* pCh = NULL;pCh = &Ch;осуществляется управление памятью, ее выделение и освобождение.3.1.Указатели и работа с нимиКаждая переменная представляет собой именованный участок памятиПК, в котором хранится ее значение.

При этом, чтобы получить доступ кЧтобы получить значение, которое находится по указанному адресу,применяется операция разыменования – «*»:значению переменной, необходимо обратиться к ней по ее имени.int Ch = 14;int* pCh = &Ch;int a;a = 1;cout << *pCh;Для того чтобы получить значение адреса в памяти, по которому3.2.Арифметика указателей и массивынаходится значение конкретной переменной, необходимо произвестиВ языке С допустимы только две арифметические операции надунарную операцию разыменования &. Выражение &a позволяетуказателями: суммирование и вычитание.

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