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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу для просмотра файлов PDF http://www.cyberforum.ru/cpp/thread222216.html
какой язык порекомендовали бы? исходники может у кого есть помогите нужно для Дипломного проекта
C++ Нужна литература по программированию нигде не могу найти нужа литература по программированию на с++ именно по следующим темам: история и развитие прерывания STL консольная графика и прочее программирование под *nix всё на русском языке т.к. моих знаний английского не хватит для перевода книги. принимаю любые предложения(ссылки на книги,названия и т.п.) P.S. заранее благодарен. http://www.cyberforum.ru/cpp/thread221998.html
C++ Размер файла
Скрипт, который находит размер всех файлов указанного типа на указанном диске.(можно и 1 файла) вот мне нада узнать размер D:\1.txt
C++ Работа с FMODex
Кто работал с этой библиотекой подскажите как получить список всех звуковых входов и выходов звуковой карты (название, тип) и регулировать их баланс?
C++ не могу разобраться.. http://www.cyberforum.ru/cpp/thread221010.html
Вывести на экран все натуральные числа из диапазона от A до B, в записи которых цифра 7 встречается ровно N раз. При отсутствии чисел с указанными свойствами выдать на экран сообщение “Требуемых чисел нет”. Границы диапазона A и B и значение N ввести с клавиатуры Не получается сделать с числом N, не знаю даже как это сделать, чтобы выдавал только такие значения, сколько раз должно...
C++ Семантический анализтор Привет всем! вообщем есть задание: Си-грамматика арифметических выражений со скобками, операций *,&, (), , <точка>, -> Семантика: восстановление типа данных идентификатора по виду выражения. нужно написать семантический анализатор... кто нибудь пытался сделать что нибудь подобное и где можно почитать про то, как реализовать семантический анализатор? сам хочу начать с изучения вот отсюда... подробнее

Показать сообщение отдельно
joksis
Сообщений: n/a

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

29.12.2010, 12:45. Просмотров 625. Ответов 0
Метки (Все метки)

Кто может описать что делает данная прога что выполняют определенные функции
#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(" ");
}
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru