Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.03.2014, 22:15   #1
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию Линейный Поиск в массиве со случайными числами в PascalABC.NET

Задание:
Сравнить время выполнения линейного поиска в массиве a[n],случайных чисел при n=100,200,…,1000.

В чём собственно проблема
не работает генератор случайных чисел,хотя прописана процедура.Почему то работает если вводишь с клавиатуры и тогда процедура работает,но не считает ни место,не элемент массива,время считает.

нужно чтобы он рандомно загружал числа и сразу выводил на печать вхождение числа,место и время.

Код:
program LinSearch1;
 
uses Crt;
 
const
 
n = 1000;
 
type
  massiv = array[0..n] of integer;
 
var
mas:massiv;
  y: array [0..9] of integer;
  x, j, i, f: integer;
  
  
procedure print(z, t: string);
begin
  writeln('Первое вхождение числа ', z, ' в массив А на ', i, ' месте','Время',t,'миллисекунд');
end;
 
procedure ran(var m: massiv);
begin
  for var i := 0 to f do
  begin
    m[i] := random(100);
  end;
end;
 
procedure linp(var m:massiv);
var
  t1,t2,n, x,z, i: integer;
begin
  read(n);
  for i := 1 to n do read(m[i]);
  read(x);
  i := 1;
  while (i <= n) and (m[i] <> x) do
  i := i + 1;
t2 := milliseconds;
print(inttostr(z), inttostr(t2 - t1));
end;
 
begin
 y[0]:=100;
 y[1]:=200;
 y[2]:=300;
 y[3]:=400;
 y[4]:=500;
 y[5]:=600;
 y[6]:=700;
 y[7]:=800;
 y[8]:=900;
 y[9]:=1000;
 for var h:=0 to 9 do
 begin
 f:=y[h];
  writeln('--------------',f,'--------------');
  ran(mas);
 linp(mas);
end;
end.
Otar4ik вне форума Ответить с цитированием
Старый 22.03.2014, 10:20   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

в начале программы надо обязательно вызвать процедуру иницилизации генератора ПСЧ:
Код:
begin
   Randomize;
 y[0]:=100;

ну и массив y я бы в цикле заполнил:
вместо y[0]:=100; y[1]:=200; .... y[9]:=1000;
достаточно:
Код:
  for i:=1 to 10 do y[i-1] := i*100;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.03.2014, 14:42   #3
Otar4ik
Форумчанин
 
Регистрация: 16.04.2010
Сообщений: 123
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
в начале программы надо обязательно вызвать процедуру иницилизации генератора ПСЧ:
Код:
begin
   Randomize;
 y[0]:=100;

ну и массив y я бы в цикле заполнил:
вместо y[0]:=100; y[1]:=200; .... y[9]:=1000;
достаточно:
Код:
  for i:=1 to 10 do y[i-1] := i*100;
Простите,но но всё равно не выводит ничего.вот если я введу он выдаст время,а так на автомате ничего не выводит(
Otar4ik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Visual Basic. Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве столбец... Nember Помощь студентам 0 21.12.2013 21:56
Работа со случайными числами drayvhard PHP 7 04.12.2013 08:58
Поиск числа в массиве, операции с минимально отличающимися от заданного числами mas_stm Microsoft Office Excel 9 30.05.2012 18:43
Задача со случайными числами Станислав1405 Microsoft Office Excel 2 14.02.2011 17:04
Проблема со случайными числами Renge Помощь студентам 3 24.12.2010 18:04