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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2017, 21:14   #51
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Не туда добавлено !
Код:
program Lab1;

const NMAS=1000;
type tMass=array[1..NMAS] of Extended;

Procedure Otcenki(const x: tMass;var Mx,Dx:Real);
Var
  i:integer;
Begin
  Mx:=0; Dx:=0;
  For i:=1 to NMAS do Mx:=Mx+x[i];
  Mx:=Mx/NMAS;
  For i:=1 to NMAS do Dx:=Dx+Sqr(x[i]-Mx);
  Dx:=Dx/(NMAS-1);
end;

Var
  Mx,Dx,a,b,r:real;
  x:tMass;
  i :word;
  MaxVal,MinVal,M_b : real;
  hist: array [0..14] of integer;
  n:integer;
Begin
  Write('a  b:   ');
  ReadLn(a,b);
  Randomize;
  For i:=1 to NMAS do
   begin
    r:=Random;
    x[i]:=a+r*(b-a);
   end;
for i :=0 to 14 do hist[i] := 0 ;
    M_b := 15.0/(b-a) ;
    for i:=1 to NMAS do 
     begin
       n := Trunc((x[i]-a)*M_b);
       Inc (hist[n])
     end;
   MaxVal := x[i];
   MinVal := x[i];
   for i:=2 to NMAS do
     begin
       if x[i] < MinVal  then  MinVal := x[i];
       if x[i] > MaxVal  then  MaxVal := x[i];
     end;
  Otcenki(x,Mx,Dx);
  Writeln ('Min element is: ', MinVal:8:6,' Max element is: ', MaxVal:8:6);
  WriteLn(Mx:8:6,Dx:8:6);
  for i :=0 to 14 do WriteLn(hist[i]:3) ;
  ReadLn;
End.
В вывод я добавил аттрибуты формата, чтобы вместо чисел-портянок получить внятный для понимания вид.
Теперь дело за малым: запустить прогу (без всяких самодеятельных телодвижений) из #39 в FreePascal, если нормально нарисует, будем ее прикручивать к нашей задаче.

Ну все, я пошел за сухоньким: сегодня моя любимая Феррари одержала двойную победу! Под гимн Италии дерябнем с котиками.
Изображения
Тип файла: jpg PrScr.JPG (19.1 Кб, 63 просмотров)

Последний раз редактировалось digitalis; 28.05.2017 в 21:21.
digitalis вне форума Ответить с цитированием
Старый 29.05.2017, 11:17   #52
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

Да работает код из #39 на FreePascal.
Мария34 вне форума Ответить с цитированием
Старый 29.05.2017, 15:47   #53
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Отлично. Код прикрутим, если мой комп не загнется окончательно, как он пытался утром.
digitalis вне форума Ответить с цитированием
Старый 29.05.2017, 16:28   #54
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

С чего начать?
Мария34 вне форума Ответить с цитированием
Старый 02.06.2017, 00:12   #55
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

Вы куда-то пропали.
Мария34 вне форума Ответить с цитированием
Старый 02.06.2017, 19:15   #56
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

Вот вроде все сделала.
Код:
uses crt,graph;
const nmas=1000;
      n=14;
var x0,y0:integer;
type tmass=array[1..nmas] of extended;
type mas=array[0..n] of integer;
procedure histogram(a:mas);
var i,w:integer;
    mx,h:real;
    s:string;
begin
w:=10;{ширина столбцов}
mx:=a[0];
for i:=0 to n do
if a[i]>mx then mx:=a[i];{находим максимум}
h:=(y0-40)/mx;{масштаб по вертикали}
for i:=0 to n do
 begin
  setcolor(i+1);{цвет}
  setfillstyle(1,i+1);
  {рисуем прямоугольники с заданной шириной, шагом
    и высотой соответственно значению}
  bar(x0+4*w*i,y0-round(a[i]*h),x0+w*(4*(i+1)-2),y0);
  str(i+1,s);
  outtextXY(x0+4*w*i+15,y0+20,s);{выводим по низу номер}
  str(a[i],s);{преобразуем значения в строку}
  outtextXY(x0+4*w*i,y0-round(a[i]*h)-20,s);{выводим значения выше столбика}
 end;
end;

Procedure Otcenki(const x: tMass;var Mx,Dx:Real);
Var
  i:integer;
Begin
  Mx:=0; Dx:=0;
  For i:=1 to nmas do Mx:=Mx+x[i];
  Mx:=Mx/nmas;
  For i:=1 to nmas do Dx:=Dx+Sqr(x[i]-Mx);
  Dx:=Dx/(nmas-1);
end;

var x:tmass;
    hist:mas;
    MaxVal,MinVal,Mx,Dx,r,a,b,m_b:real;
    m,i,j,k,p:integer;
begin
clrscr;
write('a b:');
readln(a,b);
randomize;
 begin
  for j:=1 to nmas do
   begin
    r:=random;
    x[j]:=a+r*(b-a);
   end;
  for k:=0 to n do hist[k]:=0;
  m_b:=15/(b-a);
  for k:=1 to nmas do
   begin
    m:=trunc((x[k]-a)*m_b);
    inc(hist[m]);
   end;
   MaxVal := x[j];
   MinVal := x[j];
   for j:=2 to NMAS do
     begin
       if x[j] < MinVal  then  MinVal := x[j];
       if x[j] > MaxVal  then  MaxVal := x[j];
     end;
  Otcenki(x,Mx,Dx);
  Writeln ('Min element is: ', MinVal:8:6, ' Max element is: ', MaxVal:8:6);
  WriteLn('Мат.ожидание=',Mx:8:6,'Дисперсия=',Dx:8:6,'‘Среднеквад. отклонение',Sqrt(Dx):8:6);
  for k:=0 to n do
  write(hist[k]:3);
  readln;
  k:=0;
  initgraph(k,p,'');
  x0:=20;{левый край диаграммы}
  y0:=getmaxY-80;{нижний край}
  histogram(hist);
   begin
    readln;
    restorecrtmode;
   end;
 end;
readln
end.
Всем спасибо за помощь.
Мария34 вне форума Ответить с цитированием
Старый 03.06.2017, 14:33   #57
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,550
По умолчанию

Это не я пропал, это мой комп сломался. Починил.
Запустил эту прогу. Вроде работает. Только вместо подписей - крякозябры. Это только у меня в ТурбоПаскале или в ФриПаскале тоже? Разноцветные елочные огоньки можно убрать, рисовать одним цветом.
Ну поздравляю - курсач готов !
digitalis вне форума Ответить с цитированием
Старый 03.06.2017, 15:17   #58
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

Кракозябры это скорее FreePascal плохо реагирует на кирилицу.
Мария34 вне форума Ответить с цитированием
Старый 03.06.2017, 15:20   #59
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

Уважаемый digitalis, согласитесь помочь еще с одним задание? Оно идет как дополнительное к этому. Правда не знаю сможете помочь нет посмотрите.

Суть задания:
Выполнить программное моделирование алгоритма поиска кодовых комбинаций и алгоритма кодирования методом Хаффмана. Для дискретного источника сообщений, смоделированного в моем первом задании, выполнить кодирование последовательности продолжительностью K = 100 и K = 1000 реализаций. Вычислить значение оценки средней длительности кодовых комбинаций для каждого из двух случаев
Изображения
Тип файла: png 1.png (9.4 Кб, 54 просмотров)
Мария34 вне форума Ответить с цитированием
Старый 03.06.2017, 15:21   #60
Мария34
Пользователь
 
Регистрация: 30.04.2017
Сообщений: 40
По умолчанию

Сам принцеп вроде поняла не могу найти в интернете даже примера чего то подобного.

Последний раз редактировалось Мария34; 03.06.2017 в 15:27.
Мария34 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти значение случайной величины по методу Монте-Карло Вероника99 Помощь студентам 0 13.07.2016 19:41
математическое ожидание для дискретной случайной величины Делфи 7 программирование Помощь студентам 2 10.10.2013 21:39
Нормальный (Гауссовский) закон распределения VOVA-74 C++ Builder 0 19.02.2013 18:33
закон распределения Эрланга. Lenr88 Паскаль, Turbo Pascal, PascalABC.NET 0 13.02.2012 12:56