- •Теоретические вопросы к экзамену к экзамену по курсу «Программирование и алгоритмизация»
- •A)Время жизни и область видимости программных объектов.Б) Инициализация глобальных и локальных переменных
- •Операторы языка Си. Оператор выражение, составной оператор, операторы условного перехода
- •Операторы цикла while и do … while
- •Указатели. Типизированные и нетипизированные.
- •Работа с файлами. Файловая переменная, открытие, закрытие файла.
- •Чтение и запись в файлы. Функция eof()
- •Определение и вызов функций. Фактические и формальные параметры.
- •Определение и вызов функций. Передача массивов и указателей на функции.
- •Бинарный поиск в упорядоченном массиве.
- •Сортировка массива на примере одного из алгоритмов.
- •Связанные списки: описание структуры, добавление и удаление элементов в односвязный линейный список.
- •Виды линейных списков: стек, очередь, дек.
- •Динамическое распределение памяти под объекты. Операторы new и delete.
- •Шаблоны классов.
- •Шаблоны функций.
Указатели. Типизированные и нетипизированные.
Указатель – ячейка в памяти, содержащая адрес некоторой переменной. Обращение к указателю, используя его идентификатор (например, *a, *a12 …)
Типизированные указатели
char *c; // указатель на char
int *i, j; // указатель на int
i=&j; // i присвоить адрес j
*i=1; // разыменованный указатель j=1
* - операция косвенной адресации
& - операция получения адреса
Указатели
void *p; // нетипизированный указатель
float *pf, f; // типизированный указатель
pf=&f; // pf присвоить адрес f
p=pf; // одному указателю присвоить значение другого
pf=(float *) p; // явное указание типа при разыменовании
Пример: вычисление суммы квадратов первых 100 натуральных чисел:
int *ptr;
long *sum;
*sum = 0;
for (*ptr = 1; *ptr <= 100; (*ptr)++)
*sum = *sum + (*ptr)*(*ptr);
При описании типизированного указателя необходимо сообщитькомпилятору, адреса переменных какого типа он может хранить
var <имя_указателя>: ^<тип_адресуемой_переменой>;
Например:
var p: ^integer;
q: ^real;
s: ^array[1..10] of byte;
Кроме того, существуют универсальные нетипизированные указатели, которые могут хранить адрес переменной любого типа:
var <имя_указателя>: pointer;
Работа с файлами. Файловая переменная, открытие, закрытие файла.
Для обработки файлов используют библиотеку ввода-вывода stdio.h. Файловая переменная описывается с помощью типа данных FILE Пример:FILE*fi;
Необходимо определить способо ткрытия, задать местонахождение файла и связать с ним файловую переменную. Функция fopen() :FILE*fopen(constchar*filename,constchar*mode); Первый параметр–путь к файлу. Второй параметр –способ открытия файла. FILE*fi; fi=fopen("data.txt","rt"); if(fi==0)//обработка ошибки…
Команда закрытия файла: fclose (имя-файловой-переменной)
Чтение и запись в файлы. Функция eof()
Определение и вызов функций. Фактические и формальные параметры.
Функция - это совокупность объявлений и операторов, обычно предназначенная для решения определенной задачи. Каждая функция должна иметь имя, которое используется для ее объявления, определения и вызова. В любой программе на СИ должна быть функция с именем main (главная функция), именно с этой функции, в каком бы месте программы она не находилась, начинается выполнение программы.
Определение функции должно располагаться в глобальной области видимости, до начала функции main, могут бы и варианты когда функции описаны в другом файле. Можно перед мэйн функцией описать прототип функции т.е. int kp101 (int, char, int), а где-то после мэйн( ) описать функцию
int kp101 (int a, char name, int kar)
{
Int c;
…
Операторы;
Return c;
}
Тип_возвращаемого_значения индификатор_функции (Список аргументов или параметров) { тело} . Формальные параметры – это что мы передаем так сказать из окружающей среды, ну т.е аргументы, а фактические параметры это то некоторые значения используемые во время выполнения функции.
Бля пример) хз поймете меня нет и вообще правильно ли отвечаю не знаю !
double summ ( double a, double c) { int d; d=a+c; return d;}
int main( ){ double opa; double x1,x2; scanf(“%f”, x1); scanf(“%f”, x2); opa=summ(x1,x1); printf(“%f”, opa) getch( ); return 0; }
x1,x2 –в нашем случаи формальные параметры или аргументы, а a и c – фактические параметры, которые используются в функции double summ(double,double)
Вызов функции состоит из идентификатора функции и списка аргументов в круглых скобках. summ(x1,x2):