- •1.1 Арифметические операторы.
- •1.3. Логические операторы
- •1.6. Выражения
- •1.7. Преобразование типов
- •2.6. Вложение else if
- •2.7. Инструкция switch
- •3.1. Оператор цикл for
- •3.4. Цикл do-while
- •3.3. Цикл while
- •4.1. Алгоритм Евклида
- •4.2. Алгоритмы обмена чисел
- •4.3.А. Для заданного натурального числа определить количество единичных бит в его представлении.
- •4.3.B. Найти количество повторений каждой цифры у заданного натурального числа
- •4.3.C. Перевод из 10-й с/с в 2..9
- •5.1. Объявление и определение функций .
- •5.2. Функция main()
- •5.3. Функция main() с параметрами
- •5.4. Обмен данными между функциями. Возвращаемое значение
- •5.5. Параметры функции
- •5.6.A. Функция перевода числа в различные нумерации
- •5.6.C. Поиск количества единичных бит в двоичном представлении числа.
- •5.6.E. Вычисление n!
- •5.6.F. Вычисление сочетаний из n по m без факториала
- •7. Функции форматированного вывода
- •7. Функции форматированного вывода (продолжение)
- •8. Функции форматированного ввода
- •9. Функции общего назначения
- •Void srand(unsigned int );
- •11.1. Объявление и инициализация массива
- •11.3. Ввод-вывод массивов
- •11.4 Операции над элементами массива
- •11.5. Передача массивов функциям
- •11.6. Обработка одномерных и двумерных массивов
- •11.7. Поиск элемента с заданными характиристиками
- •12.1. Переменные-указатели
- •12.2. Oператоры для работы с указателями.
- •12.3. Арифметические действия с указателями.
- •12.4. Динамическое распределение памяти
- •12.5. Указатели и массивы
- •12.6. Массивы-параметры
- •12.7. Указатели на константы и константные указатели.
- •12.8. Указатели на функции.
- •12.9. Алгоритмы преобразование и перестановки .
- •12.10. Алгоритмы расширение и сжатие массивов
- •13.1Сортировка пузырьком
- •13.2Сортировка Вставками
- •13.3Сортировка выбором
- •13.4Линейный поиск
- •Int sprintf(char *buffer, const char *format, ...);
- •15 Цели введения новых типов:
- •Int fclose(file* stream);
- •Int feof(file* stream);
- •18. Функции и разработка программ
- •18.1. Функции с переменным количеством параметров
- •18.2. Глобальные и локальные переменные, область видимости и время существования.
- •18.3. Спецификаторы классов памяти.
- •18.4. Компоновка нескольких файлов в одну программу
- •18.5. Директивы препроцессора
- •Задача Иосифа Флавия
- •Задача о рюкзаке
- •Классическая архитектура компьютера
- •Процессор - программно-управляемое устройство
- •Регистры, назначение и характеристика
- •Xchg приемник, источник
- •23Команды сравнения:
- •25 Команды организации циклов:
- •26 Команды пересылки:
- •27 Логические команды:
- •28 Команды обработки строк
- •Префиксы повторения
- •29.1. Регистры сопроцессора
- •29.2. Команды пересылки данных
- •29.3. Арифметические команды
- •29.4. Команды сравнения чисел
- •29.5. Трансцендентные команды
- •29.6. Управляющие команды
- •30.1. Команда call
- •23.6. Внешние подпрограммы
- •23.7.Компилятор masm
11.3. Ввод-вывод массивов
Ввод элементов одномерного массива организовать цикл. for (int i=0; i<n; i++) { printf ("введите элемент массива"); scanf("%d",&A[i]); }
Вывод элементов одномерного массива.
for ( i=0; i<n; i++)
printf("%d \n",A[i]);
// то же можно и через cout
for ( i=0; i<n; i++)
printf("%d ",A[i]);
Вывод в 2 столбца: for ( i=0;i<n-1;i+=2) { printf("%-5d%-5d\n",A[i],A[i+1]); printf("%d\t%d\n",A[i],A[i+1]); }
Ввод элементов двумерного массива for (int i=0;i<n;i++) for (int j=0;j<m;j++) scanf("%d",&Ma[i][j]);
// Вывод матрицы построчно, каждое число в 5 позициях for (int i=0;i<n;i++) { for (int j=0;j<m;j++) printf("%5d",Ma[i][j]); printf(“\n"); } }
11.4 Операции над элементами массива
Над элементами массива можно выполнять любые операции, допустимые типом элементов (базовым типом): поиск, генерация(построение), преобразование, сортировки .
К двум совместимым статическим массивам А и В нельзя применять операция присваивания: т.к. это константный указатель.
int sum(int a[], int n) {
int s = 0; for (int i = 0; i < n; ++i) s += a[i]; return s;
}
int sum(int a[], int n) { for ( int i = -1,int s = 0;i < n-1; s += a[++i]); return s; }
11.5. Передача массивов функциям
Для передачи массивов-параметров функций формальный параметр массив можно объявить тремя способами:
-указатель, тип которого будет совпадать с типом элементов массива; int function (int *a, int n) {……}-массив с фиксированной длиной; int function ( int a[20]) {……} -безразмерный массив. int function ( int a[], int n) {……}
Когда двумерный массив используется как параметр функции, необходимо передать указатель на первый элемент. Функция, получающая двумерный массив должна как минимум определять размерность первого измерения. Формальный параметр двумерный массив можно объявить следующими способами: · двумерный массив с фиксированной длиной; int function ( int ma[100][100]){……} Для использования этой функции двумерный массив должен быть описан с максимальной размерностью int Ma[100][100], но можно обрабатывать размерности n*m.
· двумерный с фиксированной размерностью первого измерения, т.е. второй размерностью; int func ( int ma[][100]) {…} Для использования этой функции двумерный массив должен быть описан со второй размерностью =100
· указатель, которому при вызове буде соответствовать адрес первого элемента двумерного массива; int func ( int *ma) {……} В этом случае массив должен быть точно такой же размерности, как при вызове.
· указатель на двумерный массив, тип которого будет совпадать с типом элементов массива. int func ( int **ma) {……} - двумерный массив должен быть описан как указатель на указатель, для int **ma необх.ВыделитьПамятьНекоторойРазмерности n*m,но можно<= n*m
11.6. Обработка одномерных и двумерных массивов
void main() { int A[30],n; srand(5000); printf("Dimension? "); scanf("%d",&n); for (int i=0; i<n; i++) {
A[i] = rand()%100; printf("%d ",A[i]); } printf("\nsumma= %d ",sum(a, n)); }
Поcтроение треугольника Паcкаля int k,l; int Ma[10][10]; n=10; Ma[0][0]=1; for ( i=1; i<n; i++) { Ma[i][i]=1; Ma[i][0]=1; for (int j=1; j<i; j++) Ma[i][j]=Ma[i-1][j-1]+Ma[i-1][j]; }