Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » 04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4

04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (Лекция), страница 3

PDF-файл 04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (Лекция), страница 3 Системное программное обеспечение (СПО) (111678): Лекции - 5 семестр04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4 (Лекция) - PDF, страница 3 (111678) - СтудИзба2021-09-20СтудИзба

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

Файл "04_Использование_языков_высокого_уровня_Информ_материал_СПО_ч4" внутри архива находится в папке "Лекция". PDF-файл из архива "Лекция", который расположен в категории "". Всё это находится в предмете "системное программное обеспечение (спо)" из 5 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

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

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

Любая последовательность операторов вконструкции switch может быть отмечена одной или несколькими метками вида:case константное выражение:Последовательность операторов выполняется до оператора break. Если этот операторотсутствует, выполнение последовательности операторов продолжается до тех пор, покане встретится break (в другой метке) или не кончится тело оператора switch. Еслизначение выражения не совпадает ни с одним из константных выражений, то выполняетсяпереход к оператору, отмеченному меткой default:.

Эта метка может отсутствовать. Вэтом случае при отсутствии совпадений не выполняется ни один оператор.Операторы циклаOnepaтоp for (итерационный цикл)for (инициализация_цикла; выражение-условие; инкремент)оператор;Инициализация цикла, выражение-условие и инкремент могут быть любымивыражениями. Инициализация производится до входа в цикл. Последний выполняется дотех пор, пока проверка – TRUE. Инкрементирование происходит после каждоговыполнения оператора. Любое из этих трех выражений может отсутствовать, но точку сзапятой опускать нельзя. При отсутствии первого или третьего выражения считается, чтоих просто нет в конструкции цикла; при отсутствии второго выражения предполагается,что его значение как бы всегда истинно. Например,f o r ( ; ; ) { . . .

} // бесконечный цикл, который прерывается// каким-то другим способом (break)Там, где есть простая инициализация и пошаговое увеличение значения некоторойпеременной, больше подходит цикл for, т.к. в этом цикле организующая его частьсосредоточена в начале записи. Например, начало цикла, обрабатывающего первые nэлементов массива, имеет следующий вид: for (i = 0; i < n; i++).Оператор while (цикле предусловием)while (выражение-условие) оператор;Выполнение оператора повторяется до тех пор, пока выражение-условие – TRUE (отличноот нуля).

Проверка выражения осуществляется до первого выполнения оператора, так чтооператор не будет выполнен, если выражение исходно – FALSE.Оператор do ... while (цикл с постусловием)do {оператор;} while (выражение-условие);Оператор циклически выполняется до тех пор, пока выражение – TRUE. Значениевыражения проверяется после первого выполнения оператора, так что оператор всегдавыполняется, по крайней мере, один раз. Если оператор не является блоком, фигурныескобки не обязательны, но их часто ставят, чтобы оператор достаточно наглядноотделялся от выражения-условия.Операторы перехода (передачи управления)Оператор gotoИмеет вид:goto label;………..label:Выполнение немедленно передаётся от оператора goto к оператору, следующему засоответствующей меткой label.

Передача управления разрешена на любой отмеченныйоператор в теле функции.Оператор returnОператор возврата из функции имеет вид:return выражение; или return;Отнесение этого оператора к группе операторов перехода обусловлено тем, что онзаставляет программу перейти в точку вызова функции. Выражение присутствует только втом случае, когда функция возвращает значение. Внутри функции может присутствоватьпроизвольное количество операторов return.

Выход из функции происходит тогда, когдавстречается один из них.Операторы break и continueИмеют следующий вид:break;continue;Оператор break осуществляет выход из непосредственно его содержащего оператораwhile, do while, for или switch; управление передаётся на оператор, следующий заоператором, из которого осуществлён выход.Оператор continue прекращает выполнение текущей итерации ближайшегоохватывающего его цикла while, do while или for. Если условиями цикла допускаетсяновая итерация, то она выполняется, в противном случае цикл завершается.4.2.8.

Массивы и указателиМассивыМассив — это набор переменных (элементов) одного типа, расположенных внепрерывной области памяти (расположены подряд). Массивы могут быть одномернымии многомерными.Как определяется массив? Определение одномерного массива:тип_элементов_массива имя_массива[размер_массива];размер_массива — константное выражение, задающее количество элементов массива: поопределению имя массива является указателем-константой.При определении массива ему выделяется память, но после этого имя массивавоспринимается как константный указатель того типа, к которому отнесены элементымассива.

В языке Си элементы массива всегда нумеруются, начиная с нуля.Пример определения массива:int а[20]; // определяет массив из 20 элементов типа intДоступ к элементу массива осуществляется с помощью имени массива и индекса,заключенного в квадратные скобки после имени массива:имя_массива[индекс]Индексом может быть любое целое выражение, образуемое целыми переменными ицелыми константами. Например:а[0] … а[19]a[i]Как выполняется инициализация массивов?Массив можно инициализировать в его определении с помощью заключенного вфигурные скобки списка инициализаторов, разделенных запятыми. Например:int а[] = {0, 1,… , 9}; // неявная индексацияint a[10] = {0, 1, 2}; // инициализация первых трехДля определения размера массива a применяется команда sizeof a. Так, например,выражение (sizeof a) / (sizeof int) определяет количество элементов в массиве a.Строка — массив символов.Если размер массива не указан, то длину массива компилятор вычисляет по числузаданных инициализаторов; в нашем примере их равно 10.

Инициализация символьныхмассивов-строк особый случай: вместо конструктора с фигурными скобками и запятымиможно использовать строку символов:char string[] = “Строка - массив символов”;символьного массива на 1 больше числа символов//размерУказателиУказатель — это переменная, значением которой является адрес некоторого объекта(обычно другой переменной) в памяти.Определение указателя:тип_объекта *имя_указателя;Например:int *р;float *р;void *р;// указатель на тип intint↑pp+1 →||intp+2При увеличении на единицу указатель переместится к следующей переменной данноготипа.Как инициализировать (присвоить адрес указателю) указатель? Для этого используетсяунарный оператор &:Имя_указателя = &имя_объекта;Например:int х;р = &х;int *p = &x;Унарный оператор «*» есть оператор косвенного доступа. Он используется для получениязначения объекта, на который указывает (ссылается) указатель.*имя_указателя // косвенная адресацияВозвращает значение объекта, которому соответствует указатель имя_указателя.Примеры:*р = 1; // x = 1void *p; // указатель на переменную типа voidЕсли p указывает на переменную x соответствующего типа (кроме void), то указатель *pможно использовать в любом месте, где применимо x.*p = *p + 1; // x = x + 1++*p;(*p)++;p = q; // q — также указатель на тип int;//копируется содержимое самого указателяОперации с указателямиМожно производить следующие операции с указателями: присваивание значения указателя другому указателю того же типа; сложение и вычитание указателя и целого; вычитание и сравнение двух указателей, указывающих на элементы одного и тогоже массива; присваивание указателю нуля и сравнение указателя с нулем.Указатели и целые не являются взаимозаменяемыми.

Константа нуль — единственноеисключение из этого правила: ее можно присвоить указателю, и указатель можно сравнитьс ней. Чтобы показать, что нуль — это специальное значение указателя, вместо цифрынуль часто записывают NULL-константу, определенную в файле stdio.h.Преобразование типа указателяВ языке Си допускается присваивание указателя типа void * указателю любого другоготипа (и наоборот) без явного преобразования типа указателя.

Тип указателя void *используется, если тип объекта неизвестен. Например, использование типа void * вкачестве параметра функции позволяет передавать в функцию указатель на объект любоготипа, при этом сообщение об ошибке не генерируется. Также он полезен для ссылки напроизвольный участок памяти, независимо от размещенных там объектов.В отличие от void *, преобразование всех остальных типов указателей должны бытьвсегда явными, т.е.

должна быть указана операция приведения типов по следующейсхеме:(имя_типа_указателя)указательintПримеры:↑p||intp+1int i;int *pi = &i;s8 *ps; // 8-разрядное знаковое значениеu8 p1; // unsigned type (беззнаковый), 8-разрядныйint16_ti;int16_t *pi = &i;intS_t *ps;p1 = (u8 *)p;ps = (s8)*pi;ps = (intS_t *)pi;Связь между указателями и массивамиПримеры:int a[5]; // массив из пяти элементов типа inta[0] … a[4], где a[0] (или просто a) — адрес первогоэлемента массива ap = &a[0]; // p = a; // p+1 → a[1], p+i → a[i]*(p+i); // a[i]В Си имя массива передается функции всегда по ссылке (адрес начального элементамассива).char *pc;pc = “Это пример”; // это присваивание поместит в указатель//адрес на начальный символ строки4.2.9.

СтруктурыСтруктура — это совокупность переменных, в общем случае разных типов, объединенныхпод одним именем.Структуры могут копироваться, их можно передавать функции в качестве аргумента, афункции их возвращать в качестве результата.Как определяется структура?struct тег_структуры {тип имя_элемента_структуры;………………………………..тип имя_элемента_структуры;};struct {} x, y;struct тег_структуры x, y;При определении структуры за словом struct может следовать имя, называемое тегомструктуры. Тег дает название структуре данного типа и далее может служить краткимобъявлением той части структуры, которая заключена в фигурные скобки.

Если структураимеет тег, то этим тегом далее можно пользоваться при определении структурныхпеременных. Заключение в фигурные скобки обозначает элементы (поля) структуры.Объявление в структуры объявляет тип (пользовательский). За правой скобкой могутследовать переменные точно также как они могут быть указаны. Если в объявленииструктуры переменные отсутствуют, то память не выделяется.Примеры:struct point {int х;int у; };илиstruct point {int x;int y;} pt;struct point pt;struct rect {struct point pt1;struct point pt2;………………… };На тип элемента структуры ограничений нет. Поэтому структуры могут быть вложеныдруг в друга.Как инициализируется структура?Структурную переменную при ее определении можно инициализировать, формируясписок инициализаторов ее элементов в виде константных выражений:struct point maxpt = {320, 200};Как осуществляется доступ к элементам (членам, полям) структуры?Доступ к отдельному элементу структуры осуществляется посредством конструкции вида:имя_структурной_переменной.имя_элемента_структурыНапример:pt.x = 100;pt.y = 120;pp = &pt;struct point *pp; // указатель на структуру*pp → (*pp).x // *pp ↔ pt // *pp.xУказатели на структуры используются достаточно часто, поэтому для доступа к ееэлементам была придумана еще одна, более короткая форма записи.

Если р — указательна структуру, то:р->имя_элемента_структурыесть ее отдельный элемент.Например:рр->х;рр->у;++рр->х;Чтобы изменить порядок выполнения операций, нужны явные скобки. Например:(++рр)->х;(рр++)->х;4.2.10. ОбъединенияОбъединение — это переменная, которая может содержать (в разные моменты времени)объекты (переменные) различных типов и размеров. Фактически объединение — этоструктура, все элементы которой имеют нулевое смещение относительно ее базовогоадреса и размер которой позволяет поместиться в ней самому большому ее элементу, авыравнивание этой структуры удовлетворяет всем типам объединения.

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