• Welcome to TUKE FÓRUM - Fórum pre študentov Technickej Univerzity v Košiciach.
 

programovanie

Started by rasto31, 27.04.2010, 23:49:30

« predchdzajce - alie »

mimexko

Quote from: Palike on  01.06.2010, 04:50:00
Ak je nastavená hodnota premennej i = 3, potom po vykonaní výrazu p[i++] = 5; sa hodnota 5 uloží do prvku poľa
Vyberte jednu odpoveď
   A. p[3]     
   B. žiadneho z uvedených     
   C. p[2]     
   D. p[4]     

toto chapem lebo ked je pole tak prva hodnota je p[0] ale potom preco...

Text otázky Ak je nastavená hodnota celočíselnej premennej i = 4, potom po vykonaní
výrazu p[--i] = 7;
sa hodnota 7 uloží do prvku poľa
Odpoveď-A p[3]
Odpoveď-B p[4]
Odpoveď-C p[5]
Odpoveď-D p[6]

???
no je to tym ze pri i++ ti zoberie najpr i a potom az inkrementuje cize to ulozi do 3. a pri tom druhom je --i cize najprv dekrementuje.  ak by bolo i-- tak by to ulozilo do 4

Bigy

Text otázky Nech je daný nasledujúci úsek zdrojového kódu programu v jazyku C:
1. int fun1(int a, int b) { return a+b; }
2. fun2() { printf("Bola zavolana funkcia vypis!\n"); }
3. main() {
4. int a=1, b=2, c=0;
5. c = a + fun1(a,b);
6. a = b + fun2();
7. }
Ktoré priradenia z riadkov 5 a 6 sú syntakticky správne ?
Odpoveď-A na riadku 5
Odpoveď-B na riadku 6
Odpoveď-C obidve
Odpoveď-D ani jedno 

niekde som videl ze riadok 5 je spravny a niekde som videl ze obidve...tak ako to je? niekto kto do toho vidi?

mimexko

Quote from: Bigy on  01.06.2010, 05:01:48
Text otázky Nech je daný nasledujúci úsek zdrojového kódu programu v jazyku C:
1. int fun1(int a, int b) { return a+b; }
2. fun2() { printf("Bola zavolana funkcia vypis!\n"); }
3. main() {
4. int a=1, b=2, c=0;
5. c = a + fun1(a,b);
6. a = b + fun2();
7. }
Ktoré priradenia z riadkov 5 a 6 sú syntakticky správne ?
Odpoveď-A na riadku 5
Odpoveď-B na riadku 6
Odpoveď-C obidve
Odpoveď-D ani jedno 

niekde som videl ze riadok 5 je spravny a niekde som videl ze obidve...tak ako to je? niekto kto do toho vidi?

to by ma tiez zaujimalo lebo teoreticky tam fun2() by sa dalo brat akoze je to funkcia void lebo nevracia nic a tym padom sa tam ani nic neda k b pripocitat takze ja by som sa priklanal za moznost ze 5 je spravne

mimexko

Subor Program1.c

#include <stdio.h>

int main (int argc, char *argv[])
{
   int i=1;
   
   printf ("i je %d, a i++ sa rovna %d \n", i, i++);

   int k=1;

   printf ("k je %d, a  ++k sa rovna %d ", k, ++k);
   
   return 0;
}

program nam vypise :
i je 2, a i++ sa rovna 1 
k je 2, a  ++k sa rovna 2


nevie mi niekto povedat preco vypise aj pre i aj pre k dvojku?

JCube

Quote from: Bigy on  01.06.2010, 05:01:48
Text otázky Nech je daný nasledujúci úsek zdrojového kódu programu v jazyku C:
1. int fun1(int a, int b) { return a+b; }
2. fun2() { printf("Bola zavolana funkcia vypis!\n"); }
3. main() {
4. int a=1, b=2, c=0;
5. c = a + fun1(a,b);
6. a = b + fun2();
7. }
Ktoré priradenia z riadkov 5 a 6 sú syntakticky správne ?
Odpoveď-A na riadku 5
Odpoveď-B na riadku 6
Odpoveď-C obidve
Odpoveď-D ani jedno 

niekde som videl ze riadok 5 je spravny a niekde som videl ze obidve...tak ako to je? niekto kto do toho vidi?
to je dalsia z chytrackych otazok za ktoru by som autorovi nasral do ruk a nepustil k vode. zavisi to od prekladaca. starsi prekladac to zhltne a defaultne priradi navratovu hodnotu na int. lenze ked mas navratovu hodnotu int potrebujes k nej aj return. predpokladam ze obe veci si prekladac (pracoval som s gcc) doplni sam a tym padom bude aj riadok 5 aj 6 syntakticky spravne (co mas moznost si overit napisanim takeho kodu a prelozenim). to ze to je programatorsky na chuja to asi vraviet nemusim
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

JCube

#180
Quote from: mimexko on  01.06.2010, 05:10:47
Subor Program1.c

#include <stdio.h>

int main (int argc, char *argv[])
{
   int i=1;
   
   printf ("i je %d, a i++ sa rovna %d \n", i, i++);

   int k=1;

   printf ("k je %d, a  ++k sa rovna %d ", k, ++k);
   
   return 0;
}

program nam vypise :
i je 2, a i++ sa rovna 1  
k je 2, a  ++k sa rovna 2


nevie mi niekto povedat preco vypise aj pre i aj pre k dvojku?
zaujimave :) predpokladam ze to suvisi s compilerom a s tym ze je zasobnikovy.

sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

sulo

V Céčku je defaultná volacia konvencia cdecl, takže parametre sa odovzdávajú sprava doľava.

http://en.wikipedia.org/wiki/X86_calling_conventions#cdecl

JCube

Quote from: sulo on  01.06.2010, 05:51:05
V Céčku je defaultná volacia konvencia cdecl, takže parametre sa odovzdávajú sprava doľava.

http://en.wikipedia.org/wiki/X86_calling_conventions#cdecl
dik potvrdil si moju domienku :)
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

vicious

Je zadaný program

main ()
static int a[10]={2,8,4,1,3,7};
int i, k ,p;
for(i=0; i<5; i++)
{for(k=i+1; k<6; k++)
{
if (a[k]<a)
{p=a;
a=a[k];
a[k]=p;
}
}
}
for(i=0; i<6; i++)
printf("%d, ", a);
}

Program vypíše postupnosť 1 2 3 4 7 8
Kot by mi vysvetlil prečo ?? Ked som mal zadané if (a[k]>a) tak som na to prišiel aj sám ale teraz nejako nerozumiem...

sulo

Je to ten istý algoritmus, akurát sa čísla nevypíšu zostupne, ale vzostupne. Lebo sa dva čísla vždy prehodia, ak je to nasledujúce menšie.

(A používaj BBcode značky na kód.)

RVecko

QuoteJe zadaný program

main ()
static int a[10]={2,8,4,1,3,7};
int i, k ,p;
for(i=0; i<5; i++)
{for(k=i+1; k<6; k++)
{
if (a[k]<a)
{p=a;
a=a[k];
a[k]=p;
}
}
}
for(i=0; i<6; i++)
printf("%d, ", a);
}

Program vypíše postupnosť 1 2 3 4 7 8
Kot by mi vysvetlil prečo ?? Ked som mal zadané if (a[k]>a) tak som na to prišiel aj sám ale teraz nejako nerozumiem...

A odkial mas prosim ta tu otazku??? Ak mate niekto otazky co boli tento rok mohli by ste to sem hodit?

vicious

#186
RVcko: .b.uď tu alebo vedľa v téme Zadania z programovania bol link z nejakých starších....
Ešte k tej mojej otázke: dojdem po tú podmienku a[k] < a (i) a ďalej nakoľko nebola splnená neviem jak ten program prebieha...tak toto keby mi niekto vysvetlil

NY_

#187
NECHAPEM ???  ??? ???



kubiik

funkcii f1 odovzdavas pole, a  cisla... a vo funkcii prechadzas pole a porovnavas ho s tym druhym cislom. Ak sa rovnaju... funkcia vrati index pola na ktorom sa toto cislo nachadza. Teda 1ka nieje na 0..1..2..  az na 3tej.

NY_

Aha tak potom by tu mala byt -1 nie tak preco to je nespravne? Ak hovorim somarinu  tak ktora moznost je spravna?


[/URL]

vicious

#190
tu bude výsledkom 0, lebo teraz máš že porovnáva či je prvok poľa rovný dvojke
si všimni čo máš pri printf zapísané tú f1 myslím a potm si všimni už samotnú f1, takže a to je akoekby X[], y je 6 a z je 2, tam nakoncu testuje či je itý prvok rovný 2
začína sa od nuly, teda či je nultý prvok rovný nule, áno vyhovuje preto ho vypíše

ursus

???

boze ved ta funkcia hlada v zadanom poli zadane cislo, ak ho najde vrati index, cize kolke je to cislo v poradi, pozor zacinas indexovat od nuly
ak dane cislo v danom poli najdene nebolo, vracia funkcia -1

:trestac:
So this router walks into the doctor's office...
- Doctor, it hurts when IP.

Agamemnon

Quote from: vicious on  20.06.2010, 04:09:58
Je zadaný program

main ()
static int a[10]={2,8,4,1,3,7};
int i, k ,p;
for(i=0; i<5; i++)
{for(k=i+1; k<6; k++)
{
if (a[k]<a)
{p=a;
a=a[k];
a[k]=p;
}
}
}
for(i=0; i<6; i++)
printf("%d, ", a);
}

Program vypíše postupnosť 1 2 3 4 7 8
Kot by mi vysvetlil prečo ?? Ked som mal zadané if (a[k]>a) tak som na to prišiel aj sám ale teraz nejako nerozumiem...

odhadom... toto nebude fungovať, lebo porovnávaš konkrétne číslo s pointerom na pole... aspoň mám taký pocit... cca to alebo hodí nejaký error, alebo sa to bude porovnávať s adresou toho poľa...
ak si teda dobre pamätám na c...
All code is crap.

42

vicious

Ten zdrojak vyzerá takto tu: neviem rpečo mi tam s tým porobilo hovadiny...

Agamemnon

lebo [ i ] je tag pre kurzivu, by som povedal :)
All code is crap.

42

vicious

ok, to ma medzitým tiež napadlo...len keby mi neikto pekne polopaticky vysvetlil čo sa tam potom deje ked sa nesplní podmienka...

mirek

Quote from: vicious on  21.06.2010, 18:15:46
ok, to ma medzitým tiež napadlo...len keby mi neikto pekne polopaticky vysvetlil čo sa tam potom deje ked sa nesplní podmienka...

ja by som odporucal ten program prepisat, vykomplikovat, spustit a pre lepsiu nazornost potom uz len krokovat.
So say we all!

Agamemnon

to je bublinka, ak si dobre pamatam... mozno obratena, nvm teraz, v ktorom smere je povodne :)

a potom to, co mirek odporucal :) krokovanie a debuggovanie velmi pomaha pochopit, co sa deje v programe...
All code is crap.

42

Ing. nemtom

myslim ze ked tychto par riadkov nechape, nevie ani debugovat a podla mna nevie ani co to je
brix will be shat

vicious

tak ja som si ten program už napísal aby som vedel aká odpoveď má byť...cez omegu...
tam ked sa nesplní podmienka tak to má skončiť, lenže podmeinka sa nesplní hned na začiatku a predsa sa program dokončí a práve toto keby ste mi pomohli pochopiť