- •Типы данных в 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)
- •Объединения
- •Пример программы
- •Инициализация объединения
Конструирование программы для обработки двумерного массива
MyModul.cpp |
Main.cpp |
MyModul.h
MyModul.h
#define M 4 #define N 3
typedef int tmas2[M][N];
void input(tmas2 mas, int m, int n); void print(tmas2 mas, int m, int n); void revers(int row[],int n);
#include ''MyModul.h'' #include <stdio.h> #include <stdlib.h>
void input(tmas2 mas, int m, int n){ int i,j;
for(i=0;i<m;i++)
for(j=0;j<n;j++) scanf("%d", *(mas+i)+j);
}
void print(tmas2 mas, int m, int n){ int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
printf("%6d", *(*(mas+i)+j));
MyModul.cpp
printf("\n");
}
}
void revers(int row[],int n){ int i;
printf("\n"); for(i=n-1;i>=0;i--)
printf("%7d", row[i]);
}
Main.cpp
#include ''MyModul.h'' int main()
{
tmas2 massiv; input(massiv,M,N); print(massiv,M,N); revers(massiv[1],N); return 0;
}
MyModul.h (2 редакция)
#ifndef MYMODUL_H_INCLUDED #define MYMODUL_H_INCLUDED
#define M 4 #define N 3
typedef int tmas2[M][N];
void input(tmas2 mas, int m, int n); void print(tmas2 mas, int m, int n); void revers(int row[],int n);
#endif // MYMODUL_H_INCLUDED
Задача
В одномерный массив ввести целые числа. Сформировать второй массив, поместив в него 1, если соответствующий элемент первого массива имеет четное значение, и 0, если нечетное. Применить модульное построение программы.
Строки в C
1. Объявление строки как массива символов
char str[10];
Инициализация:
char str[10] = ''array'';
char str[10] = {'a','r','r','a','y','\0'};
char str[ ] = ''array'';
2. Объявление строки с помощью переменной- указателя
char *str2;
Инициализация:
char *str2 = ''array'';
Ввод и вывод строк
char str[15];
Ввод с клавиатуры:
scanf(''%s'', str); gets (str);
Вывод на экран:
printf(''%s'', str); puts (str);
Присваивание значения: char *str1;
str1 = str; или str1 = ''строка'';
Функции для обработки строк
Заголовочный файл: string.h
1. strlen (const char* str) — вычисляет
фактическое количество символов в строке
2. strcmp (const char* str1, const char* str2) —
сравнение строк str1 и str2
3. strcpy (char* str1, const char* str2) —
копирование символов строки str2 в строку str1
4. strcat (char* str1, const char* str2) —
конкатенация строк, т.е. добавление символов строки str2 в конец строки str1
Пример обработки строк
char str1[10] = ''работа_''; char str2[8] = ''робот''; char str3[100]; strcpy(str3, str1); strcat(str3, str2); strcat(str3, ''а'');
int n = strlen(str3);
printf(''Длина строки str3 = %d\n'', n);
if (strcmp(str1,str2)>0) printf(''%s больше %s\n'', str1,str2); if (strcmp(str1,str2)<0) printf(''%s меньше %s\n'', str1,str2); if (!strcmp(str1,str2)) printf(''Одинаковые строки\n'');