C-programmerings fråga. Hur fungerar denna loop?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av TomasL »

Håller med, Och om man då skriver riktigt, med klamrar så syns det tydligt hur det fungerar.
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av tokfan »

jävlarns vad det tog fart här.
Koden är inklistrad så att den är ihoptryckt, det är därför den ser ganska illa ut (ser dock lite så ut när jag är i farten också).
vet någon förästen vad typsnittet heter som behåller texten som man kopierat den? Tänkte just googla på det när jag såg att det diskuterades här.
hade för mig att det var courier men det går ju åt pipan. (kör i word).

Mer finlir kommer senare i kursen, detta var bara något exempel för att man skulle få ett hum om hur det fungerade. Det påpekades också att det var
en ganska osmidig lösning.

Sen när man får tid ska jag nog googla upp det där bubblesort å knappa på lite.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av TomasL »

Klistra in koden mellan Kod-taggarna, dvs klicka på knappen "Code" så behålls formateringen.

Men oavsett vilket så skall du klamra in koden, den blir enklare att läsa och risken för fel är mindre.

Att lära sig skriva kod hamnar till 90% att skriva tydligt och kommentera.
Ju tydligare desto enklare att söka efter eventuella buggar.
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av tokfan »

Jag menade när jag kopierar in i word. Fast Code trixet här hade jag ingen aning om, så det var också bra att veta.
Håller på och googlar. Det kanske är nåt extra krångel om man kopierar från PDF till word.

(klipper ut det viktigaste från ett kompendie och gör ett eget nerbantat).
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av sodjan »

Och vad har PDF och Word med koden i forumet att göra !!??

Till en tidigare fråga...

> Men skrivet på ett mycket dåligt sätt.

Tomas, det var ju fullständigt uppenbart att koden hade tappat formatering
p.g.a av avsaknaden av code-taggar. Det gör inte att det måste ha varit skrivet
på ett "mycket dåligt sätt" från början, så klart. Så jag (och antagligen och Swech
när han undrade) antog att det var något med logiken i sig som var "mycket dålig".
Men i ditt svar hade du enbart justerat formatteringen...

Att yra om "nackskott" p.g.a en miss med code-taggarna är bara löjligt.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av TomasL »

Skall du skriva kod, så använd notepad eller nån liknande editor.
Ultraedit är en bra rekommendation.

Sodjan, jo klamrarna saknades, och det har inget med formateringen att göra.
Det är bara eventuella indrag som försvinner med formateringen.
I mitt svar om du tittar så finns det 2 uppsättningar klamrar till, som förtydligar koden, samt gör den "säker"

Även om formateringen hade behållits, så blir det mer eller mindre "oläsbart", och mycket lätt att skapa buggar.

Kod: Markera allt

for (i = 0; i < 9; i++)for (j = i + 1; j < 10; j++)if (xdata[j] < xdata[i]){
	temp = xdata[i];
	xdata[i] = xdata[j];
	xdata[j] = temp;}

Eller

Kod: Markera allt

	
	for (i = 0; i < 9; i++)
		for (j = i + 1; j < 10; j++)
			if (xdata[j] < xdata[i]){
				temp = xdata[i];
				xdata[i] = xdata[j];
				xdata[j] = temp;}
Vilket fortfarande är fel sätt att skriva.

EN av de vanligaste buggarna i C-kod beror på avsaknaden av klamrar i loopar och villkor

He he det var ju riktigt riktigt kul :lol: :bravo:

Kod: Markera allt

