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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.05.2010, 19:05   #1
Катюшенька
Пользователь
 
Аватар для Катюшенька
 
Регистрация: 08.12.2008
Сообщений: 32
Радость Генератор ПСП или нужен результат программы

Все ничего.. есть готовая прога для Борланд Си

У меня переустановлена система..
И сам Борланд не установила..
Мне нужны данный на тест проги..

Просто введите последовательность 101 и сктньте кусок результата из файлов: PSP(char).dat и PSP(bit).dat не надо мне весь полученный результат, просто 10 первых строчек..
А вот и программа:


Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <time.h>
#include <stdlib.h>

int powD(int n) //функция для возведения 2 в степень n
{
 int i=1,j=1,k;
 if(n==0)
 return 1;
 else
  {
   for(i;i<=n;++i)
   j*=2;
   return j;
  }
}

void main()
{ 
 clrscr();
 randomize();
 int A[40]; //создаем и задаем начальное состояние LFSR
 for(int LFSR=0;LFSR<40;++LFSR)
 A[LFSR]=random(2);
 int B[55];
 for( LFSR=0;LFSR<55;++LFSR)
 B[LFSR]=random(2);
 int C[31];
 for( LFSR=0;LFSR<31;++LFSR)
 C[LFSR]=random(2);
 int a,b,c,w,j,k,t=0,q,buf=0;
 char psp;
 FILE *out=fopen("PSP(char).dat","w"); //создаем файл для хранения ПСП
 FILE *oud=fopen("PSP(bit).dat","w");
 unsigned long int r=0;
 printf("Vvedite razmer PSP:\n");
 scanf("%d",&r);
 printf("Podozhditе, idet rabota programmi…\n");
 r=r*1048576;
 for(unsigned long int i=0;i<r;i++) //цыкл для отследывания длины ПСП

  {
   a=A[9]^A[4]^A[0]; //Находим начальный элемент каждой LFSR
   b=B[7]^B[3]^B[0];
   c=C[20]^C[3]^C[0];
   if(t==8) t=0;
   if(A[0]==1) //находим колличество LFSR кончающиеся 1
   buf++;
   if(B[0]==1)
   buf++;
   if(C[0]==1)
   buf++;
   if(buf>1) //если больше чем 1

    {
     fprintf(oud,"%d",1); //записуем в файл 1
     psp=psp+powD(t); //и изменяем соотвествуюющий бит переменной ПСП на 1
    }

   else //1 или меньше

    {
     fprintf(oud,"%d",0); //записываем в файл ноль
    }

   if(t==7) fprintf(out,"%c",psp); //если t = 7 записываем ПСП в файл
   t++;
   for(LFSR=0;LFSR<40;LFSR++) //сдвигаем LFSR

    {
     A[LFSR]=A[LFSR+1];
    }

   A[39]=a;
   for(j=0;j<55;j++)

    {
     B[j]=B[j+1];
    }

   B[54]=b;
   for(k=0;k<31;k++)

    {
     C[k]=C[k+1];
    }

   C[30]=c;
   buf=0;
  }

 printf("Vse! Mojete posmotret rezultat…"); //конец
 getch();
}
Я буду очень вам благодарна..
Верю... Надеюсь... Люблю...
Катюшенька вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен результат программы... Катюшенька Помощь студентам 1 17.05.2010 09:53
Определить результат выполнения программы. Joker<777> Паскаль, Turbo Pascal, PascalABC.NET 2 23.04.2010 02:15
не читает результат работы консольной программы Consol Работа с сетью в Delphi 0 21.08.2009 12:21
Почему не выдает результат записи. Ну или бы хотя бы ошибку какую. Lorel PHP 2 01.12.2008 14:29