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

Лабораторная работа №4 Вариант 1

.doc
Скачиваний:
8
Добавлен:
20.06.2014
Размер:
143.36 Кб
Скачать

2

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

КАФЕДРА АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ

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