#include                                     <math.h>
#include                                   <sys/time.h>
#include                                   <X11/Xlib.h>
#include                                  <X11/keysym.h>
                                          double L ,o ,P
                                         ,_=dt,T,Z,D=1,d,
                                         s[999],E,h= 8,I,
                                         J,K,w[999],M,m,O
                                        ,n[999],j=33e-3,i=
                                        1E3,r,t, u,v ,W,S=
                                        74.5,l=221,X=7.26,
                                        a,B,A=32.2,c, F,H;
                                        int N,q, C, y,p,U;
                                       Window z; char f[52]
                                    ; GC k; main(){ Display*e=
 XOpenDisplay( 0); z=RootWindow(e,0); for (XSetForeground(e,k=XCreateGC (e,z,0,0),BlackPixel(e,0))
; scanf("%lf%lf%lf",y +n,w+y, y+s)+1; y ++); XSelectInput(e,z= XCreateSimpleWindow(e,z,0,0,400,400,
0,0,WhitePixel(e,0) ),KeyPressMask); for(XMapWindow(e,z); ; T=sin(O)){ struct timeval G={ 0,dt*1e6}
; K= cos(j); N=1e4; M+= H*_; Z=D*K; F+=_*P; r=E*K; W=cos( O); m=K*W; H=K*T; O+=D*_*F/ K+d/K*E*_; B=
sin(j); a=B*T*D-E*W; XClearWindow(e,z); t=T*E+ D*B*W; j+=d*_*D-_*F*E; P=W*E*B-T*D; for (o+=(I=D*W+E
*T*B,E*d/K *B+v+B/K*F*D)*_; p<y; ){ T=p[s]+i; E=c-p[w]; D=n[p]-L; K=D*m-B*T-H*E; if(p [n]+w[ p]+p[s
]== 0|K <fabs(W=T*r-I*E +D*P) |fabs(D=t *D+Z *T-a *E)> K)N=1e4; else{ q=W/K *4E2+2e2; C= 2E2+4e2/ K
 *D; N-1E4&& XDrawLine(e ,z,k,N ,U,q,C); N=q; U=C; } ++p; } L+=_* (X*t +P*M+m*l); T=X*X+ l*l+M *M;
  XDrawString(e,z,k ,20,380,f,17); D=v/l*15; i+=(B *l-M*r -X*Z)*_; for(; XPending(e); u *=CS!=N){
                                   XEvent z; XNextEvent(e ,&z);
                                       ++*((N=XLookupKeysym
                                         (&z.xkey,0))-IT?
                                         N-LT? UP-N?& E:&
                                         J:& u: &h); --*(
                                         DN -N? N-DT ?N==
                                         RT?&u: & W:&h:&J
                                          ); } m=15*F/l;
                                          c+=(I=M/ l,l*H
                                          +I*M+a*X)*_; H
                                          =A*r+v*X-F*l+(
                                          E=.1+X*4.9/l,t
                                          =T*m/32-I*T/24
                                           )/S; K=F*M+(
                                           h* 1e4/l-(T+
                                           E*5*T*E)/3e2
                                           )/S-X*d-B*A;
                                           a=2.63 /l*d;
                                           X+=( d*l-T/S
                                            *(.19*E +a
                                            *.64+J/1e3
                                            )-M* v +A*
                                            Z)*_; l +=
                                            K *_; W=d;
                                            sprintf(f,
                                            "%5d  %3d"
                                            "%7d",p =l
                                           /1.7,(C=9E3+
                              O*57.3)%0550,(int)i); d+=T*(.45-14/l*
                             X-a*130-J* .14)*_/125e2+F*_*v; P=(T*(47
                             *I-m* 52+E*94 *D-t*.38+u*.21*E) /1e2+W*
                             179*v)/2312; select(p=0,0,0,0,&G); v-=(
                              W*F-T*(.63*m-I*.086+m*E*19-D*25-.11*u
                               )/107e2)*_; D=cos(o); E=sin(o); } }
Debugga den koden :humm: :shock:
tokfan
Inlägg: 694
Blev medlem: 10 juni 2010, 14:05:13

Re: C-programmerings fråga. Hur fungerar denna loop?

Inlägg av tokfan »

[quote="sodjan"]Och vad har PDF och Word med koden i forumet att göra !!??

Den har ingenting med frågan i forumet att göra.
Vet inte riktigt vad som flög i mig.
Skriv svar