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

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

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

Транскрипт

1 ЛЕКЦИЯ 4 МАССИВЫ И УКАЗАТЕЛИ 1. Массивы Массив это набор однородных элементов фиксированной длины. Память для массивов выделяется одним куском. При инициализации массива записывается тип элементов массива, его имя и количество элементов. Пример int a[10]. В языке С массивы измеряются с нуля. Работа с массивами чаще всего осуществляется через циклы. Рассмотрим пару примеров присваивания элементам массивов нулевых значений. int a [ 3 ] ; for ( i =0; i <3; i ++) a [ i ]=0; int m[ 3 ] [ 4 ] ; for ( i =0; i <3; i ++) for ( j =0; j <4; j++) m[ i ] [ j ]=0; При работе с массивами важно разделять понятия индекса и значения элемента. Индекс это номер элемента массива. Индекс пробегает значения от 0 до N-1, где N размер массива. Каждому индексу соответствует значение определенного элемента. Рассмотрим многомерные массивы. Пример инициализации двумерного массива был представлен в предыдущем фрагменте программного кода. В данном случае двумерный массив можно представить как поле элементов, которое пробегают два счетчика. В рассмотренном случае это счетчик i, пробегающий по строкам поля и счетчик j, пробегающий по его столбцам. Аналогичным образом трехмерный массив можно представить как распределение элементов в каком-либо трехмерном объекте, например, в кубе, а четырехмерный как распространение ударной волны по времени, т. е. фиксируются значения по трехмерным координатам волны и добавляется счетчик времени. Таких значений, как и самих размерностей массивов, может быть огромное количество.

