Форум программистов, компьютерный форум CyberForum.ru

Не могу разобраться в коде программы - C++

Войти
Регистрация
Восстановить пароль
 
joksis
Сообщений: n/a
29.12.2010, 12:45     Не могу разобраться в коде программы #1
Кто может описать что делает данная прога что выполняют определенные функции
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
// StdAfx.h, StdAfx.cpp Эти файлы используются для построения файла предкомпилируемых заголовков
(PCH) sort.pch и файла предкомпилируемых типов
StdAfx.obj.


void setbit(char* ptr,int p);
void zerobit(char* ptr,int p);
void inventbit(char* ptr,int p);
void show_byte(char *ptr);
void show_mem(char* ptr,int size);

void bait();
void show_var();
void chisla();

void bits()
{
int vibor;
system("cls");
printf(" 1.Rabota s baitom\n 2.Raspechatka peremennoi\n 3.Prostie chisla(2...10000)\n 4.Main menu");
fflush(stdin);
vibor=getchar()-'0';
switch(vibor)
{
case 1: bait(); break;
case 2: show_var(); break;
case 3: chisla(); break;
case 4: break;
}
}

void bait()
{
int vibor,p,b=0;
char a;
while(!b)
{
system("cls");
p=-1;
show_byte(&a);
printf("\n\n 1.Vkluchit bit\n 2.Vikluchit bit\n 3.Izmenit bit\n 4.Main menu\n");
vibor=getchar()-'0';
if ( (vibor>0) && (vibor<5) )
while( (p<0) || (p>7) )
{
printf(" Nomer bita(0-7):");
scanf("%i",&p);
}

switch(vibor)
{
case 1:setbit(&a,p); break;
case 2:zerobit(&a,p);break;
case 3:inventbit(&a,p);break;
case 4:b=1;break;

}


}
}

void show_var()
{
int tip,celoe;
int b=0;
long l_celoe;
float fl_plav;
double db_plav;
long double ldb_plav;
while(!b)
{
system("cls");
printf("Viberete tip:\n 1.int\n 2.long\n 3.float \n 4.double\n 5.long double\n 6.Main menu\n");
printf(" Vvedite tip");
fflush(stdin);
tip=getchar()-'0';
if (tip==6) return;
printf(" Vvedite chislo:");
switch(tip)
{
case 1:scanf("%i",&celoe); printf("\ndvoichnoe predsavlenie:");show_mem((char*)&celoe,sizeof(int));break;
case 2:scanf("%li",&l_celoe); printf("\ndvoichnoe predsavlenie:");show_mem((char*)&l_celoe,sizeof(long));break;
case 3:scanf("%f",&fl_plav); printf("\ndvoichnoe predsavlenie:");show_mem((char*)&fl_plav,sizeof(float));break;
case 4:scanf("%f",&db_plav); printf("\ndvoichnoe predsavlenie:");show_mem((char*)&db_plav,sizeof(double));break;
case 5:scanf("%lf",&ldb_plav); printf("\ndvoichnoe predsavlenie:");show_mem((char*)&ldb_plav,sizeof(long double));break;
case 6:b=1;break;
}
fflush(stdin);
getchar();
}
}
void chisla()
{
char msk[]={0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01};
const int N=10000L;
int r[N/8+1];
for (int i=0;i<=N/8;++i) r[i]=0xFF;

for (int i=2;i<N/2;++i)
if (r[i/8]&msk[i%8])
for(int j=i+i;j<N;j+=i)
r[j/8]&=~msk[j%8];

printf("Prostii chisla:\n");
for(int i=2;i<N;++i)
if (r[i/8]&msk[i%8])
printf("%i,",i);
fflush(stdin);
getchar();
}


void setbit(char* ptr,int p)
{
*ptr|=0x80>>p;
}

void zerobit(char* ptr,int p)
{
*ptr&=~(0x80>>p);
}

void inventbit(char* ptr,int p)
{
*ptr^=0x80>>p;
}


void show_byte(char *ptr)
{
for(int i=0;i<8;++i)
if (*ptr&(0x80>>i)) printf("1");
else printf("0");
}


void show_mem(char* ptr,int size)
{
for (int i=0;i<size;++i)
{
show_byte(ptr++);
printf(" ");
}
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2010, 12:45     Не могу разобраться в коде программы
Посмотрите здесь:

C++ Builder Не компилится код программы! ругается на объявление переменной - не могу разобраться что все таки нужно - чтоб работать стала
Помогите разобраться в коде программы для переворачивания списка (код маленький) C++
C++ ошибка в коде,не могу разобраться
Не могу разобраться в коде C++
Не могу разобраться в коде. Некорректный результат работы программы C++
C++ Не могу разобраться в сути работы программы :(
C++ Не могу разобраться в коде программы для заполнения массива
C++ Не могу разобраться с работой программы
Не могу разобраться в коде C++
C++ Разобраться в коде программы
Не могу разобраться в коде C++
Не могу разобраться с функциями в коде. Что это за функции Intreader , Bitwriter C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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