- •Общие указания
- •Установка программного обеспечения
- •Основные библиотеки
- •Лабораторная работа №1
- •Основные теоретические сведения Создание проекта
- •Написание программного кода
- •Компиляция и устранение ошибок
- •Запуск программы на выполнение и ее останов
- •Ввод/вывод информации на экран
- •Генератор случайных чисел
- •Задание к лабораторной работе
- •Контрольные вопросы
- •Лабораторная работа №2
- •Основные теоретические сведения
- •Переменные и оператор присваивания
- •Арифметические операторы
- •Математические функции
- •Оператор if
- •Логические операторы
- •Оператор switch
- •Цикл while
- •Цикл for
- •Инструкция return
- •Решение типовых задач
- •Задание к лабораторной работе Варианты заданий к задаче 1
- •Варианты заданий к задаче 2
- •Варианты заданий к задаче 3
- •Контрольные вопросы
- •Лабораторная работа №3
- •Основные теоретические сведения
- •Одномерные массивы
- •Двумерные массивы
- •Алгоритмы
- •Решение типовых задач
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №4
- •Основные теоретические сведения.
- •Транспонирование матриц
- •Сложение матриц
- •Умножение матриц
- •Задание на лабораторную работу №4
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №5
- •Основные теоретические сведения.
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №6
- •Основные теоретические сведения.
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа №7
- •Основные теоретические сведения.
- •Работа с файлами
- •Решение типовых задач
- •Задание на лабораторную работу №5
- •Варианты заданий
- •Производная функции на интервале
- •Решение типовых задач
- •Задание на лабораторную работу №8
- •Контрольные вопросы
- •Лабораторная работа №9
- •Основные теоретические сведения. Определеный интеграл
- •Вычисление интегральной функции
- •Решение типовых задач
- •Задание на лабораторную работу №9
- •Контрольные вопросы
- •Лабораторная работа №10
- •Основные теоретические сведения.
- •Решение типовых задач
- •Задание на лабораторную работу №10
- •Варианты заданий
- •Контрольные вопросы
- •Литература
Генератор случайных чисел
Многие задачи лабораторного практикума требуют ввода различных исходных данных. В случае, когда надо ввести одно два числа это можно осуществить вручную. Но если требуется ввести в качестве исходных данных большое количество чисел, например, матрицу, целесообразно использовать генератор случайных чисел.
Для работы с генератором случайных чисел Си++ предоставляет две функции: srand()иrand() описанные в библиотекеstdlib.
Перед началом работы генератор случайных чисел необходимо проинициализировать. Для этого надо вызвать функцию srand()с любым целым положительным аргументом.
Каждый вызов функции rand()позволяет получить целое случайное число в диапазоне от0до величиныRAND_MAX. Численное значение этой величины нас не интересует. В листинге 5 представлен пример программы печатающей на экране два случайных числа.
Листинг 5 |
/*Программа вывода на экране двух случайных
чисел при постоянном аргументе функции srand ()*/
#include <iostream.h> // Подключение стандартной
// библиотеки ввода/вывода
# include <stdlib.h> // Подключение библиотеки содержащей
// описание функций srand() и rand()
void main( void )
{
srand (2); // Инициализация генератора
// Вывод на экран случайных чисел
cout << rand() << ‘\n’;
cout << rand() << ‘\n’;
}
|
Обратите внимание на то, что при каждом вызове программы (листинг 5) вы получаете одинаковую последовательность чисел. Это связано с тем, что мы инициализируем генератор случайных чисел одним и тем же числом srand(2). Если вы желаете получать каждый раз другую последовательность, то вам надо соответственно менять значение аргумента функцииsrand()при каждом новом запуске программы. Для этого можно, например, использовать системные часы. В листинге 6 представлен модифицированный вариант программы печатающей два случайных числа.
Листинг 6 |
/*Программа вывода на экране двух случайных
чисел при случайном аргументе функции srand ()*/
#include <iostream.h> // Подключение стандартной
// библиотеки ввода/вывода
# include <stdlib.h> // Подключение библиотеки содержащей
// описание функций srand() и rand()
# include <time.h> // Подключение библиотеки содержащей
// описание функций работы с системными часами
void main( void )
{
srand ((unsigned) time(NULL)); // Инициализация генератора
// Вывод на экран случайных чисел
cout << rand() << ‘\n’;
cout << rand() << ‘\n’;
}
|
Теперь при каждом вызове программы вы будете получать новую последовательность чисел.
Задание к лабораторной работе
Набрать, откомпилировать и запустить следующие программы:
Листинг 7 |
/*Вывод с использованием функции printf()*/
#include <stdio.h>
void main( void )
{
printf( “I love \” Algorithmization and programming!\”\n” );
}
|
Листинг 8 |
/*Вывод с использованием оператора <<*/
#include <iostream.h>
void main( void )
{
cout << “I love\n”;
cout << “\”Algorithmization and programming!”\n” );
}
|
Листинг 9 |
/*Форматированный вывод с использованием функции printf()
Программа выводит: фамилию, имя, группу и порядковый
номер по списку*/
#include <stdio.h>
void main( void )
{
printf( “I am %s\nGroup: %s\nOrder number: %d\n”, “Ivanov Ivan”, “TA-0113”, 1 );
}
|
Примечание!В программе представленной в листинге 9, каждый студент должен вписать свои данные.
Листинг 10 |
/*Ввод/вывод с использованием операторов << >>
программа ожидает ввода элементов матрицы 2х2,
а затем выводит матрицу на экран*/
#include <iostream.h>
void main( void )
{
int a, b, c, d;
cout << "Input elements\n";
cin >> a >> b >> c >> d;
cout << “Matrix 2x2\n”;
cout << a << ‘\t’ << b << ‘\n’;
cout << c << ‘\t’ << d << ‘\n’;
}
|
После запуска данной программы на экране появляется строка:
Input elements
Далее вам необходимо ввести четыре целых числа. Ввод очередного числа завершается нажатием клавиши Enter.
Листинг 11 |
/*Модифицированный вариант программы листинг 10.
Элементы матрицы формируются при помощи генератора
случайных чисел*/
#include <iostream.h>
# include <stdlib.h>
# include <time.h>
void main( void )
{
srand ((unsigned) time(NULL));
int a, b, c, d;
a = rand();
b = rand();
c = rand();
d = rand();
cout << “Matrix 2x2\n”;
cout << a << ‘\t’ << b << ‘\n’;
cout << c << ‘\t’ << d << ‘\n’;
}
|
В протоколе необходимо привести листинги всех набранных программ. Каждый листинг должны быть снабжен комментариями.