Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
52
Добавлен:
02.05.2014
Размер:
543.23 Кб
Скачать

Билет 32

2. Генерация случайных чисел

Представляет генератор псевдослучайных чисел, устройство, которое выдает последовательность чисел, отвечающую некоторым статистическим критериям случайности.

Билет 33

1. Массивы указателей на функции удобно использовать при разработке всевозможных меню, точнее программ, управление которыми выполняется с помощью меню. Для этого действия, предлагаемые на выбор будущему пользователю программы, оформляются в виде функций, адреса которых помещаются в массив указателей на функции. Пользователю предлагается выбрать из меню нужный ему пункт (в простейшем случае он вводит номер выбираемого пункта) и по номеру пункта, как по индексу, из массива выбирается соответствующий адрес функции. Обращение к функции по этому адресу обеспечивает выполнение требуемых действий. Самую общую схему реализации такого подхода иллюстрирует следующая программа для обработки файлов:

//RAZN2_2.СРР - массив указателей на функции.

#include <stdlib.h> // Для exit().

#include <iostream.h> // Для cout, cin.

// Определение функций для обработки меню:

void act1 (char* name)

{ cout <<"Действия по созданию файла " << name; }

void act2 (char* name)

{ cout << "Действия по уничтожению файла " << name; }

void act3 (char* name)

{ cout << "Действия no чтению файла " << name; }

void act4 (char* name)

{ cout << "Действия по модификации файла " << name; }

void act5 (char* name)

{ cout << "Действия no закрытию файла.";

exit(0); // Завершить программу.

}

// Тип MENU указателей на функции типа void (char *):

typedef void(*MENU)(char *);

// Инициализация таблицы адресов функций меню:

MENU MenuAct[5] = { act1, act2, act3, act4, act5 };

void main()

{

int number; // Номер выбранного пункта меню.

char FileName[30]; // Строка для имени файла.

cout << "\n 1 - создание файла";

cout << "\n 2 - уничтожение файла";

cout << "\n 3 - чтение файла";

cout << "\n 4 - модификация файла";

cout << "\n 5 - выход из программы";

while (1) // Бесконечный цикл.

{

while (1)

{ // Цикл продолжается до ввода правильного номера.

cout << "\n\nВведите номер пункта меню: ";

cin >> number;

if (number >= 1 && number <= 5) break;

cout << "\nОшибка в номере пункта меню!";

}

if (number != 5)

{ cout << "Введите имя файла: ";

cin >> FileName; // Читать имя файла.

}

// Вызов функции по указателю на нее:

(*MenuAct[number-1])(FileName);

} // Конец бесконечного цикла.

}

Текст этой программы можно взять здесь.

    При выполнении программы возможен, например, такой диалог:

1 - создание файла

2 - уничтожение файла

3 - чтение файла

4 - модификация файла

5 - выход из программы

Введите номер пункта меню: 3 <Enter>

Введите имя файла: PROBA.TXT <Enter>

Действия; по чтению файла PROBA.ТХТ

. . . .

Введите номер пункта меню: 5 <Enter>

Действия по закрытию файла.

    Пункты меню повторяются, пока не будет введен номер 5 - выход из программы.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.

Соседние файлы в папке Програмки на C++