- •Типы данных в C
- •Целые типы данных
- •Знаковые и беззнаковые типы
- •Вещественные типы данных
- •Вычисление арифметических выражений
- •Указатели
- •Выражения, содержащие указатели
- •Преобразование типов указателей
- •Адресная арифметика
- •Пример использования указателей
- •Перечислимый тип
- •Тип void
- •Структура программы на языке C
- •Функция пользователя
- •Функция, не возвращающая значение
- •Функция с параметрами, возвращающая значение
- •Массивы
- •Доступ к элементу массива
- •Примеры
- •Обращение к элементу одномерного массива с помощью переменной- указателя
- •Двумерный массив
- •Доступ к элементу двумерного массива с помощью указателей
- •Комбинированные способы обращения к элементам двумерного массива
- •Задача
- •Параметры функции
- •Передача параметра-значения
- •Передача параметра-указателя
- •Передача параметра-ссылки
- •Пердача в функцию одномерного массива
- •Задача
- •Генератор случайных чисел
- •Решение задачи (1)
- •Решение задачи (2)
- •Решение задачи (3)
- •Решение задачи (4)
- •Решение задачи (5)
- •Результат работы программы
- •Передача в функцию двумерного массива
- •Задача
- •Решение задачи (1)
- •Решение задачи (2)
- •Решение задачи (3)
- •Решение задачи (4)
- •Решение задачи (5)
- •Объявление пользовательского типа
- •Методы программирования
- •Конструирование программы для обработки двумерного массива
- •MyModul.h
- •Main.cpp
- •MyModul.h (2 редакция)
- •Задача
- •Строки в C
- •Ввод и вывод строк
- •Функции для обработки строк
- •Пример обработки строк
- •Массивы строк
- •Обработка символов в строках
- •Пример распознавания символов
- •Разбиение строки на лексемы
- •Результат работы программы
- •Структуры
- •Объявление тега структуры (синоним типа)
- •Анонимный тип структуры
- •Инициализация структурной переменной
- •Действия над структурами
- •Задача
- •Передача в функцию структурной переменной
- •Вложенные структуры
- •Массив структур
- •Передача в функцию массива структур
- •void input_struct(struct Person* P, int n)
- •Объединения
- •Пример программы
- •Инициализация объединения
Массивы
Тип элемента массива Индекс элемента массива
Начальный индекс элемента массива — 0 Размерность массива
Объявление массива:
int A[4]; float B[3][5]; char symb[5][6][4]; Инициализация одномерного массива:
int A[4] = {5,-3,8,6};
Доступ к элементу массива
Элеме 5 |
-3 |
8 |
6 |
нт |
|
|
|
Индекс 0 |
1 |
2 |
3 |
int a[4];
1. С помощью индекса: a[0] a[3] a[i] pritntf(''%d'', a[3]);
2. С помощью указателя:
a — константа-указатель на начало массива a+1 — адрес элемента массива с индексом 0
*(a+1)<==> -3 |
*(a+i) <==> ? |
Примеры
1.Ввести в числовой массив 5 вещественных чисел. Вычислить среднее арифметическое элементов массива.
2.Ввести в числовой массив 8 вещественных чисел. Вычислить максимальное значение элемента массива.
Обращение к элементу одномерного массива с помощью переменной- указателя
int D[3] = {1,2,3}; int* ptr = D;
for(int i=0; i<3; i++)
{
printf(''%7d'', *ptr); ptr++;
}
Двумерный массив
0 |
-1 |
-2 |
-3 |
-4 |
1 |
1 |
2 |
3 |
4 |
2 |
-5 |
-6 |
-7 |
-8 |
Объявление |
|
|
|
|
Инициализация int B[3][4] = {-1,-2,-3,-4,1,2,3,4,-
5,-6,-7,-8}; |
0 |
1 |
2 |
3 |
|
|
|
|
Доступ к элементу B[2][1] <==> -6
Доступ к элементу двумерного массива с помощью указателей
int B[3][4]; B
*B, *(B+1), *(*(B+1)+2)
-3 -4
34
2 -5 -6 -7 -8
*(*(B+j)+i), j - номер строки, i - номер столбца |
|||
0 |
1 |
2 |
3 |
Комбинированные способы обращения к элементам двумерного массива
0 |
-1 |
-2 |
-3 |
-4 |
1 |
1 |
2 |
3 |
4 |
int B[3][4];
2 |
-5 |
|
-6 |
-7 |
-8 |
|
*(B[i]+j) |
|
|
|
|
|
(*(B+i))[j] |
2 |
3 |
||
|
0 |
1 |
Задача
Ввести с клавиатуры числа в двумерный массив, состоящий из 5 столбцов и 3 строк. Вычислить наименьшее значение элемента для каждой строки. Результаты вывести на экран.
Параметры функции
1.Передаются через стек
2.Виды параметров:
•Параметр-значение
•Параметр-указатель
•Параметр-ссылка (в C++)
Передача параметра-значения
float mult(float a)
{
a = 2*a; return a;
}
int main()
{
float num = 15.5; printf(''%.3f \n'', mult(num)); printf(''%.3f '', num);
return 0;
Ответ:
31.000
15.500
}