- •Операторы ввода-вывода
- •Жизненный цикл программы
- •Способы описания алгоритмов
- •Базовые структуры
- •9______________
- •Типы данных
- •Операторы цикла
- •Указатели
- •Int *X;
- •Одномерные массивы
- •Обработка одномерных массивов
- •Описание двухмерного массива
- •Обработка матриц
- •Функции
- •Общий вид описания функции
- •Обращение к функции
- •Механизм замены параметров
- •Параметры-массивы в функциях
- •Работа с текстовыми файлами
- •Обработка бинарных файлов
Указатели
Указатель - это переменная, содержащая адрес области памяти.
Значение указателя сообщает о том, где размещен объект, но ничего не говорит о значении самого объекта.
Формат описания:
Тип *имя;
Int *X;
char *y;
Над указателями можно выполнять арифметические операции сложения и вычитания.
Существует 4 способа правильного задания начального значения для указателя:
Присваивание указателю адреса существующего объекта:
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__________