Сейчас на форуме: (+2 невидимых)

 eXeL@B —› Оффтоп —› Ищу наставника :s3:
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 09 октября 2008 18:51
· Личное сообщение · #1

Кого можно будет подоставать глупыми вопросами связанными с программированием на C, C++ и java?
Есть добровольцы?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 09 октября 2008 20:28
· Личное сообщение · #2

Пиши, авось найдутся )




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 09 октября 2008 20:49 · Поправил: Isaev
· Личное сообщение · #3

да у меня в общем пока нету вопросов, просто начали в институте проходить (готовлю почву ), а я на Delphi писал всегда...
Си это хорошо, давно надо было разобраться, теперь вот придётся...
Ассоциации с Delphi помогают, но некоторые мелкие непонятки будут всплывать время от времени...

PS: сегодня в институте сказали, что Cи - глубоко низкоуровневый яп! сполз под парту До сих пор не отошёл!

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 09 октября 2008 21:58
· Личное сообщение · #4

Да прибудет сила с тобой (help), о юный падаван ))

-----
StarForce и Themida ацтой!





Ранг: 118.1 (ветеран)
Активность: 0.140
Статус: Участник

Создано: 09 октября 2008 23:52
· Личное сообщение · #5

Isaev пишет:
PS: сегодня в институте сказали, что Cи - глубоко низкоуровневый яп!

бедные студенты

-----
PSP-Gamer.ru





Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 10 октября 2008 01:51
· Личное сообщение · #6

Isaevтеперь я знаю у кого еще можно по си спрашивать

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube




Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 10 октября 2008 09:30
· Личное сообщение · #7

джоен рсдн




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 10 октября 2008 20:55
· Личное сообщение · #8

Isaev, google is your friend Инфы по C/C++ просто немеряно, кода и примеров - тоже. Все вопросы уже были заданы и ответы лежат в mailing lists и это всё проиндексировано гуглом.




Ранг: 230.5 (наставник)
Активность: 0.180
Статус: Участник
Norg

Создано: 10 октября 2008 22:04
· Личное сообщение · #9

C++ World не забудь качнуть, иногда быстро помогает найти ответ.

-----
M&#225 enginn renna undan &#254v&#237 sem honum er skapa&#240




Ранг: 191.8 (ветеран), 46thx
Активность: 0.170
Статус: Участник

Создано: 11 октября 2008 01:35 · Поправил: Ratinsh
· Личное сообщение · #10

По си посоветую начать с
Болски М.И. Язык программирования Си. Справочник
Белецкий Я. Энциклопедия языка Си.1992

Остальное к s0larian

PS Ну хоть бы запараллелили краклабу на сетку ниже 208
пров или стандарты режут 208 (или у меня одного так?)




Ранг: 387.4 (мудрец)
Активность: 0.170
Статус: Участник
системщик

Создано: 11 октября 2008 22:48
· Личное сообщение · #11

По С++ (имнно по теме того что вне С) :

Bruce Eckel
Thinking in C++, Volume 2: Practical Programming:
www.mindviewinc.com/downloads/TICPP-2nd-ed-Vol-two.zip

Scott Meyers
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 12 октября 2008 00:05
· Личное сообщение · #12

di-2 пишет:
C++ World

их есть у меня
s0larian пишет:
google is your friend Инфы по C/C++ просто немеряно, кода и примеров - тоже.

согласен, НО! вопросы если будут, то не по алго, а по особенностям синтаксиса больше наверное...
Нет чего-нибудь типа изучение си для знающих Delphi, чтобы просто парралели провести?

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

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 25 декабря 2008 22:05 · Поправил: Isaev
· Личное сообщение · #13

может кто-нибудь разжевать синтаксис этой проги:
main()
{
printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"−0x60);
}

и почему она выводит именно то, что она выводит?

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 25 декабря 2008 23:15
· Личное сообщение · #14

А на чем это компилируется?




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 25 декабря 2008 23:34 · Поправил: Isaev
· Личное сообщение · #15

в смысле "на чём"? платформа или компилятор?
Ansi C... в данный момент под линуксом, но по идее платформонезависимо
стандартный вопрос на засыпку, основанный чисто на синтаксисе
так вроде собирал: gcc -Wall -o name.exe name.c
в результате получаем строку unix, только не совсем догоняю как это работает

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 25 декабря 2008 23:52 · Поправил: tempread
· Личное сообщение · #16

