Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
 Аватар для ПавелИтель
9 / 9 / 3
Регистрация: 21.02.2010
Сообщений: 75

Сдвиговый регистр

17.03.2010, 02:46. Показов 4726. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно реализовать сдвиговый регистр.
Есть массив А [30] и В[8], состоящие из рендомных нулей и единиц. Нужно создать переменную Х, которая равна Х= А [5]^ А [15] ^ А [25];
Переменная Х должна записаться в А [0], А [0] в А [1], А [1] в А [2] …. А [28] в А [29].
Как, видите Х записывается в 0ю ячейку массива, а остальные сдвигаются, последний элемент А [29] «выталкивается» в массив В[0]… Так нужно заполнить массив В – эти 8 чисел преобразуются в АСКИ код и записываются в файл. В файле должно набраться АСКИ кодов на 1 МБ. (много )
Есть небольшие наработки:
C
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
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include<math.h>
#include <time.h>
#include <stdlib.h>
void main()
{
 clrscr();
 char simvols;
 int A[30], b[8], buf1, buf2, x;
 FILE *f1;
 f1=fopen("D:\\GAMMA.dat", "wt");
 srand(time(NULL));
 for(int k=0; k<30; k++)
  {
   A[k]= 0 + rand() %2;
  }
 for(int l=0; l<10000; l++)
  {
   for(int i=0; i<15; i++)
   {
    x=A[5]^A[15]^A[25];
    int j=1;
    buf1=A[i];
    A[i]=x;
    buf2=A[j];
    A[j]=buf1;
    j++;
   }
   for(int d=0; d<=7; d++)
    {
      simvols = (char)(128*b[0]+64*b[1]+32*b[2]+16*b[3]+8*b[4]+4*b[5]+2*b[6]+1*b[7]);
      fprintf(f1, "%c",simvols);
    }
  }
 printf("All ready!\nPress any key to continue");
 fclose(f1);
getch();
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.03.2010, 02:46
Ответы с готовыми решениями:

ШД, Сдвиговый регистр и МК
Идея состоит в чём?! Есть Tiny13A, есть 155ир13, есть mosfit ы(либо транзисторы) допустим irf540n, униполярный ШД. Хотел намутить мини...

Сдвиговый регистр
http://iosyitistromyss.ru/sdvygovyj-registr.html http://iosyitistromyss.ru/img/storters/rikystir.GIF прочитал эту статью, и у...

[Verilog] Сдвиговый регистр
Засел я последнее время за ПЛИСЫ.....мучаю CPLD фирмы Ottira язык выбрал Verilog, VHDL уж больно длинный какой-то, писанины много. И...

2
 Аватар для ПавелИтель
9 / 9 / 3
Регистрация: 21.02.2010
Сообщений: 75
19.03.2010, 00:40  [ТС]
Ребята, ну помогите, где знающие программеры?!!!

Добавлено через 21 час 1 минуту
Вот такой вариант:
C
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
#include <conio.h>
#include <string.h>
#include <stdio.h> //dlya file
#include<math.h>
#include <time.h>//dlya peremeshki chisel
#include <stdlib.h>//dlya generatora
 
void main()
{
 clrscr();
 char simvols;
 int A[10]={1,0,1,0,1,0,1,0,0,1}, B[10], exit, X;
 for(int k=0; k<=9; k++)
   {
     X=A[2]^A[5]^A[8];
     exit=A[9];
     for(int i=9; i>0; i--)
      {
       A[i]=A[i-1];
      }
      A[0]=X;
      B[k]=exit;
      printf("B[%d]:%d;\n", k, B[k]);
   }
 printf("All ready!\nPress any key to continue");
getch();
}
0
 Аватар для ПавелИтель
9 / 9 / 3
Регистрация: 21.02.2010
Сообщений: 75
28.03.2010, 00:58  [ТС]
Вот готовая программа, толь гамма не очень, тесты не проходит…((( Может где-то небольшие ошибки.
C
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <conio.h>
#include <string.h>
#include <stdio.h>
#include<math.h>
#include <time.h>
#include <stdlib.h>
void main()
 {
  clrscr();
  char simvols;
  int M[100], A1[100], A2[100], A3[100], A4[100], A5[100], B1[100], B2[100], B3[100], B4[100], B5[100], exit, X=0, size=1;
  FILE *f1;
  f1=fopen("D:\\GAMMA.dat", "wt");
  M:
  printf("Vvedite razmer PSP: ");
  scanf("%d", &size);
  if (size<=0) {printf("Nevernoe znchenie razmera PSP!\n"); goto M;}
  srand(time(NULL));
  for(int k=0; k<100; k++)
   {
    A1[k]= 0 + rand() %2;
    A2[k]= 0 + rand() %2;
    A3[k]= 0 + rand() %2;
    A4[k]= 0 + rand() %2;
    A5[k]= 0 + rand() %2;
   }
  size=size*10500;
  for(int d=0; d<size; d++)
   {
    for(int p=0; p<100; p++)
     {
     X=A1[25]^A1[3]^A1[0];
     exit=A1[99];
     for(int j=7; j>0; j--)
     {
      A1[j]=A1[j-1];
     }
     A1[0]=X;
     B1[p]=exit;
    }
 
//____2
    for(p=0; p<100; p++)
     {
     X=A2[11]^A2[2]^A2[0];
     exit=A2[99];
     for(int j=7; j>0; j--)
     {
      A2[j]=A2[j-1];
     }
     A2[0]=X;
     B2[p]=exit;
    }
 
 
//____3
    for(p=0; p<100; p++)
     {
     X=A3[17]^A3[6]^A3[0];
     exit=A3[99];
     for(int j=7; j>0; j--)
     {
      A3[j]=A3[j-1];
     }
     A3[0]=X;
     B3[p]=exit;
    }
 
//____4
    for(p=0; p<100; p++)
     {
     X=A4[7]^A4[1]^A4[0];
     exit=A4[99];
     for(int j=7; j>0; j--)
     {
      A4[j]=A4[j-1];
     }
     A4[0]=X;
     B4[p]=exit;
    }
 
//____5
    for(p=0; p<100; p++)
     {
     X=A5[17]^A5[7]^A5[0];
     exit=A5[99];
     for(int j=7; j>0; j--)
     {
      A5[j]=A5[j-1];
     }
     A5[0]=X;
     B5[p]=exit;
    }
   for(int z=0; z<100; z++)
   {
    M[z]=(B1[z]^B2[z])^(B1[z]^B3[z])^(B1[z]^B4[z])^(B1[z]^B5[z])^(B2[z]^B3[z])^(B2[z]^B4[z])^(B2[z]^B5[z])^(B3[z]^B4[z])^(B3[z]^B5[z])^(B4[z]^B5[z]);
   }
   for(int f=0; f<100; f++)
   {
    simvols = (char)(128*M[f+0]+64*M[f+1]+32*M[f+2]+16*M[f+3]+8*M[f+4]+4*M[f+5]+2*M[f+6]+1*M[f+7]);
    fprintf(f1, "%c",simvols);
   }
   }
 printf("All ready!\nPress any key to continue");
fclose(f1);
getch();
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.03.2010, 00:58
Помогаю со студенческими работами здесь

Сдвиговый регистр не работает
Добрый день! В который раз пытаюсь победить SN74HC595N Схему подключения взял отсюда: http://arduino.ru/Tutorial/registr_74HC595 ...

RS232 -> сдвиговый регистр.
В общем, появилась у меня навязчивая идея: подключить COM порт к логическим микросхемам. Не знаю еще зачем, но надо. Есть микросхемы...

4-х разрядный сдвиговый регистр
Друзья, помогите пожалуйста с лабой, совершенно не понимаю, как её делать :( В общем, задача такая: Разработать схему 4х разрядного...

Сдвиговый регистр в Proteus
Добрый день! Пытаюсь собрать схему в Proteus, проблема с использованием сдвигового регистра 74198: как и написано в datasheet, для...

Сдвиговый регистр и напряжение
Два вопроса в одном: 1) Существуют-ли сдвиговые регистры, где выходное напряжение зависит от входного сигнала, т.е. на одном выходе может...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru