Лабораторная работа №4 Вариант 17
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Лабораторная работа №4
по дисциплине
«Технология программирования»
на тему:
«Программирование алгоритмов генерации псевдослучайных чисел»
|
Студент |
|
|
|
Понарьин С.Н. |
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
АС-09 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
Домашнев П.А. |
|
||||||||
|
|
|
|
|
|
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2010
-
1. Задание:
Написать программу, осуществляющую генерацию определенного количества псевдослучайных чисел из заданного пользователем интервала заданным методом и вывод их на экран. Количество чисел и интервал вводит пользователь. Программа должна также записывать сгенерированную псевдослучайную последовательность в файл. Формат файла – двоичный.
Алгоритм поиска |
|
17 – мультипликативный метод |
|
-
2. Блок-схема программы
-
3. Листинг программы
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
int min,max,*data,c=177;
FILE *fp;
void Multi(int i)
{
data[i]=c*data[i-1]%(max+1-min)+min;
}
void main()
{
setlocale(LC_ALL,"Rus");
int i,kol_data;
char NameFile [20];
printf("Введите имя файла: ");
scanf("%s",NameFile);
strcat(NameFile,".bin");
fp=fopen(NameFile,"wb");
printf("Введите минмальный элемент: ");
scanf("%d",&min);
printf("Введите максимальный элемент: ");
scanf("%d",&max);
if(min>max)
{
printf("Интервал задан неверно!");
getch();
return;
}
printf("Введите количество элементов: ");
scanf("%d",&kol_data);
data=(int*)malloc(sizeof(int)*kol_data);
printf("Введите первый элемент: ");
scanf("%d",&data[0]);
for(i=1;i<kol_data;i++)
Multi(i);
printf("\n\nРезультат:\n\n");
for(i=0;i<kol_data;i++)
{
printf("x[%d]=%d%c\n",i+1,data[i]);
fwrite(&data[i],sizeof(data[i]),1,fp);
}
fclose(fp);
free(data);
getch();
}
-
4. Контрольный пример
1.
2.