Форум программистов, компьютерный форум, киберфорум
Наши страницы

Turbo Pascal

Войти
Регистрация
Восстановить пароль
 
Анжела олеговна
4 / 3 / 0
Регистрация: 14.01.2010
Сообщений: 58
#1

Последовательность Хемминга - Turbo Pascal

28.01.2010, 17:18. Просмотров 2322. Ответов 13

последовательность Хемминга образуют натуральные числа не имеющие других простых делителей, кроме 2,3,5. найти первые А чисел данной последовательности.
1
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2010, 17:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Последовательность Хемминга (Turbo Pascal):

Последовательность Хемминга - Turbo Pascal
последовательность Хемминга образуют натуральные числа не имеющие других простых делителей, кроме 2,3,5. найти первые А чисел данной...

Код Хемминга - Turbo Pascal
Определить положение одиночной ошибки в искаженном двоичном k-битном слове кода Хемминга.

Считать последовательность цифр и преобразовать ее в последовательность соответствующих латинских букв - Turbo Pascal
Все что сам смог написать в Паскале Program lit; Var A,N:char; Begin A:=chr(70); N:=A; writeln(ord(N)); Writeln(A); End.

Задана последовательность из N чисел. Найти самую длинную последовательность, обладающую данным свойством - Turbo Pascal
Прошу помощи мастеров решить ОДНУ задачкУ: 1) Задана последовательность из N чисел. Найти самую длинную последовательность, обладающую...

Если последовательность чисел а1..а12 упорядоченны по условию а1=<a2=<...=<a12, то оставить последовательность без изменений... - Turbo Pascal
Если последовательность чисел а1..а12 упорядоченны по условию а1=&lt;a2=&lt;...=&lt;a12, то оставить последовательность без изменений, а если нет,...

Сгенерировать последовательность 100 случайных чисел Х. Сформировать новую последовательность, состоящую из элементов yi=yi-1+xi (y1=x1). Для получен - Turbo Pascal
Сгенерировать последовательность 100 случайных чисел Х. Сформировать новую последовательность, состоящую из элементов yi=yi-1+xi...

13
Puporev
Модератор
52437 / 40284 / 13615
Регистрация: 18.05.2008
Сообщений: 93,133
28.01.2010, 17:23 #2
должна исключать те числа которые не деляться на 2, 3 и 5
Я Вам написал в программе в этой теме
http://www.cyberforum.ru/pascal/thread89835.html
Pascal
1
if ((a mod 2=0)or(a mod 3=0)or(a mod 5=0)) and Hemming(a) then
Это значит что подходят те числа, которые делятся на 2, или 3, или 5 и не делятся на другие простые числа.
Что Вам еще нужно, для чего Вы нарушаете правила и создаете клон своей темы?
1
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 17:30 #3
Puporev, Вы не заметили, что человек среди таких чисел ищет А числа.

Добавлено через 1 минуту
http://renuar911.narod.ru/A_numbers.mht
1
Puporev
Модератор
52437 / 40284 / 13615
Регистрация: 18.05.2008
Сообщений: 93,133
28.01.2010, 17:32 #4
Eugeniy, А Вы программу по моей ссылке смотрели? Прогоняли?
1
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 17:39 #5
Puporev, не сомневаюсь, что она работает, просто в задании сказано, что
среди таких чисел, которые не имеют других простых делителей, кроме 2,3,5 надо найти
А числа. Конечно мне легко судить не предлагая кода, просто Ваша программа реализует,
только первую половину задания.
1
Puporev
Модератор
52437 / 40284 / 13615
Регистрация: 18.05.2008
Сообщений: 93,133
28.01.2010, 17:49 #6
Eugeniy, Моя программа выводит по условию, только не А первых чисел, а N первых чисел Хэмминга. Это так принципиально?
1
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 17:50 #7
Посмотрите эту ссылку
http://renuar911.narod.ru/A_numbers.mht
1
Puporev
Модератор
52437 / 40284 / 13615
Регистрация: 18.05.2008
Сообщений: 93,133
28.01.2010, 17:53 #8
Это нехорошая ссылка, мой браузер не хочет ее открывать.
1
Анжела олеговна
4 / 3 / 0
Регистрация: 14.01.2010
Сообщений: 58
28.01.2010, 18:01  [ТС] #9
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Program sacet;
uses crt;
var a:array[1..100]of integer;
    i,j,n:integer;
    change:boolean;
begin
writeln('введите последовательность');
readln(n);
for i:=1 to n do
begin
for i:=1 to n do
begin
a[i]:=random(12);
write(a[i],' ');
end;
writeln;
writeln('ответ');
for i:=1 to n do
if (a[i] mod 2=0)or(a[i] mod 3=0)or(a[i] mod 5=0) then write(a[i],' ') else a[i]:=a[i+1];
repeat
change:=false;
for i:=2 to i+1 do
if i mod j=0 then
begin
write(a[i],' ');
change:=true;
end;
until not change;
end;
end.
Добавлено через 29 секунд
ее можно исправить как нибудь?
1
Eugeniy
3119 / 1312 / 141
Регистрация: 19.12.2009
Сообщений: 1,808
28.01.2010, 18:03 #10
Странно у меня Kasper и всё нормально. Обидно поскольку у
меня есть ссылки только на другие форумы, а их здесь размещать нельзя.
1
Puporev
Модератор
52437 / 40284 / 13615
Регистрация: 18.05.2008
Сообщений: 93,133
28.01.2010, 18:20 #11
Вот результат работы программы, тут немного лишнее. Выводятся первые N чисел, не имеющих простых делителей кроме 2,3,5.
0
Миниатюры
Последовательность Хемминга  
AndruxaIX
0 / 0 / 0
Регистрация: 04.04.2013
Сообщений: 31
01.09.2017, 21:09 #12
Вот результат работы программы, тут немного лишнее. Выводятся первые N чисел, не имеющих простых делителей кроме 2,3,5.
Чё го то не то в конце. По крайней мере 1546 делится на 773 будет 2.
Если что есть такой вариант, но фиг его знает как по оптимизации.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
procedure TForm1.Button3Click(Sender: TObject);
var
nado,est,nsh,el,kol,p,l,m:integer;
begin
a[1] := 2;
a[2] := 3;
a[3] := 5;
nado:= StrToInt(Edit1.Text);
est:=3;                         
nsh:=3;
el:=1;
kol :=3;
for l:=1 to nado do begin
  a[kol+1] := a[el]*2;
  a[kol+2] := a[el]*3;
  a[kol+3] := a[el]*5;
    kol := kol + 3;
    i:= 1;
 
