|
|
|
|
#56431 |
|
Сейлормун
(луна в тельняшке) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Регистрация: 04.11.2005
Адрес: Москва, ЮАО, ЧЮ
Сообщения: 504
|
Kostyan, укажи тогда хоть на баги
__________________
|
|
|
|
|
|
#56815 |
|
Старожила
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
|
Rocker_dead,баги может и не совсем баги, а так, недочеты, но...
рассмотрим исходник: 1. char m, str[9], mark[9]="01111111"; printf("Vvedite bite-marker \n"); scanf("%s", str); if (strcmp(mark,str)) printf("ERROR"); else printf("Vvedenniy bite marker verniy - 0x7f \n Vipolnit' poisk?"); не совсем понятный фрагмент. Здесь программа просит ввести бит маркер, затем сравнивает его с эталонным (0х7F) и если введен неправильный маркер выдается ошибка. Тогда я не понимаю, какой вообще смысл запрашивать его у пользователя? Не проще ли зашить его жестко в программу? Потом, здесь же, если введенный бит маркер неверен, программа просто выбросит еррор и... продолжит выполняться дальше. Разве что мы не увидим приглашение о поиске. И кстати, дальше в программе ты в цикле проверяешь какие то данные с этим бит маркером, жестко зашитим жестко в проге. 2. if (m=='y') printf("Vvedite massiv is 16 znakov \n"); следующий фрагмент. Мы проверяем ответ пользователя (y/n) и если у, то выводим сообщение на экран и все. программа опять же продолжит выполняться в том же направлении. Тогда смысл подобной проверки? Касательно двух вышеприведенных фрагментов я так понимаю, что ты решил не злоупотреблять фигурными скобками и переусердствовал? 3. for (i=0;i<16;i++) { scanf("%d", a[i]); printf("\n"); for (i=0;i<16;i++) printf("%d", a[i], " "); /*Searching*/ for (i=0;i<9;i++) { if (a[i]==0 && a[i+1]==1 && a[i+2]==1 && a[i+3]==1 && a[i+4]==1 && a[i+5]==1 && a[i+6]==1 && a[i+7]==1) { z[i]=a[i]; z[i+1]=a[i+1]; z[i+2]=a[i+2]; z[i+3]=a[i+3]; z[i+4]=a[i+4]; z[i+5]=a[i+5]; z[i+6]=a[i+6]; z[i+7]=a[i+7]; i=i+8; } else z[i]=0; } for (j=9;j<16;j++) { z[j]=0; } printf("\n"); for (i=0;i<16;i++) { printf("%d", z[i], " "); } getch(); } насчет этого фрагмента. Тут чего то я вообще запутался, равно как и мой отладчик. Вложенные циклы и все такое. Ты используешь переменную i для основного цикла, потом ее же используешь для вложенного. Ладно, это ерунда, так можно делать, но ты не учел, что после первого же вложенного циклапеременная у тебя принимает последнее значение, т.е. 16... короче, смотри сам, программа непонятная, чего она делает я пока не разобрался (пью пока еще).... расскажи хоть алгоритм для начала, там бы подумали... ЗЫ а сегодня день траура... 22 июна в 4 часа утра 1941 года началось вторжение немецких войск на территорию СССР... если кто помнит
__________________
|
|
|
|
|
|
#56829 | |||
|
Сейлормун
(луна в тельняшке) ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Регистрация: 04.11.2005
Адрес: Москва, ЮАО, ЧЮ
Сообщения: 504
|
Kostyan, во-первых - спасибо тебе большое за то, что откликнулся.
Цитата:
Цитата:
Цитата:
__________________
[ |
|||
|
|
|
|
|
#56855 |
|
Старожила
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Регистрация: 17.10.2005
Адрес: где то в степях Ярославщины
Сообщения: 399
|
Rocker_dead, все, кажется вкурил. Тогда сдается неправильно реализовал идею.. хотя бы тут:
Код:
if (a[i]==0 && a[i+1]==1 && a[i+2]==1 && a[i+3]==1 && a[i+4]==1 && a[i+5]==1 && a[i+6]==1 && a[i+7]==1) я тут прикинул пару вариантов, посмотри, может чем то поможет. 1. банально посимвольное сравнение (даем проге символ, он сравнивается со всеми вытекающими.. ): Код:
#include <stdio.h>
#include <conio.h>
int main()
{
int symbol=0;
int bit_marker = 0x7F; // 0x01111111b
printf("start: \n");
for(;;)
{
symbol = getch();
if(symbol==bit_marker)
{
printf("symbol found: %02X\n",symbol);
}
else
{
symbol=0;
printf("symbol: %02X\n",symbol);
}
}
return 0;
}
Код:
#include <stdio.h>
#include <conio.h>
void main()
{
unsigned char bit,data=0,out=0;
int bit_marker = 0x7F;
printf("start: \n");
for(;;)
{
bit = getch();
if(bit==0x31 || bit ==0x30)
{
bit &= 0x01;
data <<= 1;
data &= 0xFE;
data |= bit;
if(data == bit_marker)
{
printf("\nbit_marker found!\n");
out = data;
} else out = 0;
printf("%02X ",out);
}
}
}
Код:
printf("%d", a[i], " ");
__________________
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей - 0 , гостей - 1) | |
|
|