Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
гшеш8.docx
Скачиваний:
10
Добавлен:
11.04.2015
Размер:
232.38 Кб
Скачать

Указатели

Указатель - это переменная, содержащая адрес области памяти.

Значение указателя сообщает о том, где размещен объект, но ничего не говорит о значении самого объекта.

Формат описания:

Тип *имя;

Int *X;

char *y;

Над указателями можно выполнять арифметические операции сложения и вычитания.

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

  1. Присваивание указателю адреса существующего объекта:

int a=5;

int *p=&a;

2) Присваивание указателю адреса области в явном виде:

char *p=(char*)0xB8000000;

3) Присваивание указателю безопасного нулевого адреса.

int *x=0;

int *y=NULL;

4) Выделение участка динамической памяти и присваивание ее адреса указателю:

  • c помощью операции new:

int *x=new int;

  • c помощью функция malloc() :

int *x=(int*)malloc(sizeof(int));

25__________

С++: организация ввода-вывода.

Потоковый ввод данных числового типа

Программа может запросить одно или несколько значений:

cin » d;

...........

cin » x1 » x2 » x3;

Для обеспечения потокового ввода к программе следует подключить заголовочный файл iostream и применить директиву using namespace.

Если в последнем примере убрать строку подключения пространства имен using namespace std, то надо будет указывать наименование пространства имен явно:

std::cin » i » f » d;

Форматный ввод

Общий вид записи оператора ввода

scanf(" форматная строка ", cпиcoк адресов переменных);

форматы ввода адреса вводимых переменных

Для обеспечения форматного ввода к программе следует подключить заголовочный файл stdio.h.

scanf ( "%d %d", &a, &b );

Операторы вывода данных на экран

Потоковый вывод

cout « g;

..........

Форматный вывод

Общий вид записи оператора

printf("список форматов",cпиcoк имен переменных и выражений);

Например:

printf ("Результат: %d + %d = %d \n", a, b, c );

При стандартной форме вывода вещественные числа отображаются на экране с шестью знаками после запятой.

26__________

Одномерные массивы

Описание одномерного массива задается следующим образом:

<тип элементов> <имя массива>[размер];

При описании массива можно задать начальные значения его элементов:

int dat[4]={5,8,-2,11};

float kom[]={3.5,6,-1.1};

Обработка одномерных массивов

При решении задач обработки массивов используют базовые алгоритмы реализации циклических вычислительных процессов: организация счетчика, накопление сумм и произведений, поиск минимального и максимального

27__________

Описание двухмерного массива

Описание матрицы задается структурным типом вида:

<тип элементов><имя> [m][ n] ;

где m – количество строк;

n –количество столбцов матрицы.

Обработка матриц

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

28­­­­­­­­__________

Динамический массив — массив переменной длины, память под который выделяется в процессе выполнения программы. Выделение памяти осуществляется функциями calloc, malloc или оператором new. Адрес первого элемента выделенного участка памяти хранится в переменной, объявленной как указатель. Следующий оператор означает, что описан указатель mas и ему присвоен адрес начала непрерывной области динамической памяти, выделенной с помощью оператора new:

int *mas=new int[10];

В переменной mas хранится адрес нулевого элемента динамического массива. Адрес следующего - mas+1, а mas+i является адресом i-го элемента. Обращение к i-му элементу динамического массива mas[i](*(mas +i)). Когда динамический массив перестает быть нужным, то память можно освободить с помощью функции free или оператора delete.

29__________

С++: строки, ф-кции обработки строк:

Строка – массив символов, заканчивающийся нуль-символом(\0).

По положению нуль - символа определяется фактич. длина строки: char st[30]; В квадратных скобках указываются мах число символов в строке st. Начальное значение строки можно задать при её объявлении следующим образом: char s[10]= «язык Си»;

Определение длинны строки: strlen(str)

Сравнение строк: strcmp (str1, str2) – сравнивает строки и возвращает 0, если они одинаковы;

рез-тат отрицателен, если str1<str2 и положит., если str1>str2.

Сцепление строк: strcat(str1,str2) – склеивает строки в порядке их перечисления.

Копирование строк: strcpy(str1,str2) – копирует строку str2 в строку str1.

Поиск адреса символа в строке: strchr(st,ch) – результатом является адрес найденного символа в строке st, иначе возвращается нулевой адрес.

30__________

.С++: типы определённые пользователем (struct):

Описание типа структуры:

Struct имя

{<тип><имя 1-го поля>;

<тип><имя 2-го поля>;

…………………………

<тип><имя последнего поля>;

};

31__________