m:=kol;
i:=1;
while i<=m do
 begin
  j:=i+1;
  while j<=m do
   begin
    if a[j]=a[i] then
     begin
      for k:=j to m-1 do
      a[k]:=a[k+1];
      m:=m-1;
      end
     else j:=j+1;
   end;
  i:=i+1;
 end;
 kol := m;
    for i:=1 to kol do
        for j:=1 to kol-i do
            if A[j]>A[j+1] then begin
                p:=A[j];
                A[j]:=A[j+1];
                A[j+1]:=P;
            end;
 
el := el+1;
end;
 
edit2.Text := '';
for j:=1 to nado do
Edit2.Text:= Edit2.Text+' '+inttostr(a[j]);
end;
0
Puporev
Модератор
52437 / 40284 / 13615
Регистрация: 18.05.2008
Сообщений: 93,133
02.09.2017, 09:18 #13
В моем коде по ссылке ошибка. В Турбо Паскаль нельзя писать a in [2,3,5] при числах не входящих в интервал 0..255. У меня был отключен Range Error и программа компилировалась с косяками.
Нужно написать так
Pascal
1
2
for i:=7 to n div 2 do
if Prost(i)and(i<>2)and(i<>3)and(i<>5) and(n mod i=0) then
Будет так
Последовательность Хемминга
В Паскль АВС все работает правильно и при неисправленном коде.
Последовательность Хемминга
0
bormant
Модератор
Эксперт Pascal/DelphiЭксперт NIX
3558 / 2253 / 1155
Регистрация: 22.11.2013
Сообщений: 5,931
02.09.2017, 11:55 #14
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Пожалуй, решение на очередях должно быть пошустрее:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
procedure Hamming(n: Integer); { max 1654 for Longint }
type
  TQueue = record
    h, t, c: Word; d: array [0..149] of Longint;
  end;
procedure init(var q: TQueue);
begin with q do begin
  h:=0; t:=High(d); c:=0;
end; end;
procedure push(var q: TQueue; e: Longint);
begin with q do begin
  {$IFOPT R+}if c=High(d) then RunError(201);{$ENDIF}
  Inc(c); Inc(t); if t>High(d) then t:=0; d[t]:=e;
end; end;
function  pop(var q: TQueue): Longint;
begin with q do begin
  {$IFOPT R+}if c=0 then RunError(201);{$ENDIF}
  pop:=d[h]; Dec(c); Inc(h); if h>High(d) then h:=0;
end; end;
function  front(var q: TQueue): Longint;
begin with q do begin
  {$IFOPT R+}if c=0 then RunError(201);{$ENDIF}
  front:=d[h]; 
end; end;
 
var
  q2, q3, q5: TQueue;
  p2, p3, p5, q: Longint;
begin
  init(q2); init(q3); init(q5);
  push(q2,1); push(q3,1); push(q5,1);
  while n>0 do begin
    p2:=front(q2)*2; p3:=front(q3)*3; p5:=front(q5)*5;
    if (p2<p3) and (p2<p5) then begin
      q:=p2; pop(q2); push(q2,q);
    end else if p3<p5 then begin
      q:=p3; pop(q3); push(q2,q); push(q3,q);
    end else begin
      q:=p5; pop(q5); push(q2,q); push(q3,q); push(q5,q);
    end;
    Dec(n); WriteLn(q);
  end;
end;
begin
  Hamming(1654);
end.
Добавлено через 2 минуты
Если 1 входит в последовательность первым членом, добавить перед строкой 32:
Pascal
32
  Dec(n); WriteLn(1);
0
02.09.2017, 11:55
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.09.2017, 11:55
Привет! Вот еще темы с ответами:

Дана последовательность целых чисел, за которой следует ноль. Определите, содержит ли последовательность числа, являющиеся степенями 2 - Turbo Pascal
Задача: Дана последовательность целых чисел, за которой следует ноль. Определите, содержит ли последовательность числа, являющиеся ...

Дано натуральное число а. записать убывающую последовательность чисел без последней цифры предыдущего ( например а=2345, полученная последовательность - Turbo Pascal
помогите пожалуйста решить задачу двумя способами, через функции и процедуры! дано натуральное число а. записать убывающую...

последовательность хемминга - Pascal
последовательность хемминга образуют например числа не имеющие других простых делителей кроме 2,3,5. найти N-ый элемент последовательности

Последовательность Хемминга (чуть усложнёное) - Pascal
последовательность Хемминга образуют например числа не имеющие других простых делителей кроме 2,3,5. найти N-ый элемент последовательности....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru