
- •1. Алгоритм и его свойства.
- •2. Средства записи алгоритма – графическая схема.
- •3. Типы алгоритмов и их графическое изображение.
- •4,5. Общая характеристика языка программирования Си.
- •6. Основные типы данных языка Си.
- •7. Операции и выражения языка Си.
- •8. Операции присваивания и операторы присваивания.
- •9. Математические функции. Правила их использования в выражениях.
- •16. Консольный ввод-вывод. Функции ввода-вывода символов.
- •16, 17. Консольный ввод-вывод. Функции ввода-вывода строк. Консольный форматированный ввод данных. Оператор ввода. Форматная строка. Спецификации преобразования.
- •19. Escape-последовательности.
- •Функция scanf предназначена для ввода данных в заданном формате. Обращение имеет вид:
- •20. Программирование линейных алгоритмов.
- •21. Логические выражения и правила их составления.
- •22. Оператор if. Две его формы.
- •If (выражение) оператор1;
- •If (выражение ) оператор1; else опертор2;
- •23. Команда выбора. Операторы switсh и break.
- •24. Понятие цикла. Типы циклов.
- •25. Операторы циклов. Оператор for.
- •26. Оператор цикла while.
- •27. Задача о табулировании функции в равноотстоящих точках.
- •28. Оператор цикла do-while.
- •29. Вложенные циклы.
- •30. Понятие рекуррентного соотношения. Пример рекуррентных вычислений.
- •32. Понятие массива. Понятия статического и динамического массивов. Размерность, размер массива.
- •Int a[n], b[n]; // Объявление 2–х одномерных массивов
- •33, 34, 35, 36. Синтаксис описания массивов. Понятие и описание одномерного динамического массива. Ввод-вывод одномерного массива.
- •37. Перестановка двух элементов одномерного массива.
- •38. Вычисление суммы элементов одномерного массива.
- •39. Подсчет количества элементов одномерного массива, удовлетворяющих заданным условиям.
- •40 Вычисление произведения элементов одномерного массива.
- •41. Поиск элементов одномерного массива, обладающих заданным свойством.
- •42. Поиск в упорядоченном одномерном массиве.
- •43. Поиск максимального (минимального) элемента одномерного массива и его местоположения.
- •44. Копирование массивов.
- •45. Формирование массива из элементов заданных массивов.
- •46, 47, 48. Понятие и описание двумерных массивов.
- •49. Типовые алгоритмы обработки одномерных массивов.
- •50. Организация циклов для просмотра элементов двумерного массива со сложными условиями повторения.
- •51. Обработка элементов квадратных матриц относительно главной и побочной диагоналей.
- •52. Символьный тип данных. Описание. Ввод-вывод.
- •Ввод-вывод символов
- •53. Символьный тип данных. Стандартные функции обработки символов.
- •54. Понятие и описание строки.
- •55. Понятие и описание динамической строки.
- •56. Ввод-вывод строк.
- •Функция scanf предназначена для ввода данных в заданном формате. Обращение имеет вид:
- •57. Операции над строками. Реализация операции присваивания.
- •58. Преобразование строки в число.
- •59. Поиск подстроки в строке.
- •60. Сцепление двух строк.
- •61. Определение позиции первого вхождения символа из заданного набора символов.
- •62. Сравнение двух строк.
- •63. Обработка строк, состоящих из слов.
28. Оператор цикла do-while.
Оператор цикла do-while является оператором цикла с постусловием, так как в нем анализ конца цикла производится после операторов тела цикла. Он используется, как и оператор while, когда количество итераций цикла заранее неизвестно и определяется в процессе выполнения цикла.
Особенностью оператора является выполнение тела цикла хотя бы один раз.
Общий вид оператора:
do S while (b );
Здесь S – простой или составной оператор – тело цикла. Он должен включать рабочую часть цикла и операторы изменения операндов выражения b (подготовки данных для очередного шага цикла); b – выражение любого типа, например, логическое, приводимое к арифметическому типу, определяющее условие повторения цикла.
29. Вложенные циклы.
В теле цикла может располагаться еще один цикл. В этом случае говорят, что алгоритм или программа содержат цикл в цикле или вложенные циклы. Здесь внешний цикл – цикл с предусловием, внутренний цикл –цикл с постусловием. Рабочая часть внешнего цикла выделена пунктирной линией. Число выполнений команд рабочей части внутреннего цикла может быть найдено как произведение числа повторений внутреннего цикла на число повторений внешнего цикла.
Кратность вложения циклов может равной не только двум, но и трем, четырем и т.д.
30. Понятие рекуррентного соотношения. Пример рекуррентных вычислений.
Последовательность x1, x2, …, x3 называется рекуррентной, если существует такая ф-ция f, которая позволяет вычислить n-ый член этой последовательности, зная р-предыдущих членов последовательности.
xn=f(xn-1, xn-2, …, xn-p), где n<p, p – целые числа.
xn=xn-1+2x2n-2
x1 и x2 – должны быть известны.
x3=x2+2x21
x4=x3+2x22
x5=x4+2x23
32. Понятие массива. Понятия статического и динамического массивов. Размерность, размер массива.
Массив – это совокупность элементов одного типа, имеющих одно имя и расположенных в памяти вплотную друг за другом. Доступ к отдельным элементам массива осуществляется по имени массива и индексу (порядковому номеру) элемента. Массивы могут состоять из арифметических данных, символов, строк, структур, указателей.
При объявлении массива в программе определяется имя массива, тип его элементов, размерность и размер. Размерность или количество измерений массива определяется количеством индексов при обращении к элементам массива. Массивы бывают одномерные, двухмерные, трехмерные и т.д. Размер массива – это количество его элементов по соответствующим размерностям.
Общий вид объявления массива:
<имя_типа> <имя_массива> [k1] [k2] … [kn];
где k1, k2, …, kn – количество элементов массива – константы или константные выражения по 1, 2, …, n измерениям. Причем значения индексов могут изменяться от 0 до ki – 1.
Такое объявление массива называют статическим, поскольку предельное количество его элементов известно заранее и оно уже не может быть изменено в ходе выполнения программы.
Обращения к элементам одномерного массива могут иметь вид: A[0], A[1], A[2],… A[9], A[2*3], A[i] , A[2*m+n]
При работе с массивами необходимо следовать следующим правилам:
современные трансляторы языка Си не контролируют допустимость значений индексов, это должен делать программист;
количество измерений массива не ограничено;
в памяти элементы массива располагаются так, что при переходе от элемента к элементу наиболее быстро меняется самый правый индекс массива, т.е. матрица, например, располагается в памяти по строкам;
имя массива является указателем – константой на первый элемент массива;
операций над массивами в Си нет, поэтому пересылка элементов одного массива в другой может быть реализована только поэлементно с помощью цикла;
над элементами массива допускаются те же операции что и над простыми переменными того же типа;
ввод/вывод значений элементов массива можно производить только поэлементно;
начальные значения элементам массива можно присвоить при объявлении массива.
В Си нет массивов с переменными границами. Но, если количество элементов массива известно до выполнения программы, можно определить его как константу с помощью директивы #define, а затем использовать ее в качестве границы массива, например,
#define n 10;
main ( )
{