Лабораторная работа №4 Вариант 1
.doc
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ
Лабораторная работа №4
по дисциплине
«Технология программирования»
Программирование алгоритмов генерации псевдослучайных чисел
|
Студент |
|
|
|
Ельшаева Н.А. |
|
||||||||
|
|
|
подпись, дата |
|
фамилия, инициалы |
|
||||||||
|
Группа |
|
АС-09 |
|
|
|
|
|||||||
|
|
|
|
|
|
|
||||||||
|
Принял |
|
|
|
Домашнев П.А. |
|
||||||||
|
|
|
|
|
|
|
||||||||
|
ученая степень, звание |
|
подпись, дата |
|
фамилия, инициалы |
|
Липецк 2010
1. Задание
Написать программу, осуществляющую генерацию определенного количества псевдослучайных чисел из заданного пользователем интервала заданным методом и вывод их на экран. Количество чисел и интервал вводит пользователь. Программа должна также записывать сгенерированную псевдослучайную последовательность в файл. Формат файла – двоичный.
Варианты
Алгоритм поиска |
|
1 – метод середин квадратов |
|
2
int
y=(int)(pow(x,2.0)/(pow(10.0,(k/2))))%((int)pow(10.0,k));
return y;
int i,m,y,k=0,x;
k=0
нет
да
y=y/10
k++
i=0
нет
да
x=func(x,k);
i++
fclose(fp);
.
Блок-схема
3. Листинг программы
#include <stdio.h>
#include <math.h>
int func(int x,int k)
{
int y=(int)(pow(x,2.0)/(pow(10.0,(k/2))))%((int)pow(10.0,k));
return y;
}
void main()
{
int i,m,y,k=0,x;
FILE *fp=fopen("D:/1","ab+");
printf("Vvedite nachalnoe znachenie i kol-vo chisel: ");
scanf("%d %d",&x,&m);
y=x;
for(k=0;y>=1;k++)
y=y/10;
for(i=0;i<m;i++)
{
x=func(x,k);
fwrite(&x,sizeof(int),1,fp);
printf("%d\n",x);
}
fclose(fp);
}
4. Контрольный пример
Содержимое файла 1: