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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа для нахождения числа http://www.cyberforum.ru/cpp/thread222222.html
Дана последовательность целых чисел.Известно,что все числа в ней встречаются четное количество раз, кроме одного, которое встречается нечетное количество раз. Напишите программу которая находит это число. Например:12342314214341232155771277981298 Искомое число 12.
C++ Написать программу для просмотра файлов PDF какой язык порекомендовали бы? исходники может у кого есть помогите нужно для Дипломного проекта http://www.cyberforum.ru/cpp/thread222216.html
C++ Область видимости и действия
Подскажите, пожалуйста, в чём различие? Я искал в интернете, так там всё так умно написано, что ничего не понятно... Если можно, то попроще объясните...
Проблемы с кодировками C++/CLI
есть код system("systeminfo >> qq.txt"); textBox1->Text=System::IO::File::ReadAllText("qq.txt",System::Text::Encoding::Default); все работает но есть одно НО, результат: ?¬п 㧫*: P4 Ќ*§ў**ЁҐ Ћ‘: Microsoft Windows XP Professional ‚ҐабЁп Ћ‘: 5.1.2600 Service Pack 3 бЎ®аЄ* 2600 ?§Ј®в®ўЁвҐ«м Ћ‘: Microsoft...
C++ Копирование бинарного дерева http://www.cyberforum.ru/cpp/thread221795.html
Имеется бинарное дерево типа class TreeNode { public: TreeNode(); //конструктор virtual ~TreeNode(); //деструктор TreeNode *left; //указатель на левое поддерево TreeNode *right; //указатель на правое поддерево int data; //информационное поле
C++ Размер файла Скрипт, который находит размер всех файлов указанного типа на указанном диске.(можно и 1 файла) вот мне нада узнать размер D:\1.txt подробнее

Показать сообщение отдельно
joksis
Сообщений: n/a
29.12.2010, 12:45     Не могу разобраться в коде программы
Кто может описать что делает данная прога что выполняют определенные функции
#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(" ");
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru