Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прочее / шпора по с++, экт 1й курс.doc
Скачиваний:
61
Добавлен:
17.04.2013
Размер:
88.06 Кб
Скачать

Int i_arr[10]; char liter[80]; double l_mas[100];

(10)Понятие массива .Матрицы.

матрицей называется двумерный массив или массив векторов.int faq_i[10][10];

главная диагональ- (i=j);побочная – (i=n-j-1)

Эл-ты индексируются с 0 до n-1.

(11)Понятие массива .Строка как символьный массив.

Строка – массив значений типа char, ЗАВЕРШАЮЩИЙСЯ НУЛЕВЫМ БАЙТОМ.

(c=name[2];-присваивает третий эл-т массива name переменной с).char red[]=’’мама’’ –эта строка имеет длину не 4 байта а 5 т. к. всякая строка аканчивается нулевым байтом: char red[]={‘м’,’а’,’м’,’а’,’0’};

(12)Структуры. Структура – это одна или несколько переменных одного или различных типов, кот-е для удобства работы сгрупированны в одну языковую конструкцию, под одним именем.

struct date/*назв. структуры*/

{ int day; int month;} today;/*назв. переменной*/ //объявление структуры.

struct date d1, d2, d3; - несколько структурных переменных в одной. Инициализация структуры, содержащей информацию о музыкальной коллекции на CD. Struct cd_info {char title[25]; char artist[20]; int num_songs; float price; char date_bought[8];} cd[10];/*массив структур */ cd_info cd={“Red Moon Men”,“Sam and the Snuds”,12,11.95, “02/13/97” };

Вложенные структуры. Sruct Date

{int mounth;int day; int year;};

struct PersonInfo {float height;float weight;

Date birthday;}person;

Чтобы получить доступ к переменной birthday – члену person нужно использовать операцию «точка»: person.birthday, но т.к. эта переменная в свою очередь является переменной структурного типа Date, то доступ, например, к году рождения будет добавлением операции «точка» к имени year: person.birthday. year.

(13)Объединение.

Вводятся для хранение в некоторый момент времени различных компонентов. Место в памяти выделяется для большего из элементов объединения. Пример:

union un {int i; float f; char c;} my_u; Обращение к элементу i объединения my_u, типа un: my_u.i. В памяти храниться последний инициализированный элемент объединения.

(14) Обобщенная архитектура процессора IBM PC. Адресное пространство. Система адресации в MS-DOS.

Совокупность всех доступных для программы адресов памяти называется адресное пространство.

Практически все микропроцессоры содержат:АЛУ(арифметическо-логическое устройство),регистры,дешифратор команд,блок управления и синхронизации,внутренние шины цепей управления,связанные с шинами адресов и данных,входы и выходы управления.

АЛУ выполняет арифм. и логич. операции и операции сдвига. Регистры- внутренние запоминающие устройства процессора для временного хранения обрабатываемой и управляющей информации .Регистры группируются след. обр.:1) РОН – регистры общ. назначения -8 – 16 разрядных регистров, кот-е могут произвольно исп. программистами:AX,DX,CX, BX,BP, SI, DI, SP. В качестве РОН м.б. применяться 32х разрядные регистры. 2)Регистры сегментов: CS (регистр сегмента кодов), SS (регистр сегмента стека), DS (регистр сегмента данных), ES (регистр доп. сегмента), 3) Регистр системных флагов: FlAGS, 4) Управляющий регистр (счетчик команд): IP.

Дешифратор команд – декодирует содержимое регистра команд, выполняет необх. преобраз – я, и активизирует работу блока управления. Проц имеющий n линий в шине адреса может адресоваться к 2n ячейкам памяти. Кажд. из 2n комбинаций на шине адреса выбирает опред. ячейку памяти. Такая модель памяти назв. - плоской Прога может адресоваться от 0 до 2n-1 ячейке памяти. С точки зрения проги адрес-е пространство разделено на блоки смежных адресов(сегментов), а прога может обращаться только к данным в этих сегментах.

DOS. В РС совместимых ПК адрес формируется в виде пары – сегмент:смещение.(логический или виртуальный адресс). Кажд. лог адр. соотв. ед. физ адрес, но физ адресу соотв. – 4кб лог адресов. Для получения физического адреса ячейки, отсчитанного от начала памяти 0000:0000, содержимое сегмента регистра нужно сдвинуть на 4 разряда влево, азатем сложить со смещением. физ адр=сегмент*16+смещ.

Норамлизованный адрес т.е. адрес приведенный к такому виду, что смещение находится в диапазоне от 0 до 16. Сегмент = сплошной адрес/16(на 4 разряда), Смещение = сплошной адрес%16(остаток от целочисленного деления).

(15)Распределение памяти при выполнении прог на С++: 1)Размещенеие программного кода, 2) Размещ-е данных, 3) Динамического исп., 4)Резервирование компилятором на время выполнения проги.

старшие адреса младшие адреса

памяти памяти.

Куча – специальным обр-м организованная обл. памяти, исп. для работы с динамическими структурами. Объём памяти для кучи зависит от того скока памяти просит прога функцией alloc.

Стек – обл. памяти организованная так, что позволяет добавлять и удалять элементы данных, но при этом доступен только последний добавленный элемент.

(16)Функции в языке С.Параметры функций. Функция–логически завершенный, определенным образом оформленный фрагмент программы, имеющий имя. Функции позволяют разделить большие вычислительные задачи на более мелкие. Функции в С++ бывают встроенные (стандартные) и программируемые пользователем. Вызов функции приводит к выполнению некоторых действий. Например, при обращении к функции printf() осуществляется вывод данных на экран. В общем виде функции описываются следующим образом: [<тип >] <имя функции> (<тип > <имя параметра>,…, <тип > <имя параметра>)

{ <тело функции>}

Рассмотрим на примере использование параметров функции. Напишем функцию space, в качестве аргумента которой будет число пробелов, которое должна напечатать эта функция.

#define address “Zelenograd”

#define name “Moscow Institute Electronic Engineering”

#define department “Informatics and Programming”

//Определение функции starbar

#include <stdio.h>

#define LIMIT 65

void starbar()

{ int count; for (count=1; count <= LIMIT; count++)

putchar (‘*’); putchar (‘\n’); }

//Определение функции space()

void space(int number)

{ int count; for (count=1; count <= number; count++)

putchar (‘ ’); }

void main()

{ int spaces; starbar(); space(25); printf(“%s \n”, address); spaces = (65-strlen(name))/2; //Вычислить, сколько пробелов space(spaces); printf(“%s \n”, name); space((65-strlen(department))/2); //аргумент-выражение printf(“%s \n”, department); starbar();}

Переменная number называется формальным аргументом. Указанная переменная приобретает значения фактического аргумента при вызове функции.

Другими словами, формальный аргумент – переменная в вызываемой подпрограмме, а фактический аргумент – конкретное значение, присвоенное этой переменной вызывающей программой.

Если для связи с некоторой функцией требуется более одного аргумента, то наряду с именем функции можно задать список аргументов, разделенных запятыми:

void printnum (int i, int j)

{ printf(“ координаты точек %d%d\n”, i, j);}

Рекурсия означает возврат. Рекурсивной наз-ся ф-я вызывающая сама себя.Рекурсивные ф-и, которые вызывают прямо сами себя наз-ся искл-но рекурсивными. Если 2 ф-и рекурсивно вызывают друг друга, то они наз-ся взаимно рекурсивными. Каждый вызов рек. ф-и наз-ся рекурсивным вызовом или шагом рекурса.

Соседние файлы в папке Прочее