- •(1) Основные определения языка с. Алфавит языка. Структ. Прог.
- •Void main () - имя осн. Программы
- •(2) Осн. Типы данных. Константы.
- •(3) Выражения. Операторы.
- •Int i_arr[10]; char liter[80]; double l_mas[100];
- •(18) Понятие об указателях.Объявление и разыменовывание указателей.
- •(22)Динамические структуры данных. Списки.
- •(25)Вычисление интеграла методом прямоугольников c заданной точностью.
- •(26)Вычисление интеграла
- •Void main(){unsigned int I,n; float a,b,X,h,y,s;
- •Designed by barcas&kitty
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 ф-и рекурсивно вызывают друг друга, то они наз-ся взаимно рекурсивными. Каждый вызов рек. ф-и наз-ся рекурсивным вызовом или шагом рекурса.
