ЛЕКЦИЯ 3. КЛАССЫ ХРАНЕНИЯ, СВЯЗЫВАНИЕ И УПРАВЛЕНИЕ ПАМЯТЬЮ

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "ЛЕКЦИЯ 3. КЛАССЫ ХРАНЕНИЯ, СВЯЗЫВАНИЕ И УПРАВЛЕНИЕ ПАМЯТЬЮ"

Транскрипт

1 ЛЕКЦИЯ 3. КЛАССЫ ХРАНЕНИЯ, СВЯЗЫВАНИЕ И УПРАВЛЕНИЕ ПАМЯТЬЮ Содержание 1. Область видимости Длительность хранения Связывание Классы хранения Автоматические переменные Регистерные переменные Статические переменные без связывания Статические переменные с внешним связыванием Статические переменные с внутренним связыванием Пример на пять классов хранения Область видимости Область видимости (ОВ) это одна или несколько областей программы, которые могут осуществлять доступ к идентификатору. Типы ОВ: блочная ОВ; ОВ функционального прототипа; файловая ОВ. Блочная ОВ используется в большинстве случаев. Блоком при этом называется фрагмент программного кода, заключённый в фигурные скобки, например, тело функции; составной оператор. Переменная, определённая внутри блока, имеет блочную ОВ. Такая переменная

2 доступна с той точки, в которой она определена, до конца блока. Локальные переменные, используемые для присваивания данных, включая формальные функциональные аргументы, имеют блочную ОВ. Пример 1. float f (float x) int i = 0; return i; for (i=0; i<n; i++) int count; count = i*20; Переменные с блочной ОВ должны быть объявлены в начале блока. Локальные переменные имеют приоритет. Пример 2. int main() int x=30; printf("%d\n", x); int x=77; printf("%d\n", x); printf("%d\n", x); while (x++ < 33) int x = 100; x++; printf("%d\n", x);

3 Приведённому выше коду будет соответствовать следующий вывод: ОВ функционального прототипа применяется по отношению к прототипам функций. Простирается от места определения функции до конца прототипа (существенно для передачи массивов переменной длины). Переменная, размещённая вне какого-либо блока, имеет файловую ОВ. Такие переменные могут применяться в нескольких функциях, они носят название глобальных переменных. Для использования глобальных переменных в функции необходимо объявить об этом при помощи ключевого слова extern. 2. Длительность хранения Различают статическую и динамическую длительность хранения. При статической длительности хранения переменные существуют во время выполнения всей программы. Чаще всего это переменные с файловой ОВ. Статические переменные объявляются при помощи ключевого слова static. Переменные с динамической длительностью хранения существуют только во вре

4 мя вызова блока, в котором объявляется переменная. Рассмотрим разницу между статическими и динамическими переменными на примере. Пример 3. #include<stdio.h> int plus1 (void) int plus2 (void) int main() int i,x; printf("call to plus1\n"); for (i=0; i<3; i++) x=plus1(); printf ("%d\n", x); printf("call to plus2\n"); for (i=0; i<3; i++) x=plus2(); printf ("%d\n", x); int plus1(void) int x=0; x++; return x; int plus2(void) static int x=0; x++; return x; На стандартный вывод будет выведена следующая информация:

5 call to plus call to plus Связывание Различают внешнее (используемое во всей программе), внутреннее (используемое только в пределах одного файла) связывание и отсутствие связывания (для блочных ОВ и ОВ функционального прототипа). Если встречается несколько объявлений, имеющих одинаковый идентификатор и описывающих объект, то все эти объявления в случае внешней связи относятся к одному объекту уникальному для всей программы. Если связь внутренняя, то свойство уникальности распределяется только на единицу трансляции. Примечание: если первое внешнее объявление объекта имеет спецификатор static, то оно описывает идентификатор с внутренней связью, если спецификатора нет то со внешней связью. Пример 4. int first =1;

6 static int second =3; int main(). 4. Классы хранения ОВ, тип связывания и длительность хранения формируют класс хранения. Существуют пять классов хранения: Класс хранения Длительность хранения Область видимости Связывание automatic автоматическая блочная нет в блоке Определение register автоматическая блочная нет в блоке с register static с внешним связыванием static с внутренним связыванием static без связывания статическая файловая внешнее статическая файловая внутреннее внешнее для всех функций, со static статическая блочная нет в блоке со static 4.1. Автоматические переменные Автоматическими переменными, по умолчанию, являются любые переменные, описанные в блоке или заголовке функции. Для описания таких переменных возможно использование ключевого слова auto. Особенности автоматических переменных: 1. Только блок, в котором определена переменная, может обеспечить доступ к переменной по имени.

7 2. Когда программа покидает блок, автоматическая переменная уничтожается. 3. Автоматические переменные не инициализируются до тех пор, пока эта операция не будет выполнена явно. Пример 5. int loop (int n) int m; // начало ОВ переменной m scanf("%d", &m); int i; // начало ОВ i for (i=0; i<m; i++) printf ("%d\n",i); // конец ОВ i return m; // конец ОВ переменной m 4.2. Регистерные переменные Регистерные переменные хранятся в регистрах ЦП. Ключевое слово для их объявления register Статические переменные без связывания ОВ таких переменных совпадает с ОВ автоматических переменных, но данные переменные не исчезают в случае завершения выполнения содержащей их функции. Значения сохраняются в промежутках между вызовами функции, до завершения работы программы. С помощью таких переменных можно, например, подсчитывать число вызовов функции.

8 4.4. Статические переменные с внешним связыванием - это глобальные (внешние) переменные. Для их использования внутри каждой функции обязательно должно приводиться ключевое слово extern. Пример 6. int a; float b; void next (void); int main() extern int a; // определение связь // доп.объявление Переменные с внешним связыванием имеют пониженные приоритет. Пример 7. // 1. Одна внешняя переменная z. int z; int pt(void); int main (void) extern int z; int pt(void) extern int z; // 2. Одна внешняя переменная z. int z; int pt(void);

9 int main (void) extern int z; int pt(void)... // extern отсутствует, но z известна по умолчанию // 3. Несколько внешних переменных. int z; int pt(void); int main (void) extern int z; int z2; // z2 не известна функции main() int pt(void) extern int z2; 4.5. Статические переменные с внутренним связыванием Определяются вне какой-либо функции, спецификатор класса static. Пример 8. static int i =1; int main (void)... Различие между внутренним и внешним связыванием важно только в том случае, когда программа построена на основе нескольких файлов.

10 4.6. Пример на пять классов хранения // ФАЙЛ 1.c #include<stdio.h> void rep(); void new (int ); int с =0; // файловая ОВ, внешнее связывание int main() int value; register int i; while (scanf("%d", &value) == 1 && value >0) ++c; for (i=value; i>=0; i--) new (i); rep(); return 0; // ФАЙЛ 2.c #include<stdio.h> extern int с; static int e =0; void new (int k) // k блочная ОВ, без связывания static int subc=0; // стат., без связывания if (k<=0) printf ("%d", k); else subc+=k; e+=k;


4.13. Строки. 10 символов char string[11]; "строка в кавычках" Строковая константа - char str[ ] = Counted by compiler! ;

4.13. Строки. 10 символов char string[11]; строка в кавычках Строковая константа - char str[ ] = Counted by compiler! ; -одномерные массивы типа char, заканчивающийся нулевым байтом - '\0 или '\x0 10 символов char string[11]; 4.13. Строки Строковая константа - "строка в кавычках" добавляется '\0 char str[ ] = Counted by

Подробнее

Язык программирования JAVA (II)

Язык программирования JAVA (II) Язык программирования JAVA (II) Как программировать на java Исходный файл на языке Java - это текстовый файл, содержащий в себе одно или несколько описаний классов. Транслятор Java предполагает, что исходный

Подробнее

Тема 1.1 Функции в С. Понятие функции

Тема 1.1 Функции в С. Понятие функции Тема 1.1 Функции в С Понятие функции Опыт показывает, что для написания больших программ лучше пользоваться функциями. В таком случае программа будет состоять из отдельных фрагментов кода. Такой отдельный

Подробнее

ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ ПРОГРАММИРОВАНИЕ/ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Лекция 2 Время жизни и области видимости программных объектов (весенний семестр 2012 г.) Доцент Кафедры вычислительных систем, к.т.н. Поляков Артем Юрьевич Характеристики

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на языках Лекция 17. Стандарты и реализации Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Основные стандарты и реализации Язык

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 6

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 6 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016 Лекция 6 1 Область действия переменной и классы памяти #include int count; /* глобальная переменная */ void func (void) { int count;

Подробнее

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Имена, связывание, области видимости 1 Время связывания 2 3 Статические области видимости Динамические области видимости Имя, область видимости и связывание Имя

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 14

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 14 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 14 1 Препроцессор: операции # и ## Операция # позволяет получить строковое представление аргумента #define FAIL(op) \ do { \ fprintf

Подробнее

Содержание: указатели массивы и указатели динамическое размещение массивов глобальные переменные

Содержание: указатели массивы и указатели динамическое размещение массивов глобальные переменные Тема : знакомство с С (Си) УКАЗАТЕЛИ и МАССИВЫ (динамическое размещение) Содержание: указатели массивы и указатели динамическое размещение массивов глобальные переменные Указатели Указатель это адрес памяти,

Подробнее

Теория и технология программирования Основы программирования на языках C и C++

