- •1…Понятие информатики, информации, кодирования информации.
- •2…Системы счисления, переводы чисел из одной позиционной системы счисления в другую.
- •3… Понятия алгоритма: рекурсивные функции системы текстовых замен.
- •4… Способы описания языков программирования: бнф-нотации, синтаксические диаграммы
- •12…Оператор безусловного перехода, операторы продолжения и завершения, примеры использования.
- •16…Ввод/Вывод данных в с.
- •18…Производные типы данных, массивы, работа с массивами.
- •22…Файлы прямого и последовательного доступа к данным, форматизованный и неформатизованный ввод/вывод.
- •24…Понятие подпрограммы, назначение подпрограмм, использование подпрограмм.
- •26…Передача параметров в подпрограмму, параметры входные и выходные, параметры , передаваемые по значению и по адресу.
- •27…Использование подпрограмм, параметры формальные, локальные, глобальные, обращения к подпрограммам, фактические параметры.
- •28…Передача параметров массивов в подпрограмму, примеры.
- •29…Рекурсивные функции, примеры.
- •30…Понятие структурного программирования, этап проектирования – композиция и декомпозиция, понятие статической и динамической структуры программы, спецификация программы.
- •31…Понятие частичной и полной корректности программы, правила вывода – общий вид, правила консеквенции.
- •32… Правила вывода для операторов: пустого, присваивания, составного.
- •33… Правила вывода для оператора ветвления.
- •34… Правило вывода для операторов: оператора выбора, операторов цикла с параметром.
- •35… Правила вывода для циклов с предусловием и постусловием, пример использования правил вывода для реализации цикла с постусловием оператором цикла с постусловием.
- •36… Пример для доказательства правильности программы.
24…Понятие подпрограммы, назначение подпрограмм, использование подпрограмм.
Подпрограмма – отдельная структурная единица, имеющая собственное имя и реализующая вспомогательный алгоритм, который неоднократно используется в основной программе или другой подпрограмме с различными значениями некоторых величин, называемых параметрами.
Для того чтобы использовать подпрограмму, ее необходимо описать, а затем в нужном месте основной программы или другой подпрограммы обратиться к ней с конкретными значениями параметров.
Описать подпрограмму –
значит выбрать для нее имя, определить величины, от которых будет зависеть вычисление подпрограммы в различных точках обращения
и записать последовательность операторов, реализующих вспомогательный алгоритм.
Достоинства использования подпрограмм
Позволяет избегать дублирования одинаковых частей программы, делая ее короче, но увеличивая время ее выполнения (за счет передачи параметров, обращения к подпрограмме, возврату из нее)
Делает структуру программы более четкой и понятной (основная программа записана более кратко, использование подпрограммы более эффективно с точки зрения разработки, отладки, модификации программы). Отдельные подпрограммы, модули, можно хранить в отдельных файлах, т.е. отдельно друг от друга.
Позволяет расширить язык программирования, добавив в него новые функции, операции и операторы-процедуры. Для любого языка программирования создана большая библиотека стандартных подпрограмм и программист, разрабатывая сложный программный продукт, создает, по сути, собственную библиотеку подпрограмм, которые затем можно использовать для разработки других проектов.
Позволяет повторно использовать ранее разработанные программы.
25…Подпрограммы в С/С++, функции, возвращающие значение и не возвращающие значение, примеры.
В С/С++ существует один тип подпрограмм – функции. Но функции здесь реализуются так, что они могут выдавать один результат и тогда обращением к ним является указатель функции (имя функции, за которым в ( ) через запятую фактические параметры). В этом случае указатель функции – операнд в выражении или элемент списка вывода.
Если же подпрограмма выдает несколько результатов, то обращение к функции – самостоятельный оператор. Это функции, невозвращающие значение – процедуры.
C=n!*(m!*(n-m)!)
# include <stdio.h>
void pfakt (int k,int *f) {
int j; *f=1;
for (j=2; j<=k; j++)
*f=*f*j;
return ;
}
void main (void) {
int n,m,c;
int f1, f2, f3;
print (“\n введите два исходных целых числа”);
scanf (“%d%d”, &n, &m);
pfact (n, &f1);
pfact (n, &f2);
pfact (n-m, &f3);
c=f1/f2/f3;
print (“\nc=%d”, c);
}
26…Передача параметров в подпрограмму, параметры входные и выходные, параметры , передаваемые по значению и по адресу.
Параметры, указанные в описании подпрограммы, называются формальными, а указанные в обращении к ней – фактическими.
Передача параметров – подстановка фактических параметров вместо формальных при обращении к подпрограмме.
При вызове подпрограммы (обращении к ней) в начале вычисляется выражения, являющиеся формальными параметрами, затем в стеке выделяется память для хранения формальных параметров в соответствии с их типом и каждому из них присваивается значение фактического параметра.
Существует 2 способа передачи параметров – по значению и по адресу.
При п.п. по значению в стеке сохраняются копии значений фактических параметров и доступ к исходным значениям их становится невозможным, так что значения в подпрограмме не могут быть изменены.
Для передачи по адресу в стеке сохраняются адреса аргументов, и подпрограмма обращается по этим адресам к фактическим параметрам и т.о. можно изменить их первоначальные значения.
В С/С++ параметры по адресу могут передаваться с помощью указателей и с помощью ссылок.
Формальные параметры делятся на входные и выходные.
Значения входных параметров должны быть известны до обращения к подпрограмме. Вх. параметры могут передаваться как по значению, так и по адресу. Входными параметрами могут быть выражения, в том числе константы и переменные.
Выходные параметры могут передаваться только по адресу.