- •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. Обработка строк, состоящих из слов.
45. Формирование массива из элементов заданных массивов.
В задачах формирования нового массива требуется создать массив из элементов существующего массива (массивов), удовлетворяющих заданному условию. В новый массив элементы заносятся, последовательно, начиная с нулевого индекса. Максимально число элементов в формируемом массиве может достигать количества элементов в исходном массиве (массивах), минимальное значение равняется нулю. В этом случае считается, что новый массив не сформирован.
При формировании новых массивов удобно использовать динамические массивы, поскольку число его элементов заранее не известно. Алгоритм создания нового массива схож с алгоритмом копирования.
A={6,0,-5,9,0,-4,8,-7,-5,44} Y={6,9,8,44} |
k=0; for(i=in;i<ik;i++) if (a[i]>0) { y[k]=a[i]; k++; } |
Для последовательной записи элементов в новый массив используется дополнительная переменная k – счетчик элементов в новом массиве. Начальное значение этой переменной принимается равной нулю, т.е считается что в новом массиве нет элементов. При обнаружении в исходном массиве элемента удовлетворяющего заданному условию, его значение заносится в новый массив на позицию k, а после счетчик элементов увеличивается на единицу (k=k+1). Таким образом, после обработки всего исходного массива по значению счетчика k можно определить, сформирован новый массив (k>0) и сколько в нем элементов (k).
46, 47, 48. Понятие и описание двумерных массивов.
Ввод-вывод двумерного массива.
Динамические двумерные массивы.
Двумерный массив в языке Си – это массив, элементами которого являются массивы.
Примером двумерного массива является матрица, которая характеризуется число столбцов и строк. Для обращения к элементу матрицы нужно указать номер строки и столбца, на пересечении которых он находится, не забывая о том, что нумерация начинается с нуля.
float b[20][20]; //20 строк и 20 столбцов.
Двумерные массивы расположены в памяти по строкам.
При объявлении двумерного массива может быть выполнена его инициализация.
Универсальный способ выделения памяти под двумерный динамический массив.
int i, m, n;
puts(“Введите m и n”);
scanf(“%d%d”, &m, &n);
int **b=new int *[m]; //1
for(i=0; i<m; i++) //2
b[i]=new int [n]; //3
1 – объявляется переменная и выделяется память
2 – орг. цикл для выделения памяти под каждую строку массива
3 – выделение памяти на каждую строку массива и i-тому элементу массива указателей на строки присваивается адрес начала участка памяти, выд. под строку двумерного массива.
for(i=0; i<n; i++) //
delete []b[i]; // освобождение выделенной динамической памяти
delete []b; //
Алгоритмы обработки двумерных массивов
Ввод матрицы
float x[10][10];
puts(“Введите m, n”);
scanf(“%d%d”, &m, &n);
for(i=0; i<m; i++)
for(j=0; j<n; j++)
{
printf(“Введите x[%d][%d]=”, i, j);
scanf(“%f”, &x[i][j]);
}
Вывод матрицы
puts(“Матрица x:”);
for(i=0; i<m; i++)
{
printf(“%8.2f”, x[i][j]);
printf(“\n”);
}
Сумма элементов, обработка относительно главной и побочной диагонали.