2 Явная инициализация элементов массива Значения массива можно инициализировать, указав его элементы в фигурных скобках, к примеру, следующим образом: int a [ 3 ] = { 2 3, 7, ; Если количество элементов в квадратных скобках не указано, то при аналогичной инициализации компилятор сам догадается о том, что в массиве будет находиться столько элементов, сколько находится в фигурных скобках. Аналогичным образом можно инициализировать массив размером 4: int a [ 4 ] = { 2 3, 7, ; Тогда последний элемент инициализируется либо «мусором», если его инициализация происходит в локальной памяти, либо нулевым значением, если инициализация происходит или в статической, или в глобальной памяти. А в случае, если тремя числами будет инициализироваться массив размером 2 (a[2]), то будет ошибка компиляции. При инициализации массива элементов типа char необходимо не забывать после прописывания всех элементов массива поставить символ окончания строки: char s t r [ ] = { H, e, l, l, o, \0 ; Однако данный массив можно инициализировать проще следующим образом: char s t r [ ] = H ello ; Говоря о строковых массивах, необходимо упомянуть о функции strlen, считывающей количество символов в строке. К примеру, подсчет символов в строке str будет выглядеть следующим образом: int x = s t r l e n ( s t r ) ; 2. Указатели Указатель это переменная, значением которой является индекс ячейки памяти, в которой хранится определенный элемент. В основном указатели используются для экономии памяти и оптимизации работы программ. Передавая указатель на переменную в функцию, программа не делает копию этой переменной, а редактирует ее напрямую. Это особенно важно в случаях, когда результатом функции является не одно число, а несколько к примеру, как в функции нормализации нескольких координат точки. Также указатели используются для динамического управления памятью. В таких случаях в динамической памяти выделяется место для их записи, и поэтому оказывается возможным по необходимости изменять размер массивов. Основные функции указателей в языке C это: 1. Передача переменной так, чтобы можно было изменить ее значение: s c a n f ( %d,&x ) ; 2. Работа с динамическими указателями размер массива определяется по време-

3 3 ни выполнения функции, а не компиляции, а также может изменяться во время выполнения. 3. Передача имени функции как аргумента: q s o r t ( a, 10, sizeof ( int ), cmp ) ; В данном случае для удобной сортировки всего массива с помощью стандартной функции qsort в нее передается массив, количество его элементов, ссылка на битовый адрес начала массива и заранее написанная функция сравнения двух элементов Вывод на печать различных аргументов функции инкрементирования Проанализируем следующий программный код. Listing 4.1: Функция инкрементирования с инициализацией локальной переменной. void i n c r ( int x ) { x++; int main ( ) { int i, x=1; for ( i =0; i <3; i ++) { i n c r ( x ) ; p r i n t f ( x=%d\ n, x ) ; return 0 ; Переменная x в main изначально инициализирована единицей. 3 раза вызываем функцию incr и после вызова функции печатаем x. Т. к. x инициализируется локально в main, то область его видимости только эта функция. Когда вызывается incr(x), то управление передается в эту функцию и создается своя переменная x, которая инициализируется значением аргумента при вызове. Значит, вызовется incr(1), а затем полученное значение разрушится, т. к. тип функции incr void. Итак, при выходе из функции incr идет переход в main, в которой инициализированный единицей x не меняется, и, таким образом, на консоль 3 раза выводится единица Вывод на печать различных аргументов функции инкрементирования в массиве Проанализируем программный код, в котором будет проводиться инкрементирование элементов массива. Listing 4.2: Функция инкрементирования с инициализацией локальной переменной. int a [ 1 0 ] = {2,7, 3,4,8; void i n c r ( int j ) {

4 4 a [ j ]++; int main ( ) { int i, j =1; for ( i =0; i <3; i ++) { i n c r ( j ) ; p r i n t f ( a[%d]=%d\ n, j, a [ j ] ) ; return 0 ; Внизу в main j проинициализирована единицей. Последние 5 элементов массива a инициализированы нулем, т. к. массив инициализирован глобально. Рассмотрим работу функции incr в данном случае. Изменение j в функции incr на изменение j в функции main никак влиять не будет. Происходит передача индекса в массиве данное действие заложено в указателях. У каждого байта есть свой адрес, двух байтов с одинаковым адресом не бывает. Если имеется номер байта, то можно сказать, где он лежит в памяти. Однако используемые переменные чаще всего занимают более 1 байта, кроме типа char элементы данного типа занимают ровно 1 байт. Для лучшего понимания работы указателей рассмотрим некоторые простые операции с ними. Пусть инициализируются 2 переменные и 1 массив: int x=1,y=2, z [ 1 0 ] ; Далее заводим новую переменную указатель int *ip, который будет означать область памяти, в которой располагается переменная x. Допустим, что переменная x лежит по 100-му адресу это первый байт, в котором лежит переменная (как говорилось ранее, под одну переменную может выделяться более одного байта), поэтому значение ip равно 100. Существует операция взятия адреса переменной, она обозначается с помощью символа &. При записи ip=&x происходит присвоение адреса переменной ip переменной x теперь переменная ip указывает на x. Обратная операция взятие значения по адресу переменной называется разыменование и записывается как y = *ip. Переменная *ip в данном случае имеет тип и значение взятой переменной x. Далее разберем действие *ip=0. Переменная ip находится по адресу, начиная с 100-го байта. Соответственно, по этому адресу передается значение 0. При работе с массивами присвоение адреса в массиве выглядит следующим образом: ip=&z[0]. Запись индекса можно опускать, т. к. массив последовательно занимает память, начиная как раз с первого элемента. Константа NULL для определенного адреса означает, что данный адрес не существует. При инициализации указателей важно ставить звездочку рядом со всеми переменными, которые планируется использовать в качестве указателей Передача в функцию адреса переменной Рассмотрим следующий программный код.

5 5 Listing 4.3: Передача адреса в функцию. void i n c r ( int *px ) { (* px)++; int main ( ) { int i, x=1; for ( i =0; i <3; i ++){ i n c r (&x ) ; p r i n t f ( x=%d\n, x ) ; return 0 ; В данном случае трижды происходит вызов функции incr и печатается x. В языке C в функциях аргументы всегда передаются по значению. В функции main есть переменная x, которая инициализируется единицей. Допустим, она лежит по 200-му адресу. Когда вызывается функция incr от &x, то в incr заводится переменная *px указатель на x и инициализируется значением при вызове, а значение при вызове это адрес переменной, равный 200. Далее происходит разыменование переменной и увеличение ее на единицу. Начальное значение переменной равно 1, поэтому повторение функции incr в теле main даст результаты 1, 2 и Ошибки при использовании указателей Во-первых, адрес переменной зачастую инициализируется как NULL, а затем проводятся попытки положить число по этому адресу. Данный подход неверен, т. к. подразумевается, что элемент в указателем NULL не имеет определенного адреса. Во-вторых, зачастую встречается ошибка некорректного использования указателей при выходе из функции. Рассмотрим функцию, осуществляющую переворот символьного массива функцию palindrom. Listing 4.4: Функция palindrom. char * palindrom ( char a [ ], int n ) { char b [ ], int i ; for ( i =0; i <n ; i ++){ b [ i ] = a [ n i 1]; return b ; В данном случае выполняется переворот первых n элементов массива. Для этого в цикле прописывается присваивание элементов исходного массива новому массиву в обратном порядке. Возвращаемым элементом будет являться адрес на массив b, т. к. по определению данной функции она имеет результат-указатель. Проблема заключается в том, что все переменные в функции локальные, и поэтому под них выделяется память, которая

6 6 после завершения функции сразу уничтожится. Соответственно, сославшись на адрес функции, можно сразу получить тот же кусок памяти, однако он может быть заполнен уже абсолютно другими элементами, т. к. используемые локальные переменные в функции уже уничтожились. Рассмотрим следующий фрагмент программного кода. int a [ 1 0 ] ; int *p ; p=&(a [ 1 0 ] ) ; p=a ; a=p ; //некорректная запись Listing 4.5: Копирование массивов. В данном случае происходит копирование массива a в массив p с помощью указателей. Обратная операция присваивания a=p была бы невозможна, т. к. p указывает на начало a, а в данном случае a это адрес массива, а он является неизменяемым. Можно сделать присваивание какого-либо из массива a, а обратную операцию провести нельзя. Рассмотрим копирование массивов подробнее. Пусть имеется 2 массива: int a [ 3 ] = { 1 0, 1 5, 6 ; int b [ 3 ] ; Было бы очень удобно выполнить копирование массива следующей командой: b=a. Однако возможен случай, что будут рассматриваться массивы разного размера и тогда элементы или некуда будет записывать, что вызовет ошибку, или в массиве останутся пустые места. Поэтому во избежание проблем данный функционал реализован не был. Однако проблему копирования можно решить либо с помощью функции memcpy (memory copy), речь о которой пойдет в дальнейшем, либо с помощью проведения копирования элементов массива в цикле Адресная арифметика Адресная арифметика подразумевает операции сложения или вычитания адресов переменных с целочисленными аргументами с целью упрощенного обращения к необходимым адресам памяти. Рассмотрим пример применения целочисленной арифметики. int *a [ 1 0 ] ; int *p ; p = &a [ 0 ] ; *( p+3) = a [ 3 ] ; //получение элемента Если p указывает на начало массива a, то можно быстро обратиться к любому элементу массива, например, к третьему. Допустим, переменная типа int лежит в 4 байтах, а рассматриваемый массив начинается с 100-го байта. Тогда адресация массива будет выглядеть следующим образом: Размер памяти для какого-либо элемента определяется с помощью ключевого слова sizeof. Т. е. размер массива a в байтах получается следующим образом: sizeof(a). Если бы адресной арифметики не было, то доступ к различным элементам, к примеру, к третьему элементу массива a, выглядел бы следующим образом:

7 7 Рис. 4.1 *( p + 3* sizeof ( int ) ) = 17 В данном случае был произведен доступ к третьему элементу и его разыменование. Однако данный код плохо читаем. Поскольку в языке C разрешена адресная арифметика, то функция sizeof(int) может опускаться. Также в языке C разрешено вешать указатель на указатель, т. е. допустима запись int **ipp = &ip, где ip указатель на какой-либо элемент x. Итак, возможные операции в адресной арифметике: 1. Адрес + целое = адрес, 2. Адрес - адрес = целое, 3. Адрес + адрес //ошибка, 4. Адрес «сравнить» адрес Печать символьного массива Рассмотрим программный код: Listing 4.6: Печать строкового массива в бесконечном цикле for ( i =0; ; i =( i +1)%4) p r i n t f ( \b%c, / \ [ i ] ) ; Разберем сначала функцию printf. В функции printf запись означает backspace, т. е. откат на один символ назад; %c печать символа. В кавычках прописаны 4 печатаемых символа. Допустим, массив начинался с адреса 100, тогда следующие элементы массива будут иметь адреса 101, 102 и 103. Тип строковой константы char * указатель на char. Если завести переменную char *p, содержащую печатаемый символьный массив, то в переменной p будет лежать число 100. С помощью аналогичных друг другу записей p[i] или *(p+i) можно продвигаться по массиву и записывать соответствующие значения символов. Далее рассмотрим работу счетчика i в цикле for: i = (i+1)%4 данная запись означает увеличение счетчика на 1 и взятие полученного числа по модулю 4. Таким образом, рассматривая печать массива из 4 символов, цикл напечатает данные символы, а затем при i=4 получится, что 4%4=0, и цикл начнет свою работу с i=0. Т. е. получится бесконечный цикл.

8 8 3. Строковые константы В данном разделе будет разобрана разница между обычным хранением массива char arr[] = "Word" из 5 элементов (+ конечный элемент символьного массива) и указателем на такой же массив, char *str[] = "Word". Массиву arr нельзя присваивать другие элементы, к примеру, arr = "Hello", т. к. массив уже занят другими элементами. Функция взятия нулевого элемента массива arr[0]='w' будет работать, т. к. нарушения целостности массива здесь нет. Обычно строковые константы ложатся в немодифицированную область памяти, которую можно только читать. Поэтому операция str[0]='w', скорее всего, работать не будет, т. к. при работе с указателями данная ситуация будет восприниматься как попытка модификации используемой памяти, чего делать нельзя. Рассмотрим функцию нахождения элементов в строке. Listing 4.7: Функция нахождения элементов в массиве без использования указателей int s t r l e n ( char s t r [ 1 0 ] ) { int n ; for ( n=0; s t r [ n ] = \0 ; n++) ; return n ; Для того чтобы не зайти за границы массива char, установим его размер равным 10. Условием окончания цикла будет символ окончания строки. Тогда значение счетчика и будет ответом задачи. Рассмотрим решение данной задачи с использованием указателей. Listing 4.8: Функция нахождения элементов в массиве с использованием указателей int s t r l e n ( char * s t r ) { char *p ; for ( p=s t r ; * p = \0 ; p++) ; return p s t r ; Во втором случае аргументом является указатель на массив char, т. е. адрес начала массива. Проводим аналогичную первому случаю операцию поиска значения счетчика. Возвращаемым функцией значением будет являться разность между адресом конца строки и адресом начала. Ответы в обоих случаях будут одинаковыми, т. к. элемент типа char занимает 1 байт.

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

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

Подробнее

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

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год. Лекция 8 Массивы и указатели 8.1. Указатели 8.1.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",

Подробнее

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

Подробнее

Например, следующий оператор объявляет массив из 100 целочисленных элементов с именем data:

Например, следующий оператор объявляет массив из 100 целочисленных элементов с именем data: Массивы Массив (или массив данных) это набор однородных элементов. Массив это пронумерованная ( или проиндексированная) последовательность величин одинакового типа, обозначаемая одним именем. Элементы

Подробнее

Одномерные массивы. Лабораторная работа 9

Одномерные массивы. Лабораторная работа 9 Лабораторная работа 9 Одномерные массивы Массивы. Ссылочные типы и null. Часто в программах требуется завести большое количество переменных одного и того же типа. Можно, конечно, написать большое количество

Подробнее

int *p, c; char *strdup(char *ptr); int *aptr[20]; p = &c;

int *p, c; char *strdup(char *ptr); int *aptr[20]; p = &c; 1 Занятие 5 1.1 Указатели Рассмотрим важнейший производный тип указательный. Если base это некоторый базовый тип, то тип указателя на тип base имеет своим множеством значений всевозможные адреса памяти,

Подробнее

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

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

Подробнее

IDK1031 Основы Click to edit Master title style программирования на языке С. Указатели и адреса. Арифметика указателей.

IDK1031 Основы Click to edit Master title style программирования на языке С. Указатели и адреса. Арифметика указателей. IDK1031 Основы Click to edit Master title style программирования на языке С Указатели и адреса. Арифметика указателей. Указатель Указатель переменная, значением которой является адрес. Указатели делают

Подробнее

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

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

Подробнее

В.Л. Тарасов Лекции по программированию на C++

В.Л. Тарасов Лекции по программированию на C++ 60 В.Л. Тарасов Лекции по программированию на C++ Лекция 4 Массивы и вектора Массив представляет собой набор последовательно пронумерованных элементов одного типа. Все элементы массива имеют одно имя,

Подробнее

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

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

Подробнее

struct circle { double x, y, r; int c; }; struct circle c1; struct foo { struct bar { double x; }; int y; struct bar z; }; struct bar t;

struct circle { double x, y, r; int c; }; struct circle c1; struct foo { struct bar { double x; }; int y; struct bar z; }; struct bar t; 1 Занятие 6 1.1 Структуры Ранее мы рассмотрели методы определения и работы с массивами и перечислимыми типами. Теперь рассмотрим определение и использование структур. Структура в языке Си это объединение

Подробнее

Тема 1.1 Массивы скалярных данных

Тема 1.1 Массивы скалярных данных Тема 1.1 Массивы скалярных данных Массивы в С++ Массив это структура данных, представленная в виде группы ячеек одного типа, объединенных под одним единым именем. Массивы используются для обработки большого

Подробнее

Тема 9. Типы. Структурированные типы.

Тема 9. Типы. Структурированные типы. Тема 9. Типы. Структурированные типы. В Object Pascal четыре структурированных типа: массивы, записи, множества и файлы. Любой из структурированных типов характеризуется множественностью образующих этот

Подробнее

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

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

Подробнее

Массивы в Java. Лекция 6

Массивы в Java. Лекция 6 Лекция 6 Массивы в Java Массив это конечная последовательность упорядоченных элементов одного типа, доступ к каждому элементу в которой осуществляется по его индексу. Размер или длина массива это общее

Подробнее

Введение в С++11 (стандарт ISO/IEC 14882:2011 Вне рассмотрения в рамках курса остаются нововведения для работы с шаблонами:

Введение в С++11 (стандарт ISO/IEC 14882:2011 Вне рассмотрения в рамках курса остаются нововведения для работы с шаблонами: (стандарт ISO/IEC 14882:2011 ) Вне рассмотрения в рамках курса остаются нововведения для работы с шаблонами: ведение понятий лямбда-функций и выражений, внешние шаблоны, альтернативный синтаксис шаблонных

Подробнее

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

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 9-го занятия по практике Указатели. Адреса и указатели. Указатель на void Указатели и массивы. Указатели и строки Диаграммы UML

Подробнее

Введение в программирование Урок 8: Указатели

Введение в программирование Урок 8: Указатели Введение в программирование Урок 8: Указатели 1 Адреса памяти Память разделена на ячейки, каждая величиной в 1 байт. Эти ячейки пронумерованы, и номер ячейки называется её адресом. Каждой программе выделяется

Подробнее

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

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

Подробнее

Язык программирования Си++ Семинар 2. Массивы объектов. Массивы переменной длины. Операторы new, delete. Указатели. Ссылки.

Язык программирования Си++ Семинар 2. Массивы объектов. Массивы переменной длины. Операторы new, delete. Указатели. Ссылки. Язык программирования Си++ Иванов А.П., Князева О.С. Семинар 2. Массивы объектов. Массивы переменной длины. Операторы new, delete. Указатели. Ссылки. 1. Массивы объектов Встроенное в язык Си++ понятие

Подробнее

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

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

Подробнее

Тема 1.3 Операции в С

Тема 1.3 Операции в С Тема 1.3 Операции в С Преобразование типов явное и неявное. Операции арифметического типа. Преобразование типа в операции присвоения. Операции логического типа. Одноместные и двуместные операции. Адресные

Подробнее

Компьютерная Академия Шаг Урок 12. Программирование на C. Оглавление

Компьютерная Академия Шаг Урок 12. Программирование на C. Оглавление Оглавление 1. Статическое и динамическое выделение памяти. 2. Указатели. 3. Указатели и массивы. 4. Указатели - аргументы функций. Передача аргументов по указателю. 5. Домашнее задание. 1 Статическое и

Подробнее

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

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

Подробнее

А следующая числами по порядку, при этом размер массива определяется автоматически:

А следующая числами по порядку, при этом размер массива определяется автоматически: 1 Одномерные массивы Массив есть средство для объединения некоторого количества однотипных переменных под одним именем, доступных по номеру. Главное достоинство массива по сравнению с отдельными переменными

Подробнее

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

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

Подробнее

Функции. Функция поименнованная часть программы, которая может вызываться из других частей программы неограниченное число раз.

Функции. Функция поименнованная часть программы, которая может вызываться из других частей программы неограниченное число раз. Функции Функция поименнованная часть программы, которая может вызываться из других частей программы неограниченное число раз. Это отдельная подпрограмма, управляемая входами и возвращающая что-то на выходе.

Подробнее

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

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

Подробнее

Тема 14. Динамическая память и указатели.

Тема 14. Динамическая память и указатели. Тема 14. Динамическая память и указатели. 14.1. Динамическая память Большинство элементов программы в программировании в Object Pascal подразделяются на динамические и статические. Статические элементы,

Подробнее

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

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

Подробнее

Лекция 9 Опасный код. Общие понятия. Основы использования указателей

Лекция 9 Опасный код. Общие понятия. Основы использования указателей Лекция 9 Опасный код Общие понятия С С# позволяет программистам писать то, что называется "опасный кодом" (unsafe code). Опасный код это код, который не плохо написан, а код, который не выполняется под

Подробнее

Курс «Алгоритмы и алгоритмические языки» 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,

Подробнее

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

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

Подробнее

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

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

Подробнее

int vektor[10]; // вектор из 10 элементов double vektor[10]; // вектор из 10 элементов

int vektor[10]; // вектор из 10 элементов double vektor[10]; // вектор из 10 элементов Тема : знакомство с С (Си) МАССИВЫ, упражнения Содержание: массивы упражнение 1 упражнение 2 Массивы Массивы делятся на одномерные (вектора), двумерные (матрицы), трехмерные и многомерные. Обычно используют

Подробнее

Лекция 4. Динамическая память

Лекция 4. Динамическая память http://compscicenter.ru 1/21 Александр Смаль CS центр 1 октября 2014 Санкт-Петербург http://compscicenter.ru 2/21 Зачем нужна динамическая память? Стек программы ограничен. Он не предназначен для хранения

Подробнее

Лабораторная работа 9. Тема: «Обработка одномерных массивов. Сортировка массивов»

Лабораторная работа 9. Тема: «Обработка одномерных массивов. Сортировка массивов» Лабораторная работа 9 Тема: «Обработка одномерных массивов. Сортировка массивов» 1. Цель работы 1.1 Получение практических навыков в работе с одномерными массивами. 1.2 Знакомство с алгоритмами упорядочения.

Подробнее

13. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ

13. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ 13. ДИНАМИЧЕСКИЕ СТРУКТУРЫ ДАННЫХ Статическими называются такие данные, которые не меняют свои размеры в течение всего времени своего существования. Регулярный и комбинированный типы языка Pascal это пример

Подробнее

Информационные технологии. Лекция 7

Информационные технологии. Лекция 7 Информационные технологии Лекция 7 Работа с массивами Массив упорядоченный набор однотипных переменных, объединенных одним именем. В качестве типа элементов массива можно использовать все типы: все числовые,

Подробнее

Распределение памяти

Распределение памяти Распределение памяти Распределение памяти - это процесс, в результате которого отдельным элементам исходной программы ставятся в соответствие адрес, размер и атрибуты области памяти, необходимой для размещения

Подробнее

Лекция 2. Основные типы данных

Лекция 2. Основные типы данных Лекция 2 Рыбалка С.А., Шкатова Г.И. Лекции по C++ Основные типы данных Основным средством хранения данных, обрабатываемых программой, являются ячейки памяти. Вся память компьютера является однородной и

Подробнее

0 _Bool 1 char, unsigned char, signed char 2 short, unsigned short 3 int, unsigned int 4 long, unsigned long 5 long long, unsigned long long. int.

0 _Bool 1 char, unsigned char, signed char 2 short, unsigned short 3 int, unsigned int 4 long, unsigned long 5 long long, unsigned long long. int. 1 Занятие 7 1.1 Вычисление выражений Рассмотрим некоторые особенности вычисления выражений в языке Си. 1.1.1 Преобразования типов при вычислении выражений Перед вычислением арифметических операций транслятор

Подробнее

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

ЛЕКЦИЯ 3. КЛАССЫ ХРАНЕНИЯ, СВЯЗЫВАНИЕ И УПРАВЛЕНИЕ ПАМЯТЬЮ ЛЕКЦИЯ 3. КЛАССЫ ХРАНЕНИЯ, СВЯЗЫВАНИЕ И УПРАВЛЕНИЕ ПАМЯТЬЮ Содержание 1. Область видимости... 1 2. Длительность хранения.. 3 3. Связывание... 5 4. Классы хранения... 6 4.1. Автоматические переменные...

Подробнее

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

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

Подробнее

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

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

Подробнее

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ»

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

Подробнее

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

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

Подробнее

Использование двумерных массивов в С. Определение двумерного массива Основные приемы обработки статических массивов Некоторые классические алгоритмы

Использование двумерных массивов в С. Определение двумерного массива Основные приемы обработки статических массивов Некоторые классические алгоритмы Использование двумерных массивов в С Определение двумерного массива Основные приемы обработки статических массивов Некоторые классические алгоритмы Объявление двумерного массива Двумерные массивы, как

Подробнее

Лабораторная работа 7. Строки в С/С++

Лабораторная работа 7. Строки в С/С++ Лабораторная работа 7 Строки в С/С++ 1. Цель работы: 1) Получение практических навыков при работе со строками 2) Получение практических навыков при передаче строк в функции. 2. Краткие теоретические сведения

Подробнее

1. C-cтроки 1.1. Описание и инициализация строк

1. C-cтроки 1.1. Описание и инициализация строк 1. C-cтроки В C++ имеется два типа строк: встроенный тип, унаследованный от языка C (строки данного типа мы будем называть C-строками), и класс string из стандартной библиотеки C++. Класс string появился

Подробнее

Лабораторная работа 3 Тема: Структура программы на Си. Функции ввода-вывода.

Лабораторная работа 3 Тема: Структура программы на Си. Функции ввода-вывода. Лабораторная работа 3 Тема: Структура программы на Си. Функции ввода-вывода. Ход выполнения лабораторной работы должен быть отражен в отчете. Отчет должен содержать титульный лист, номера задания, коды

Подробнее

Краткая программа курса:

Краткая программа курса: Информатика на Физико-Химическом Факультете МГУ имени М.В.Ломоносова В краткой программе курса обозначены основные положения, которые должны знать студенты, для сдачи зачёта. Студенты также должны уметь

Подробнее

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

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

Подробнее

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 {

Подробнее

Web-разработка на PHP-технологиях Курс лекций и семинаров для студентов, желающих научиться основам Web-разработки на PHP. Осень-Зима 2014.

Web-разработка на PHP-технологиях Курс лекций и семинаров для студентов, желающих научиться основам Web-разработки на PHP. Осень-Зима 2014. Web-разработка на PHP-технологиях Курс лекций и семинаров для студентов, желающих научиться основам Web-разработки на PHP Осень-Зима 2014 Лекция 3 PHP Синтаксис языка Переменные, константы, типы данных

Подробнее

Объявление функций в С/С++

Объявление функций в С/С++ Объявление функций в С/С++ Описание функций в отдельных файлах В С++ существует возможность поместить объявления функций в отдельный файл, тогда необходимо будет подключать файл с функциями, как в случае

Подробнее

ЛАБОРАТОРНАЯ РАБОТА 30 Решение функциональных задач на Си++: задача о размещении контейнеров

ЛАБОРАТОРНАЯ РАБОТА 30 Решение функциональных задач на Си++: задача о размещении контейнеров ЛАБОРАТОРНАЯ РАБОТА 30 Решение функциональных задач на Си++: задача о размещении контейнеров Цели: научиться выполнять сортировку массива; закрепить умение по работе с динамическими массивами; закрепить

Подробнее

2.3. Область действия и время жизни переменных

2.3. Область действия и время жизни переменных 2.1. Строки Строки это последовательности символов, заключенные в кавычки. Символы внутри строк можно представлять их знаками или эскейп-последовательностями, например, abc\tabc\n123\0101\0102.строка символов

Подробнее

Урок 4. Циклы и массивы.

Урок 4. Циклы и массивы. Урок 4. Циклы и массивы. О чем урок: циклы while do-while for массивы функции для работы с массивами Смотреть урок: [marafon_4.mp4] Циклы Цикл управляющая конструкция, предназначенная для многократного

Подробнее

ЛЕКЦИЯ 8 СТРУКТУРЫ ДАННЫХ. СТЕК

ЛЕКЦИЯ 8 СТРУКТУРЫ ДАННЫХ. СТЕК ЛЕКЦИЯ 8 СТРУКТУРЫ ДАННЫХ. СТЕК На этой лекции речь пойдёт о структурах данных. Теперь, когда синтаксис языка хорошо изучен, можно приступать к более сложным вещам. Задача Дана строка, состоящая из открывающих

Подробнее

Лекция 3. Массивы, указатели и ссылки

Лекция 3. Массивы, указатели и ссылки http://compscicenter.ru 1/18 Лекция 3. Массивы, указатели и ссылки Александр Смаль CS центр 22 сентября 2016 Санкт-Петербург Указатели Указатель это переменная, хранящая адрес некоторой ячейки памяти.

Подробнее

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

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

Подробнее

Язык программирования Си. Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания.

Язык программирования Си. Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания. Язык программирования Си Бикулов Д.А., Иваницкая Н.В., Иванов А.П. Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания. Зачет проводится в практикуме и состоит из двух частей:

Подробнее

Массивы данных ПРОГРАММИРОВАНИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ. Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич

Массивы данных ПРОГРАММИРОВАНИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ. Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем ПРОГРАММИРОВАНИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Массивы данных Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич Кафедра вычислительных систем ФГОБУ

Подробнее

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

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

Подробнее

Средства автоматизации построения трансляторов. LEX генератор лексических анализаторов. YACC генератор синтаксических анализаторов

Средства автоматизации построения трансляторов. LEX генератор лексических анализаторов. YACC генератор синтаксических анализаторов Средства автоматизации построения трансляторов LEX генератор лексических анализаторов YACC генератор синтаксических анализаторов Генерация кода 1) Распределение памяти для данных и команд программы 2)

Подробнее

Содержание. Содержание 7

Содержание. Содержание 7 Содержание Об авторе 15 Благодарность 16 Введение 17 Актуален ли язык программирования C 17 Подход, используемый в данной книге 17 Как работает эта книга 18 Использованные пиктограммы 19 Мысли на бегу

Подробнее

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

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 2-го занятия по практике Циклы. Операции отношения. Циклы: for, while, do. Составление программ для циклического алгоритма с

Подробнее

Выражения языка Си. Некоторые операции могут образовывать l-обозначения, другие нет.

Выражения языка Си. Некоторые операции могут образовывать l-обозначения, другие нет. Выражения языка Си А. А. Вылиток 1. Объекты и l-обозначения Объект это область памяти, в которую можно записывать определенную информацию и считывать ее оттуда. l-обозначение это выражение, означающее

Подробнее

Оператор Синтаксис Приоритет Присваивание Сложение a + b 4 Вычитание a b 4 Умножение a * b 3 Деление a / b 3 Унарный минус -a 2

Оператор Синтаксис Приоритет Присваивание Сложение a + b 4 Вычитание a b 4 Умножение a * b 3 Деление a / b 3 Унарный минус -a 2 Учебный язык программирования MiniC для построения транслятора для дисциплины «Языки программирования и методы трансляции», «Практикум по программированию» Учебный язык является подмножеством C++ с добавлением

Подробнее

Курс «Язык С++» Симуни Михаил Лазаревич. msimuni.wikidot.com/cpp группа курс "Язык С++" (мат-мех 17)

Курс «Язык С++» Симуни Михаил Лазаревич. msimuni.wikidot.com/cpp группа курс Язык С++ (мат-мех 17) Язык С++ 1 Курс «Язык С++» Симуни Михаил Лазаревич msimuni.wikidot.com/cpp группа курс "Язык С++" (мат-мех 17) simuni@mail.ru 2 Какие темы будут в курсе? Простые вещи указатели, функции, классы, наследование,

Подробнее

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

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

Подробнее

(для тех, кто предпочитает Java, рекомендуем курс "Алгоритмы. Олимпиадное программирование" фирмы "1С", см.

(для тех, кто предпочитает Java, рекомендуем курс Алгоритмы. Олимпиадное программирование фирмы 1С, см. Массивы (для тех, кто предпочитает Java, рекомендуем курс "Алгоритмы. Олимпиадное программирование" фирмы "1С", см. http://club.1c.ru) При решении многих задач возникает необходимость хранить всю последовательность

Подробнее

Урок 1. Знакомство со средой программирования Кумир. Понятие величины

Урок 1. Знакомство со средой программирования Кумир. Понятие величины Урок 1. Знакомство со средой программирования Кумир. Понятие величины Данная программная среда позволяет получить практические навыки построения и выполнения основных алгоритмических конструкций, применяемых

Подробнее

Массивы. В ЯЗЫКЕ программирования Java массивы являются объектами ( 4.3.1), создаются динамически ГЛАВА 10

Массивы. В ЯЗЫКЕ программирования Java массивы являются объектами ( 4.3.1), создаются динамически ГЛАВА 10 ГЛАВА 10 Массивы В ЯЗЫКЕ программирования Java массивы являются объектами ( 4.3.1), создаются динамически и могут присваиваться переменным типа Object ( 4.3.2). Все методы класса Object можно вызывать

Подробнее

«Утверждаю» Заведующий кафедрой /О.И.Наранович/ «29»_ г. Пр. 7

«Утверждаю» Заведующий кафедрой /О.И.Наранович/ «29»_ г. Пр. 7 «Утверждаю» Заведующий кафедрой /О.И.Наранович/ «29»_08 2016 г. Пр. 7 Вопросы к экзамену по дисциплине «Объектно-ориентированное программирование» по специальности «Информационные системы и технологии»

Подробнее

Лабораторная работа 9

Лабораторная работа 9 Лабораторная работа 9 Алгоритмизация и программирование ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ УНИВЕРСИТЕТ ФАКУ ЛЬТЕТ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И МЕХАТРОНИКИ Кафедра информационных технологий и мехатроники

Подробнее

Министерство РФ по связи и информатизации. Поволжская Государственная Академия Телекоммуникаций и Информатики МЕТОДИЧЕСКИЕ УКАЗАНИЯ

Министерство РФ по связи и информатизации. Поволжская Государственная Академия Телекоммуникаций и Информатики МЕТОДИЧЕСКИЕ УКАЗАНИЯ Министерство РФ по связи и информатизации Поволжская Государственная Академия Телекоммуникаций и Информатики МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторным работам по дисциплине «Структуры и алгоритмы обработки

Подробнее

Массивы и их обработка

Массивы и их обработка Массивы и их обработка Линейные массивы. Двумерные массивы. Сортировка Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Массивы - основы Массив это структура данных,

Подробнее

Составные типы данных

Составные типы данных Глава 10 Составные типы данных Десятая глава освещает широкий круг составных типов данных: массивы, строки символов, записи, множества, кортежи и списки. Массивы рассматриваются самым пристальным образом.

Подробнее

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

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

Подробнее

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

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 7-го занятия по практике Массивы. Определение массивов. Доступ к элементам массивов. Среднее арифметическое элементов массива

Подробнее

Содержание: 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 предназначен для организации

Подробнее

Лабораторная работа 6. Функции в С++

Лабораторная работа 6. Функции в С++ Лабораторная работа 6 Функции в С++ 1. Цель работы: 1) Получить практические навыки работы с функциями; 2) получить практические навыки работы с шаблонами функций; 3) получить практические навыки работы

Подробнее

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

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

Подробнее

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

Языки программирования и методы трансляции Языки программирования и методы трансляции Подпрограммы Подпрограммы и абстракция управления потоком Подпрограммы позволяют скрыть код за интерфейсом, который может быть использован независимо от реализации.

Подробнее

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

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 8-го занятия по практике Строки. Строковые переменные. Считывание строк. Копирование строк Массивы строк. Стандартный класс string

Подробнее

Лабораторная работа 1 Программирование алгоритмов линейной структуры

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

Подробнее

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

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

Подробнее

Primes = [2, 3, 5, 7, 11, 13] Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet']

Primes = [2, 3, 5, 7, 11, 13] Rainbow = ['Red', 'Orange', 'Yellow', 'Green', 'Blue', 'Indigo', 'Violet'] Списки Большинство программ работает не с отдельными переменными, а с набором переменных. Например, программа может обрабатывать информацию об учащихся класса, считывая список учащихся с клавиатуры, при

Подробнее

Лабораторная работа 4 Обработка статических массивов

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

Подробнее

4 Классы. 4.1 Основы классов

4 Классы. 4.1 Основы классов 4 Классы Класс центральный компонент Java. Поскольку класс определяет форму и сущность объекта, он является той логической конструкцией, на основе которой построен весь язык. Как таковой, класс образует

Подробнее

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

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

Подробнее

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

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

Подробнее

Урок 2. Запись арифметических выражений. Операторы вывода и вывода. Для обозначения операций применяются следующие знаки:

Урок 2. Запись арифметических выражений. Операторы вывода и вывода. Для обозначения операций применяются следующие знаки: Урок 2. Запись арифметических выражений. Операторы вывода и вывода информации Запись арифметических выражений на языке КУМИР, как и на любом языке программирования, несколько отличается от обычной математической.

Подробнее

Введение. Язык программирования Python

Введение. Язык программирования Python Введение. Язык программирования Python В рамках данного курса мы будем решать задачи по программированию на современном языке программирования Python 3. Его основные достоинства: 1. Кроссплатформенность

Подробнее

Введение. 1. Объявление двумерного массива

Введение. 1. Объявление двумерного массива Введение... 2 1. Объявление двумерного массива... 2 2. Ввод прямоугольной матрицы... 3 3. Вывод прямоугольной матрицы в окно списка и в текстовое поле... 5 4. Поиск максимального элемента матрицы... 8

Подробнее