![](/user_photo/64119_0mZzG.jpg)
- •Типы данных в 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)
- •Объединения
- •Пример программы
- •Инициализация объединения
![](/html/64119/250/html_tBpcN_DLfb.983G/htmlconvd-SxVhkn31x1.jpg)
Передача параметра-указателя
void mult2(float* pa)
{
*pa = *pa * 2
}
int main()
{
float num = 15.5; mult2(&num); printf(''%f\n'',num); return 0;
}
Ответ:
31.000
![](/html/64119/250/html_tBpcN_DLfb.983G/htmlconvd-SxVhkn32x1.jpg)
Передача параметра-ссылки
void mult3(float &b)
{
b = b*2;
}
int main()
{
float num = 15.5; mult3(num); printf(''%f\n'',num); return 0;
}
Ответ:
31.000
Пердача в функцию одномерного массива
void MyFunction(int* a, int n);
где a - указатель на начало массива n — количество элементов в массиве
void MyFunction(int a[ ], int n);
где a[ ] - эквивалент обозначению *a n — количество элементов в массиве
Вызов функции: int massiv[6];
…
MyFunction(massiv, 6);
Задача
Для одномерного массива, содержащего N целых числа, определить, сколько чисел имеют значение в диапазоне от 100 до 10000. Заполнение массива выполнить с помощью генератора случайных чисел. Результат генерации и обработки массива вывести на экран. Заполнение, обработку массива и вывод результатов выполнить с помощью функций пользователя.
Генерация случайных чисел : rand() (stdlib.h)
Запуск генератора случайных чисел: srand() (stdlib.h и time.h)
Генератор случайных чисел
int i, a[5], b[5];
srand(time(NULL)); // Запуск генератора for(i=0; i<5; i++)
{
//Генерация в диапазоне 0 — RAND_MAX
//RAND_MAX = 32767 (stdlib.h) a[i]=rand();
//Генерация в диапазоне 2 - 101 b[i]=rand()%100+2;
}
Решение задачи (1)
#include <stdio.h> #include <stdlib.h> #include <time.h> #define N 30
void generate(int* a, int n); void print_mas(int* a, int n); int count(int* a, int n);
Решение задачи (2)
int main()
{
int mas[N]; generate(mas,N); print_mas(mas,N);
printf("number = %d\n", count(mas,N)); return 0;
}
Решение задачи (3)
void generate(int* a,int n)
{
int i; srand(time(NULL)); for(i=0; i<n; i++)
a[i]=rand();
}
Решение задачи (4)
void print_mas(int* a, int n)
{
int i; for(i=0;i<n;i++)
printf("%7d", *(a+i)); printf("\n");
}
Решение задачи (5)
int count(int* a, int n)
{
int c=0, i; for(i=0;i<n;i++)
if(a[i]>=100 &&a[i]<=10000) c++; return c;
}