- •Типы данных в 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)
- •Объединения
- •Пример программы
- •Инициализация объединения
Результат работы программы
Передача в функцию двумерного массива
void MyFunction(int mas[ ][3], int m, int n); где
mas[ ][3] — адрес начала массива
m и n — количество строк и столбцов в массиве
Вызов функции: int massiv[4][3];
…
MyFunction(massiv, 4, 3);
Задача
Ввести с клавиатуры числа в двумерный массив m x n. Вывести на экран массив в виде таблицы. Вывести на экран числа из второй строки в обратном порядке. Все действия над массивом выполнить с помощью функций
Решение задачи (1)
#include <stdio.h> #include <stdlib.h>
#define M 4 // количество строк #define N 3 // количество столбцов
void input(int mas[][N], int m, int n); void print(int mas[][N], int m, int n); void revers(int row[],int n);
Решение задачи (2)
int main()
{
int massiv[M][N]; input(massiv,M,N); print(massiv,M,N); revers(massiv[1],N); return 0;
}
Решение задачи (3)
void input(int mas[][N], int m, int n)
{
int i,j; for(i=0;i<m;i++)
for(j=0;j<n;j++) scanf("%d", *(mas+i)+j);
}
Решение задачи (4)
void print(int mas[][N], int m, int n)
{
int i,j; for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%6d", *(*(mas+i)+j)); printf("\n");
}
}
Решение задачи (5)
void revers(int row[],int n)
{
int i; printf("\n");
for(i=n-1;i>=0;i--) printf("%7d", row[i]);
}
Объявление пользовательского типа
typedef
typedef int mas[4]; typedef float mas2[3][4];
Создание массива:
mas One; mas2 Two;
Передача массива в функцию:
void MyFunction1(mas a, int n);
void MyFunction2(mas2 b, int m, int n);
Методы программирования
Структурное программирование Модульное программирование
Модуль в С:
*.h — заголовочный файл (внешняя часть модуля, интерфейс, header)
•Директивы препроцессора
•Объявления типов данных
•Прототипы функций
*.c, *.cpp, *.cc — реализация модуля (внутренняя часть модуля)
•Объявления и инициализация переменных
•Реализация (определение) функций
•Директивы препроцессора