Странно,у меня не компилируется:
(hostname) /user/user5 ] gcc -Wall -o test test.c
test.c:4:52: invalid suffix "x60" on floating constant
test.c: In function `main':
test.c:4: error: syntax error before numeric constant

Возможно символы исказились, вложи прогу в собщение.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 26 декабря 2008 00:49
· Личное сообщение · #17

интересный синтаксис

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 декабря 2008 01:39 · Поправил: Isaev
· Личное сообщение · #18

tempread пишет:
вложи прогу в собщение

прикрепил

Тут китайцы разбирали этот пример: topic.csdn.net/t/20030408/18/1635161.html
44b4_25.12.2008_CRACKLAB.rU.tgz - wr.c

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 26 декабря 2008 01:53
· Личное сообщение · #19

error C2065: 'unix' : undeclared identifier
в компилере мс. странное следование стандарту, должен заметить...

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 декабря 2008 03:07 · Поправил: Isaev
· Личное сообщение · #20

Rascal да вот под виндовсом такая же беда... Видать основано на том, что если переменная не объявлена, она получает какое-то значение по-умолчанию?!?!... (или особенности компиляторов)

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 26 декабря 2008 03:54
· Личное сообщение · #21

Isaev пишет:
если переменная не объявлена, она получает какое-то значение по-умолчанию?!?!

неа. нету переменной - будет ошибка компиляции.

гавняный какойто компилятор у вас. обычно это делается так

#include <stdio.h>
int main(void)
{
printf("unix");
// или например так
printf("un%c%c", 'i', 'x');

return 0;
}

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 88.0 (постоянный)
Активность: 0.070
Статус: Участник

Создано: 26 декабря 2008 04:06
· Личное сообщение · #22

тут главные непонятки с типом unix. под никсами скомпилилось, правда gcc ругнулся на то что unix не строка

С аргументом вроде все понятно:
&unix["\021%six\012\0"], создается массив символов и указатель передается как аргумент. что делает \021 я хз, %s понятно, вставливает строку, ix - последнии символы, \012 вроде Enter, ну и заключительный 0.

С данными понятно не все, (unix)["have"] трансформирует строку в символ, причем почемуто во второй, получается 'a' = 0x61 - 0x60 + указатель на строку "fun" = указатель на "fun"+1. Откуда берутся эти волшебные превращения мне тоже не понятно, может кто работал с типом unix? Вообще является ли он стандартным?

ЗЫ. В man unix, написано:
Code:
  1. NAME
  2.        unix,  PF_UNIX,  AF_UNIX, PF_LOCAL, AF_LOCAL - Sockets for local inter&#8208;
  3.        process communication
  4. SYNOPSIS
  5.        #include <sys/socket.h>
  6.        #include <sys/un.h>
  7.        unix_socket = socket(PF_UNIX, type, 0);
  8.        error = socketpair(PF_UNIX, type, 0, int *sv);


возможно надо приинклудить эти файлы, тогда и на винде будет компелироваццо




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 26 декабря 2008 06:12
· Личное сообщение · #23

\021 - это задание байта в восьмиричной системе, ибо начинается с 0. так же \012 =)

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 88.0 (постоянный)
Активность: 0.070
Статус: Участник

Создано: 26 декабря 2008 14:50
· Личное сообщение · #24

Да понятно что это байт, вопрoс какая у него функция. =)
Посмотрел в winuser.h вирт коды, но они чет не подят нифига:

Code:
  1. #define VK_MENU           0x12
  2. #define VK_PRIOR          0x21




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 26 декабря 2008 16:15 · Поправил: tempread
· Личное сообщение · #25

Значит так,что бы понять этот код,нужно знать следующее:
1)Код:
char a[]="xyz";
printf("%c\n",a[2]);
printf("%c\n",2[a]);

всегда выведет "z"

2) unix - это #define unix 1


Итого делаем следующие преобразования(по одному в каждой строке):
printf(&unix["\021%six\012\0"],(unix)["have"]+"fun"-0x60);
printf(&1["\021%six\012\0"],(unix)["have"]+"fun"-0x60);
printf(&1["\021%six\012\0"],(1)["have"]+"fun"-0x60);
printf(&"\021%six\012\0"[1],(1)["have"]+"fun"-0x60);
printf(&"\021%six\012\0"[1],"have"[1]+"fun"-0x60);

Так как "have"[1]='a'=0x61: printf(&"\021%six\012\0"[1],0x61+"fun"-0x60);

printf(&"\021%six\012\0"[1],"fun"+1);

Думаю,что теперь все понятно.




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 26 декабря 2008 19:34
· Личное сообщение · #26

rep0A пишет:
Посмотрел в winuser.h вирт коды, но они чет не подят нифига:

потому, что не то смотрел... это же 8-ричная, значит видимо 021 это
#define VK_CONTROL 17 (опять же вопрос, для чего это? Наверное единственное, что осталось не понятно, хотя наверное это совсем не важно, т.к. если я правильно понял, из-за &unix[ этот первый символ всё равно обрезается, каким бы он не был)
а \012 \0 (0x0A и 0x00 это просто замена \n)
tempread
вот спасибо! дай путь (желательно полный) к модулю, где описана #define unix 1

Не подскажите заодно как прога называется, чтобы из винды можно было с файлами работать при удалённом подключении к Linux-серверу ? (скачивать/закачивать... интерфейс у неё на TC похож)

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 26 декабря 2008 21:08
· Личное сообщение · #27

Isaev пишет:
дай путь (желательно полный) к модулю, где описана #define unix 1

Запусти:
gcc -E -dM -x c /dev/null

Isaev пишет:
Не подскажите заодно как прога называется, чтобы из винды можно было с файлами работать при удалённом подключении к Linux-серверу ?


winscp.net/eng/index.php




Ранг: 756.3 (! !), 113thx
Активность: 0.610.05
Статус: Участник
Student

Создано: 27 декабря 2008 15:22
· Личное сообщение · #28

tempread пишет:
Запусти:
gcc -E -dM -x c /dev/null

запустил, нашёл... но откуда это так и не понял...
перерыл все *.h или это не в них описано?

tempread пишет:
winscp.net

Ага, спс... то, что надо

-----
z+Dw7uLu5+jqLCDq7vLu8PvpIPHs7uMh




Ранг: 159.1 (ветеран), 7thx
Активность: 0.130
Статус: Участник

Создано: 27 декабря 2008 20:59 · Поправил: tempread
· Личное сообщение · #29

Isaev пишет:
перерыл все *.h или это не в них описано?


Ключ -dM показывает макросы,определенные самим компилятором.

Если уж так интересно, возьми исходники GCC, и смотри на следующее(для примера gcc 3.4):

gcc-3.4.6/gcc/config, искать строку "builtin_define_std ("unix");". Таких строк очень много, в исходниках, для разных систем,архитектур, поэтому взял первую попавшуюся.

gcc-3.4.6/gcc/c-cppbuiltin.c, функция builtin_define_std (const char *macro),отсюда вызывается

gcc-3.4.6/gcc/cpplib.c, функция cpp_define (cpp_reader *pfile, const char *str)




Ранг: 748.2 (! !), 390thx
Активность: 0.370
Статус: Участник
bytecode!

Создано: 31 декабря 2008 01:20 · Поправил: 4kusNick
· Личное сообщение · #30

скомпильте софтварную демку "4k":
[ASM]#include "s.h"
#define J ){
#define g if
#define u 128
#define R 255
#define O abs
#define L cos
#define z int
#define N sin
#define I 100.
#define W 1500
#define C for(
#define Q }else
#define M float
#define S 10000
#define B Uint8
#define aa double
#define F format
#define U Uint32
#define ad ->pixels
#define V SDL_MapRGB
#define q 3.1415926535
#define ac SDL_FillRect
#define ae SDL_GetTicks
#define af SDL_BlitSurface


#define ak 2.*q
#define ah ag(mx)+ag(my)
#define _F(c) 220*pow(2,(c-64)/12.)*ak/22050
#define ag(c) (O(j-c))%u
#define Mm(b,c) ((b)>(c)?c:b)
#define MM(b,c) ((b)>(c)?b:c)
#define MN(b,c) -Mm(-b,-c)
#define _T(a,b,c) C i=0;i++<S;) t##c##a[i]=a(i*ak/(M)(b));


aa fx[5]={10.,15.,20.,25.,30.},fy[5]={5.,10.,15.,20.,25.};z cl[5]={R<<16,R<<8,R
<<4,(R<<16)+(R<<8),(R<<16)+(R<<4)};char *sn="FFFFFF AAAAAAAAA FFF F H J K MMMM"
"MMMMMMMM M MMM MMM N P RRR N N NNN I I II RR RR RR PP NN PPPP N MMMMMMMMMMM I"
"II MMM KKK K M NNNNNNNNNNN MMM KKK III I K MMMMMMMMMMM KKK III HHHHHHHHHH J L"
"LLLLLLLLLL OOOOOO MMMM A AAA A A AAA A A AAA AAA FFFFFF AAAAAAAAA FFF F H J K"
" MMMMMMMMMMMM M MMM MMM N P RRR N N NNN I I II RR RR RR PP NN PPPP N MMMMMMMM"
"MMM III MMM KKK K M NNNNNNNNNNN MMM KKK III I K MMMMMMMMMMM KKK III HHHHHHHHH"
" HHH MMMMMM QQQQQQ RRRRRRRRRRRRRRRRR "
" "
" "
" Unnamed 2k4 ";


z po,t2=0,ref=3000;U t1=0;void cb(void *us,B *s,z l J M v,f2,f;char a,b;C;l>0
;l-=2 J a=sn[po];b=sn[(po+1)%661];f=_F (sn[po]);g(a!=' ')v=N(f*t1);g(t2>(W-W/
8.) J f2=1-(t2-(W-W/8.))/(W/8.);v*=f2; g(b!=' ')v+=(1-f2)*N(_F(b)*t1);}g(t1%W
==0 J t2=0;po++;po%=661;}*(Sint16*)s=( Sint16)32000*v;s+=2;t1++;t2++;}}SDL_S\
urface* G;void ab(aa x,aa y,aa a,z n J aa b;z i;SDL_Rect r;a=a/2;b=-a*sqrt(3.
);g(n>0 J C i=0;i<(z)a;i++ J r.x=(z)x+ i/2;r.y=(z)y+i;r. w=(z)a-i;r.h=1;ac(G,
&r,V(G->F,(B)x,(B)y,(B)(x+y)));}n=n-1; ab(x,y,a,n);ab(x+a,y,a,n);ab(x+a/2,y+b
/2,a,n);}}z main(z c,char **a J z x,y, p,w=400,h=300,t,fp,H, i,k,ms,di,c7,c8,
c9;B re,gr,bl,D,E,ny;U mx,my,j,*v,*d;M X,Y,Z,o,s,K,c4,c5,c6;aa A=0.,P=0.;SDL\
_Surface *b;SDL_Event e;SDL_Rect m,r2; SDL_AudioSpec T;T.freq=22050;T.F=AUDI\
O_S16LSB; T.channels=1;T.samples=8192; T.callback=&cb;SDL_OpenAudio(&T,NULL);
SDL_PauseAudio ( 0); SDL_Init( 32); b= SDL_SetVideoMode(w,h,32,0);G=SDL_Crea\
teRGBSurface(0,R+1,R+1,32,b->F->Rmask, b->F->Gmask,b->F->Bmask,b->F->Amask);p
=b->pitch/4;t=fp=k=c9=0;j=H=1;A=P=0.;Z =1.;M t0sin[S];M t0cos[S];M t1sin[S];M
t1cos[S];_T(sin,h,0)_T(cos,h,0)_T(sin, w,1)_T(cos,w,1)ms=ae();ab(0,u,u,9);m.x
=m.y=r2.y=0; m.h=m.w=r2.x=r2.h=r2.w=u; af(G,&m,G,&r2);m.x=64;r2.x=0;r2.y=u;af
(G,&m,G,&r2);m.x=m.y=u;af(G,&r2,G,&m); while(! SDL_PollEvent(&e)||e.type!=2 J
t++;fp++;g(!c9&&k>4 J k=0;c9=j=1;H=5;A =0.;Z=1.;Q g(k>1 J P+=.17;o=I*L(P/fy[2
]*ak);s=160.*L(P/fx[2]*ak);ac(b,NULL,0 );g(k==4){c7=MN(50+o,0)+1;c8=MN(100-s,
0)+1;Q{c7=MM(50+o,0)+1;c8=MM(100-s,0)+ 1;} v=((U*)b ad)+c8+c7*p; C y=c7;y<Mm(


250+o,h );y++ J K=t0cos[ 3*(t+y)] ;c4= t0sin[2*(y+t)];c5=pow(y-150-o,2);d=v;C
x=c8;x<Mm(300-s,w);x++ J g(k==2 J D=u+ u*(t1sin[w/2+(x+3*t)%(w/2)]+K+t1cos[w/
2+((x+t)*3)%(w/2)]+c4);Q{D=u+u*(t1sin[ x+3*t]+K+t1cos[3*(x+t)]+c4);}j=V(b->F,
(B)(t+D),D,D);g(k==4 J mx=j-*(v-1);my= *(v-p)-j;Q{SDL_GetRGB(*(v-1),b->F,&re,
&gr,&bl);E=D-bl;SDL_GetRGB(*(v-p),b->F ,&re,&gr,&bl); ny=bl-D;}c6=sqrt(pow(x-
200+s,2)+c5);g(k==3 J D=I-Mm(c6,100);g (c6>90 J j=0;Q{j=V(b->F,(B)(O(D*-E)+O(
D-ny)),(B)(O(D-E)+O(D-ny)),50);} Q g(k ==4 J j=I-Mm(0,100); j=V(b->F,ah,ah,ah
);Q{g(c6>80)j=0;}*v=j;v++;}v=d+p;}g(t% 500==0 J k++;t=0;j=H=1;A=0.;Z=1.;}Q g(
k>0 J A+=Z*.1;g(A>0 J o=A*L(t*q/20.);s =A*N(t*q/20.);Q o=s=0;g(A>5||A<-1)Z=-Z
;v=(U*)b ad;K=(125-t/9)*s-(175+t/9)*o; c4=(t/9-125)*o-(175+t/9)*s;C y=0;y<h;y
++ J C x=0;x<w;x++ J E=(B)K;ny=(B)c4;j =*((U*)(G ad)+E+ny*G->pitch/4);g(!j){E
=(B)(2*((B)(3*t)-y*x));g(E<u)E=R-E;j=V (b->F,(B)E,(B)E,(B)E);}* v=j;v++;K+=o;
c4+=s;}K-=(w*o+s);c4-=(w*s-o);}g(t%500 ==0 J k++;t=0;j=H=1;A=P=0.;Z=1.;}Q{A+=
.06;P+=.04;s=L(A); K=N(A);v=b ad;c7=u+ 127*N(t*ak/1200.);gr=3*t;C y=0;y<h;y++
J re=3*t; C x=0;x<w;x++ J *v=V(b->F,re ++,gr,c7);v++;}gr++;}C i=0;i<H;i++ J o
=(10+10*L(A+i*q/H));c4=L((P)/fx[i]*ak) ;c5=L((P)/fy[i]*ak);C x=8;x-->0; J C y
=0;y++<16;J X=o*L(y/16.*ak)*N(x/16.*ak );Y=o*N(y/16.*ak)*N(x/16.*ak);Z=o*L(x/
16.*ak) ;X=X*s-Z*K;Z=X *K+Z*s ;m.x=((( 150.*X )/(150-Z)*3)+200.)-160.*c4-3;m.
y=((200.*Y)/(200-Z)*3)+150.+I*c5-3;m.w =m.h=16;ac(b,&m,0);m.x+=3;m.y+=3;m.w=m
.h=10;ac(b,&m,cl[i]);}}}g(t%200==0 J H ++;g(c9)g(++c9==6 J break;Q H--;g(H==6
&&!c9 J H--;k++;t=0;j=H=1;A=P=0.;Z=1.; }}}SDL_Flip(b);di=fp*30-(ae()-ms);g(di
>0) SDL_Delay(di) ;} SDL_Quit() ;} [/

-----
Флэш, ява, дотнет - на завтрак, обед и ужин. Unity3D на закуску.



. 1 . 2 . >>
 eXeL@B —› Оффтоп —› Ищу наставника :s3:

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати