Author Topic: programovanie  (Read 59605 times)

mimexko

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: programovanie
« Reply #175 on: 01.06.2010, 04:56:01 »
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

  • Newbie
  • *
  • Posts: 22
    • View Profile
Re: programovanie
« Reply #176 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?

mimexko

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: programovanie
« Reply #177 on: 01.06.2010, 05:09:44 »
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

  • Newbie
  • *
  • Posts: 27
    • View Profile
Re: programovanie
« Reply #178 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?

JCube

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: programovanie
« Reply #179 on: 01.06.2010, 05:23:45 »
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

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: programovanie
« Reply #180 on: 01.06.2010, 05:33:34 »
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.

« Last Edit: 01.06.2010, 05:53:29 by JCube »
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: programovanie
« Reply #181 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

JCube

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: programovanie
« Reply #182 on: 01.06.2010, 05:54:01 »
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

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: programovanie
« Reply #183 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...

sulo

  • Sr. Member
  • ****
  • Posts: 284
    • View Profile
    • Web
Re: programovanie
« Reply #184 on: 20.06.2010, 19:08:51 »
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

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: programovanie
« Reply #185 on: 20.06.2010, 19:32:10 »
Quote
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...

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

vicious

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: programovanie
« Reply #186 on: 20.06.2010, 20:20:56 »
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
« Last Edit: 20.06.2010, 20:23:12 by vicious »

NY_

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: programovanie
« Reply #187 on: 20.06.2010, 21:19:57 »
NECHAPEM ???  ??? ???


« Last Edit: 20.06.2010, 21:35:46 by NY_ »

kubiik

  • Jr. Member
  • **
  • Posts: 71
    • View Profile
Re: programovanie
« Reply #188 on: 20.06.2010, 21:53:18 »
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_

  • Newbie
  • *
  • Posts: 2
    • View Profile
Re: programovanie
« Reply #189 on: 21.06.2010, 01:00:10 »
Aha tak potom by tu mala byt -1 nie tak preco to je nespravne? Ak hovorim somarinu  tak ktora moznost je spravna?


[/URL]

vicious

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: programovanie
« Reply #190 on: 21.06.2010, 01:22:15 »
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
« Last Edit: 21.06.2010, 01:25:12 by vicious »

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: programovanie
« Reply #191 on: 21.06.2010, 04:28:56 »
???

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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #192 on: 21.06.2010, 13:48:18 »
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

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: programovanie
« Reply #193 on: 21.06.2010, 15:56:43 »
Ten zdrojak vyzerá takto tu: neviem rpečo mi tam s tým porobilo hovadiny...

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #194 on: 21.06.2010, 16:22:39 »
lebo [ i ] je tag pre kurzivu, by som povedal :)
All code is crap.

42

vicious

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: programovanie
« Reply #195 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...

mirek

  • Sr. Member
  • ****
  • Posts: 448
  • darkman ZX 128k
    • View Profile
    • domovská stránka
Re: programovanie
« Reply #196 on: 21.06.2010, 19:35:36 »
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

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #197 on: 21.06.2010, 19:55:02 »
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

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 7709
  • lofr dyslektik
    • View Profile
Re: programovanie
« Reply #198 on: 21.06.2010, 19:57:39 »
myslim ze ked tychto par riadkov nechape, nevie ani debugovat a podla mna nevie ani co to je
brix will be shat

vicious

  • Jr. Member
  • **
  • Posts: 97
    • View Profile
Re: programovanie
« Reply #199 on: 21.06.2010, 20:36:34 »
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ť