Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
joksis
1

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

29.12.2010, 12:45. Просмотров 1011. Ответов 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));brea k;
case 4:scanf("%f",&db_plav); printf("\ndvoichnoe predsavlenie:");show_mem((char*)&db_plav,sizeof(double));bre ak;
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(" ");
}
}
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.12.2010, 12:45
Ответы с готовыми решениями:

Не могу разобраться в коде программы для заполнения массива
Заранее извините, если глупые вопросы, я просто совсем новичок в этом деле. Разъясните, пожалуйста,...

Не могу разобраться в коде. Некорректный результат работы программы
Ввести с клавиатуры числа x, E . Последовательность a,a....a образована по закону a=3+...

Не могу разобраться в коде программы
Как убрать дублирование при экспорте из 1 БД Access во 2 в таблице &quot;Результат тестирования&quot; вот...

Не могу разобраться в коде
import os import time import zipfile # 1. Файлы и каталоги, которые необходимо скопировать,...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.12.2010, 12:45

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не могу разобраться в коде
На просторах форума нашёл полезный для меня код, но не понимаю ничего, что написанно в циклах ниже...

Не могу разобраться в коде
Добрый время сутки. Ковыряюсь с стем же снегом, о котором писал ранее) Вызывается он в...

не могу разобраться в коде
Фишка такова: нужно сделать, чтоб при на ведении на картинку поднимающаяся область была больше,...

Не могу разобраться в коде. )
var ans=0; if(document.registration.v1.checked==true)ans++; ...

Не могу разобраться в коде
Код не мой, но хотелось бы разобраться, как и что работает. Вопросы возникли в выделенных строках....

Не могу разобраться в коде
Доброго всем времени суток. Хочу сделать шапку сайта из трёх картинок общий размер шапки 1000х200...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.