Теория и технология программирования Основы программирования на языках C и C++ Теория и технология программирования Основы программирования на Лекция 13. Области действия и времена жизни Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Основные понятия Область действия

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2017/2018. Лекция 9

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2017/2018. Лекция 9 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2017/2018 Лекция 9 1 Указатели и аргументы функций Используя аргументы-указатели, функция может обращаться к объектам вызвавшей ее функции. Использование

Подробнее

Вопросы для самопроверки

Вопросы для самопроверки Вопросы для самопроверки Программирование на языке С 11 ноября 2014 г. Лекция 1. Вводная 1. Какие существуют аспекты разработки ПО? Подходы к разработке? 2. Какие признаки характеризуют любительский подход?

Подробнее

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ 2 ВОПРОСЫ Назовите основные отличия синтаксиса С от синтаксиса С++: Методы ввода-вывода? Описание переменных? Области видимости? Как реализуется принцип инкапсуляции

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Алгоритмизация и программирование Программирование на С/С++ (ч.12 указатели) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Указатели Указатель переменная, значением

Подробнее

Алгоритмизация и программирование Программирование на С/С++ (ч.7 функции)

Алгоритмизация и программирование Программирование на С/С++ (ч.7 функции) Алгоритмизация и программирование Программирование на С/С++ (ч.7 функции) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Функции в С/С++ Опытные программисты знают,

Подробнее

Алгоритмизация и программирование Программирование на С/С++ (ч.7 функции)

Алгоритмизация и программирование Программирование на С/С++ (ч.7 функции) Алгоритмизация и программирование Программирование на С/С++ (ч.7 функции) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Функции в С/С++ Опытные программисты знают,

Подробнее

1. Определение пространства имен 2. Анонимные пространства имен

1. Определение пространства имен 2. Анонимные пространства имен Лекция 16 Тема: Пространства имен План: 1. Определение пространства имен 2. Анонимные пространства имен 3. Стандартное пространство имен 4. Оператор разрешения области видимости 5. Объявление using 6.

Подробнее

Сборка программы на языке C

Сборка программы на языке C А. Г. Фенстер, fenster@fenster.name 9 февраля 2010 г. 1 Сборка программы из нескольких файлов Программы на языке C обычно состоят из нескольких файлов с исходным кодом. Рассмотрим этапы сборки программы

Подробнее

Язык Си. Реализация списков с помощью цепочек динамических объектов

Язык Си. Реализация списков с помощью цепочек динамических объектов Язык Си. Реализация списков с помощью цепочек динамических объектов А. А. Вылиток В языке Си нет встроенных типов данных и операций для работы со списками. Программируя на языке Паскаль (в котором также

Подробнее

Семантический анализ

Семантический анализ Семантический анализ 2 Семантический анализ Размер Функция? Значение Х Время жизни Выделение памяти 3 Семантический анализ Размер Функция? Х Значение Число Символ Логическое значение Строка Составное значение

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 5

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 5 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 5 1 Первая программа на Си #include int main (void) { printf ("Hello, world\n"); return 0; } Программа: объявления переменных

Подробнее

Пользовательские функции. Пользовательская функция; Область видимости переменной: локальные и глобальные переменные.

Пользовательские функции. Пользовательская функция; Область видимости переменной: локальные и глобальные переменные. Пользовательские функции Пользовательская функция; Область видимости переменной: локальные и глобальные переменные. (с) Чирюкина, 2007 Понятие функции При работе ранее Вам уже встречались некоторые функции,

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 12

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 12 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 12 1 Ключевое слово inline: встраиваемые функции (C99) #include inline static int max (int a, int b) return a > b? a : b; int

Подробнее

Алгоритм-я и основы програм-я_рус_4кр_зим_шайдуллина Т_ВТиПО(2к4г очн)

Алгоритм-я и основы програм-я_рус_4кр_зим_шайдуллина Т_ВТиПО(2к4г очн) Алгоритм-я и основы програм-я_рус_4кр_зим_шайдуллина Т_ВТиПО(2к4г очн) 1 Преобразование целочисленной переменной value в ASCII эквивалент 2 Это значение 5.9875e17 может быть сохранено в переменной, типа:

Подробнее

Функции ref out определении вызове Main()

Функции ref out определении вызове Main() Функции Функции представляют собой блоки кода, позволяющие выполнять одни и те же операции над различными значениями данных. Функции определяются один раз и могут вызываться из любой точки приложения.

Подробнее

Инженерный класс. Информатика. 11-й класс. Диагностическая работа 1. Демонстрационный вариант

Инженерный класс. Информатика. 11-й класс. Диагностическая работа 1. Демонстрационный вариант Инженерный класс. Информатика. 11-й класс Образовательная организация Класс Фамилия, И.О. Диагностическая работа 1 Демонстрационный вариант На выполнение работы отводится 90 минут. Для заданий 1-5 ответ

Подробнее

Дополнительная общеразвивающая программа

Дополнительная общеразвивающая программа МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего образования «Саратовский государственный технический университет имени Гагарина

Подробнее

Концепции языков программирования

Концепции языков программирования Распределение памяти Распределение памяти 1 Статическое выделение пямяти 2 3 Распределение памяти 1 Статическое выделение пямяти 2 3 Статическое выделение пямяти Выделение памяти на этапе загрузки программы

Подробнее

Инструкции C++ May 25, А.И. Гуда. Кафедра ИТС НМетАУ c C++ Statements / Инструкции C++

Инструкции C++ May 25, А.И. Гуда. Кафедра ИТС НМетАУ c C++ Statements / Инструкции C++ Инструкции C++ Это произведение доступно по лицензии Creative Commons Attribution-ShareAlike ( Атрибуция На тех же условиях ) 3.0 Непортированная. http://creativecommons.org/licenses/by-sa/3.0/deed.ru

Подробнее

ООП. С++. Вопросы для проверки и закрепления знаний. 7. Проанализируйте ранее разработанные Вами программы

ООП. С++. Вопросы для проверки и закрепления знаний. 7. Проанализируйте ранее разработанные Вами программы ООП. С++. Вопросы для проверки и закрепления знаний. 1. Проанализируйте ранее разработанные Вами программы и ответьте на вопрос: в каких из них наблюдается слабая связь между структурой данных и функционированием

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 11

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 11 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 11 1 Массивы указателей Указатели могут быть собраны в массив: int *mu[27]; /* это массив из 27 указателей на int */ int (*um)[27]; /*

Подробнее

Функции в языке высокого уровня

Функции в языке высокого уровня Функции в языке высокого уровня Учебные и воспитательные цели 1. Дать основные сведения о функциях в языке С++. 2. Изучить механизм передачи данных в функцию. Учебные вопросы 1. Метод структурного программирования.

Подробнее

Лекция 2. Как выполняются программы на C++

Лекция 2. Как выполняются программы на C++ http://compscicenter.ru 1/21 Лекция 2. Как выполняются программы на C++ Александр Смаль CS центр 15 сентября 2016 Санкт-Петербург http://compscicenter.ru 2/21 Типы данных Целочисленные: 1. char (символьный

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 6

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 6 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 6 1 Типы данных Представление целых чисел: позиционная двоичная система Байты в представлении числа идут подряд Порядок байт не гарантируется,

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 8

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 8 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017 Лекция 8 1 Указатели & - операция адресации * - операция разыменования int a = 1; int *p; p = &a; *p = 2; printf ("Значение переменной a = %d\n",

Подробнее

#define <name> <text>

#define <name> <text> 1 Занятие 9 1.1 Препроцессор Препроцессирование это специальный просмотр исходного файла на языке Си, в ходе которого выполняются специальные директивы (директивы препроцессора) и производится макроподстановка

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Алгоритмизация и программирование Программирование на С/С++ (ч.12 указатели) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Указатели Указатель переменная, значением

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Алгоритмизация и программирование Программирование на С/С++ (ч.12 указатели) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://berkut.homelinux.com Указатели Указатель переменная, значением

Подробнее

Курс «Алгоритмы и алгоритмические языки» Лекции 4-5

Курс «Алгоритмы и алгоритмические языки» Лекции 4-5 Курс «Алгоритмы и алгоритмические языки» Лекции 4-5 1 Первая программа на Си #include int main (void) printf ("Hello, world\n"); return 0; Программа: объявления переменных или функций определения

Подробнее

Инструкции C++ February 28, А.И. Гуда. Кафедра ИТС НМетАУ c C++ Statements / Инструкции C++

Инструкции C++ February 28, А.И. Гуда. Кафедра ИТС НМетАУ c C++ Statements / Инструкции C++ Инструкции C++ Это произведение доступно по лицензии Creative Commons Attribution-ShareAlike ( Атрибуция На тех же условиях ) 3.0 Непортированная. http://creativecommons.org/licenses/by-sa/3.0/deed.ru

Подробнее

АЛГОРИТМЫ И АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ: СТИЛЬ КОДИРОВАНИЯ

АЛГОРИТМЫ И АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ: СТИЛЬ КОДИРОВАНИЯ АЛГОРИТМЫ И АЛГОРИТМИЧЕСКИЕ ЯЗЫКИ: СТИЛЬ КОДИРОВАНИЯ СМИРНОВ П. О. 2 сентября 2015 г. ВВЕДЕНИЕ Для того чтобы считаться хорошим программистом или хотя бы просто человеком, умеющим программировать, недостаточно

Подробнее

Указатели, функции и работа с файлами в C. Лекция 7 Информатика

Указатели, функции и работа с файлами в C. Лекция 7 Информатика Указатели, функции и работа с файлами в C Лекция 7 Информатика Типизированные указатели char *c; // указатель на char int *i, j; // указатель на int и просто int i=&j; // i присвоить адрес j *i=1; // разыменованный

Подробнее

Ключевые слова языка С#

Ключевые слова языка С# 1 abstract, см. также 11, 55 2 as, см. также 37 Ключевые слова языка С# Модификатор abstract используется при объявлении класса, метода или свойства. Использование модификатора abstract в объявлении класса

Подробнее

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ УКАЗАТЕЛЬ THIS УКАЗАТЕЛЬ THIS Всякий раз, когда вызывается метод класса, ему автоматически передается указатель на объект, вызывающий данный метод. Можно получить

Подробнее

Программирование в C++ Преподаватель Колотова Людмила Павловна

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 4-го занятия по практике Работа с функциями. Простые и библиотечные функции Передача аргументов в функцию Значение, возвращаемое

Подробнее

времени выполнения) компилирует ее содержимое в машинный код

времени выполнения) компилирует ее содержимое в машинный код 1. Объектно-ориентированное программирование 1 1.1. Введение в.net и С# Microsoft.NET это платформа для разработки прикладных программ, основанная и ориентированная на Интернет..NET основывается на двух

Подробнее

ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ

ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ 1. Массивы Массив это набор однородных элементов фиксированной длины. Память для массивов выделяется одним куском. При инициализации массива записывается тип элементов массива,

Подробнее

Лекция 8. Базовые элементы языков программирования

Лекция 8. Базовые элементы языков программирования Лекция 8. Базовые элементы языков программирования Переменные Структуры управления Последовательность Выбор Цикл Подпрограммы Базовые элементы ЯП Переменные В императивных языках переменная это поименованная

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2014/2015. Лекция 7

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2014/2015. Лекция 7 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2014/2015 Лекция 7 1 Массивы Массивы позволяют организовывать непрерывные последовательности нескольких однотипных элементов и обращаться к ним по номеру

Подробнее

4. Понятие класса. Программа 7. Класс Box

4. Понятие класса. Программа 7. Класс Box 4. Понятие класса Класс определяет новый тип данных, используя который можно определять переменные этого типа, которые называются объектами или экземплярами класса. Объявление класса имеет вид: class classname

Подробнее

МАССИВЫ В ЯЗЫКЕ C# тип [] имя; new тип [размер];

МАССИВЫ В ЯЗЫКЕ C# тип [] имя; new тип [размер]; МАССИВЫ В ЯЗЫКЕ C# Массив - это составной объект, состоящий из элементов одного типа. Простейшей разновидностью массива является одномерный массив, который можно рассматривать как информационную модель

Подробнее

Структура программ, управление

Структура программ, управление 46 В.Л. Тарасов Лекции по программированию на C++ Лекция 3 Структура программ, управление 3.1. Состав программы Программа на языке C++ состоит из функций и переменных. Среди функций любой программы должна

Подробнее

ПЕРЕМЕННЫЕ И КОНСТАНТЫ

ПЕРЕМЕННЫЕ И КОНСТАНТЫ ПЕРЕМЕННЫЕ И КОНСТАНТЫ Переменные Основной способ сохранения информации в ходе выполнения программы PHP состоит в использовании переменных; этот способ предусматривает выбор некоторого имени переменной

Подробнее

ЛЕКЦИЯ 5 ДИНАМИЧЕСКИЕ МАССИВЫ И ПРИМЕРЫ РАБОТЫ С УКАЗАТЕЛЯМИ

ЛЕКЦИЯ 5 ДИНАМИЧЕСКИЕ МАССИВЫ И ПРИМЕРЫ РАБОТЫ С УКАЗАТЕЛЯМИ ЛЕКЦИЯ 5 ДИНАМИЧЕСКИЕ МАССИВЫ И ПРИМЕРЫ РАБОТЫ С УКАЗАТЕЛЯМИ 1. Функция суммирования элементов массива 1.1. Реализация функции суммирования без использования указателей Имеется массив a из 5 элементов.

Подробнее

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год.

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год. Лекция 8 Массивы и указатели 8.1. Указатели 8.1.1. Организация памяти в компьютере массив последовательно пронумерованных (адресуемых) ячеек, которые можно обрабатывать по отдельности, либо группами. Указатель

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 8

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 8 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016 Лекция 8 1 Символьный тип данных (char) Символьные данные представляются в некотором коде. Популярным кодом является ASCII (American Standard

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 7

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 7 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016 Лекция 7 1 Преобразование типов При присваивании: a = b Широкий целочисленный тип в узкий : отсекаются старшие биты Знаковый тип в беззнаковый:

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 7

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 7 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017 Лекция 7 1 Пример программы. Количество дней между двумя датами int main (void) while (1) int m1, d1, y1, m2, d2, y2; int t1, t2; int days1,

Подробнее

MATHCAD ЭКСПРЕСС-КУРС

MATHCAD ЭКСПРЕСС-КУРС MATHCAD ЭКСПРЕСС-КУРС Mathcad программный пакет для выполнения разнообразных математических и технических расчетов 1 Начало работы в пакете Mathcad Окно программы выглядит так: Рисунок 1 Оно программы

Подробнее

Ñîäåðæàíèå Предисловие Предисловие к первому изданию Введение Глава 1. Вводный урок Глава 2. Типы данных, операции и выражения

Ñîäåðæàíèå Предисловие Предисловие к первому изданию Введение Глава 1. Вводный урок Глава 2. Типы данных, операции и выражения Ñîäåðæàíèå Предисловие 11 Предисловие к первому изданию 13 Введение 15 Глава 1. Вводный урок 19 1.1. Первые шаги 19 1.2. Переменные и арифметические выражения 22 1.3. Оператор for 27 1.4. Символические

Подробнее

Языки и методы программирования. Электронные тесты промежуточного контроля знаний

Языки и методы программирования. Электронные тесты промежуточного контроля знаний МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ имени академика

Подробнее

Объектно-ориентирован- ное программирование на языке Java

Объектно-ориентирован- ное программирование на языке Java Объектно-ориентирован- ное программирование на языке Java Часть 4. Использование объектов в Java Yevhen Berkunskyi, NUoS eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Инициализация и очистка Многие

Подробнее

Программы из нескольких файлов

Программы из нескольких файлов 102 В.Л. Тарасов Лекции по программированию на C++ Лекция 8 Программы из нескольких файлов Как правило, исходные тексты программ на C++ размещают в нескольких файлах. Это удобно, так как небольшой код

Подробнее

СОДЕРЖАНИЕ ПРИЛОЖЕНИЕ 2. ОБЗОР БИБЛИОТЕКИ ФУНКЦИЙ ЯЗЫКА С ЛИТЕРАТУРА

СОДЕРЖАНИЕ ПРИЛОЖЕНИЕ 2. ОБЗОР БИБЛИОТЕКИ ФУНКЦИЙ ЯЗЫКА С ЛИТЕРАТУРА СОДЕРЖАНИЕ 1 ГЛАВА 1. ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С... 2 1.1 ОБЗОР ЯЗЫКА C... 2 1.2. ТИПЫ ДАННЫХ, ПЕРЕМЕННЫЕ И КОНСТАНТЫ... 5 1.3. ОПЕРАТОРЫ И ВЫРАЖЕНИЯ... 13 1.4. ОПЕРАТОРЫ УПРАВЛЕНИЯ ПРОГРАММОЙ... 22 1.5.

Подробнее

Лабораторная работа 7 Тема. Организация процедур. Использование процедур. Цель работы: 1. Приобретение практических навыков работы в среде

Лабораторная работа 7 Тема. Организация процедур. Использование процедур. Цель работы: 1. Приобретение практических навыков работы в среде Лабораторная работа 7 Тема. Организация процедур. Использование процедур. Цель работы: 1. Приобретение практических навыков работы в среде программирования PascalABC; 2. Формирование совокупности знаний

Подробнее

ИНФОРМАТИКА, 11 класс Демонстрационный вариант, март Сколько единиц в двоичной записи восьмеричного числа 752 8?

ИНФОРМАТИКА, 11 класс Демонстрационный вариант, март Сколько единиц в двоичной записи восьмеричного числа 752 8? Демонстрационный вариант работа по ИНФОРМАТИКЕ и ИКТ Инструкция по выполнению работы На выполнение краевой диагностической работы по математике дается 45 минут. Работа состоит из тринадцати заданий. Задания

Подробнее

МГТУ МИРЭА. КУРСОВОЙ ПРОЕКТ по дисциплине «Процедурное программирование»

МГТУ МИРЭА. КУРСОВОЙ ПРОЕКТ по дисциплине «Процедурное программирование» МИНОБРНАУКИ РОССИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Московский государственный технический университет радиотехники, электроники и

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014. Лекция 14

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014. Лекция 14 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014 Лекция 14 1 Динамические структуры данных Стек (stack) это динамическая последовательность элементов, количество которых изменяется, причем

Подробнее

Лабораторная работа 10 Двумерные массивы

Лабораторная работа 10 Двумерные массивы Лабораторная работа 10 Двумерные массивы Кроме последовательностей элементов одного типа, рассмотренных в предыдущей лабораторной работе, в математике и в программировании также встречаются так называемые

Подробнее

Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы.

Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы. Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы. 1. Статическая (static) переменная класса Добавим в определение класса статическую переменную: private: // double x;

Подробнее

ЛАБОРАТОРНАЯ РАБОТА 29 Создание приложения с разветвленным меню. Динамические массивы

ЛАБОРАТОРНАЯ РАБОТА 29 Создание приложения с разветвленным меню. Динамические массивы ЛАБОРАТОРНАЯ РАБОТА 29 Создание приложения с разветвленным меню. Динамические массивы Цели: научиться применять указатели; научиться работать с динамическими массивами; закрепить умение по обработке ошибок;

Подробнее

Структуры в языке C.

Структуры в языке C. Структуры в языке C. Прежде чем говорить о структурах, вспомним массивы. Как вы, наверное, помните, массивы предназначены для хранения однотипных данных. Другими словами каждый элемент массива представляет

Подробнее

спецификатор-типа описатель [константное - выражение];

спецификатор-типа описатель [константное - выражение]; Тема : знакомство с С (Си) МАССИВЫ и ФУНКЦИИ, упражнение Содержание: массивы упражнение Массивы Массивы - это группа элементов одинакового типа (double, float, int и т.п.). Из объявления массива компилятор

Подробнее

Теоретические вопросы

Теоретические вопросы МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» Спеціальність 6.040301 Прикладна математика Дисципліна «Програмування» Модульна контрольна робота

Подробнее

Курс «Алгоритмы и алгоритмические языки» Лекция 9

Курс «Алгоритмы и алгоритмические языки» Лекция 9 Курс «Алгоритмы и алгоритмические языки» Лекция 9 1 Рекурсия В языке Си функция может быть рекурсивной, т.е. вызывать саму себя: int fibrec (int n) { if (n == 1 n == 2) return 1; else return fibrec (n

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 17

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 17 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 17 1 Алгоритм Кнута Морриса Пратта. Идея Префикс-функция, ассоциированная с образцом P, показывает, где в строке P повторно встречаются

Подробнее

СОДЕРЖАНИЕ. Часть I. Основы 59

СОДЕРЖАНИЕ. Часть I. Основы 59 СОДЕРЖАНИЕ Введение 18 Для кого написана эта книга 19 Изменения в пятом издании 20 Соглашения, принятые в книге 21 От издательства 24 Глава 1. Первые шаги 25 1.1. Создание простой программы на языке C++

Подробнее

Содержание: SWITCH BREAK FOR WHILE DO WHILE CONTINUE упражнения

Содержание: SWITCH BREAK FOR WHILE DO WHILE CONTINUE упражнения Тема : знакомство с С (Си) SWITCH, BREAK, FOR, WHILE, DO WHILE, CONTINUE, упражнения Содержание: SWITCH BREAK FOR WHILE DO WHILE CONTINUE упражнения Оператор SWITCH Оператор switch предназначен для организации

Подробнее

Значение переменной в памяти. Память. Аргументы функции: вызовы по значению (by value) и по ссылке (by reference)

Значение переменной в памяти. Память. Аргументы функции: вызовы по значению (by value) и по ссылке (by reference) Тема : знакомство с С (Си). Рекурсия и стеки (продолжение) Содержание: указатели, аргументы функции, доступ к элементам массива через указатели, рекурсия, разделение программы на файлы, упражнение 1, упражнение

Подробнее

Алгоритмы, структуры данных и прогр-ие_рус_3рк_зим_шайдуллина_ис(2к3,4г очн)

Алгоритмы, структуры данных и прогр-ие_рус_3рк_зим_шайдуллина_ис(2к3,4г очн) Алгоритмы, структуры данных и прогр-ие_рус_3рк_зим_шайдуллина_ис(2к3,4г очн) Автор теста: Шайдуллина Динара Ташеновна Название курса: Алгоритмы, структуры данных и программирование Название теста: Алгоритмы,

Подробнее

Семинар 4. Дружественные функции. Перегрузка операторов. Динамическое распределение памяти.

Семинар 4. Дружественные функции. Перегрузка операторов. Динамическое распределение памяти. Семинар 4. Дружественные функции. Перегрузка операторов. Динамическое распределение памяти. 1. Дружественные функции Дружественные функции обладает такими же правами доступа к данным класса, как и его

Подробнее

Единичное наследование

Единичное наследование Единичное наследование Конструкторы, деструкторы и operator= не наследуются!!! class < имя derived-cl > : < способ наследования > < имя base-cl > {... Пример: struct A { int x; int y; struct B : A { int

Подробнее

Модульное программирование

Модульное программирование Дисциплины "ЯЗЫКИ ПРОГРАММИРОВАНИЯ" "ПРОГРАММИРОВАНИЕ" Модульное программирование Преподаватель: Перышкова Евгения Николаевна Подпрограмма Уже в первом программируемом компьютере (аналитической машине

Подробнее

Содержание. Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20

Содержание. Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20 Содержание Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20 Что такое язык программирования?...20 В чем различие между C и C++?.........................................21 Обязательно

Подробнее

enum traffic_light { green, yellow, red }; enum traffic_light light = red; enum a { c1, c2 }; enum b { c3 }; enum a a; int f() { enum a b = c1;

enum traffic_light { green, yellow, red }; enum traffic_light light = red; enum a { c1, c2 }; enum b { c3 }; enum a a; int f() { enum a b = c1; 1 Занятие 5 1.1 Перечислимые типы Язык Си имеет средства для определения перечислимых типов. В общем виде объявление перечислимых типов выглядит следующим образом: например, enum {

Подробнее

Обобщения. Основные понятия

Обобщения. Основные понятия Обобщения. Основные понятия Термин «обобщение», по существу, означает параметризированный тип. Особая роль параметризированных типов состоит в том, что они позволяют создавать классы, структуры, интерфейсы,

Подробнее

Язык программирования Си

Язык программирования Си Язык программирования Си Бикулов Д.А., Иваницкая Н.В., Иванов А.П. Семинар 4. Функции, передача параметров по значению. Рекурсия. Глобальные и статические переменные, правила видимости переменных. Модульный

Подробнее

Элементы Языка СИ... 4 Используемые символы... 4 Константы... 4 Идентификатор... 6 Ключевые слова... 6 Использование комментариев в тексте

Элементы Языка СИ... 4 Используемые символы... 4 Константы... 4 Идентификатор... 6 Ключевые слова... 6 Использование комментариев в тексте Элементы Языка СИ... 4 Используемые символы... 4 Константы... 4 Идентификатор... 6 Ключевые слова... 6 Использование комментариев в тексте программы... 7 Типы данных и их объявление... 7 Категории типов

Подробнее

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ. Наследование в языке C++

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ. Наследование в языке C++ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ Наследование в языке C++ НАСЛЕДОВАНИЕ 2 3 НАСЛЕДОВАНИЕ Наследование упорядочивает и ранжирует классы Механизм наследования классов позволяет строить иерархии,

Подробнее

Курс «Алгоритмы и алгоритмические языки» Лекция 6

Курс «Алгоритмы и алгоритмические языки» Лекция 6 Курс «Алгоритмы и алгоритмические языки» Лекция 6 1 Символьный тип данных (char) Программа подсчета числа строк во входном потоке #include int main (void) { } int c, nl = 0; while ((c = getchar())!=

Подробнее

Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине

Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине Общие сведения 1. Кафедра Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине 2. Направление подготовки 3. Дисциплина 4. Тип заданий 5. Количество этапов формирования

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 9

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 9 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 9 1 Массивы Массивы позволяют организовывать непрерывные последовательности нескольких однотипных элементов и обращаться к ним по номеру

Подробнее

Задания C2 по информатике

Задания C2 по информатике Задания C2 по информатике 1. Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 1000 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм,

Подробнее

С++ Перечисления. Одномерные массивы

С++ Перечисления. Одномерные массивы С++ Перечисления Одномерные массивы Лекция #3 Пустовалова О.Г. доцент. каф. мат.мод. ИММиКН ЮФУ 2 Содержание Перечисления С++ 98 Перечисления С++ 11 Одномерные статические массивы Передача массива в функцию

Подробнее

Лекция 3. Операции и функции свободной памяти

Лекция 3. Операции и функции свободной памяти Название Лекция 3. и функции свободной памяти Проектирование ПО на C ++ 25 сентября 2010 г. Лекция 3 1 / 33 Объявления функций, использующих исключения Реализация функций выделения памяти Реализация обработчика

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014. Лекция 13

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014. Лекция 13 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2013/2014 Лекция 13 1 Препроцессор: операции # и ## Операция ## позволяет объединить фактические аргументы макроса в одну строку java-opcodes.h: enum

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 18

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019. Лекция 18 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2018/2019 Лекция 18 1 Организация стека как библиотеки stack.h: extern void push (char); extern char pop (void); extern int isempty (void); stack.c: #include

Подробнее

Лабораторная работа 2 Разработка и отладка алгоритмов и программ с использованием указателей

Лабораторная работа 2 Разработка и отладка алгоритмов и программ с использованием указателей Лабораторная работа 2 Разработка и отладка алгоритмов и программ с использованием указателей 1. ЦЕЛЬ РАБОТЫ: приобретение практических навыков работы с указателями. 2. ОСНОВНЫЕ ПОНЯТИЯ Указатель это переменная,

Подробнее

Язык программирования Си

Язык программирования Си Язык программирования Си Алфавит языка Си прописные и строчные буквы латинского алфавита A,..., Z, a,..., z цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 специальные знаки, {} [] () + - / % \ ;. :? < = > _! & * #

Подробнее