 
        
        Лабораторная работа №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:


