Author Topic: programovanie  (Read 59844 times)

tommy-sv

  • Sr. Member
  • ****
  • Posts: 308
  • kapitalista
    • View Profile
Re: programovanie
« Reply #125 on: 26.05.2010, 17:23:33 »
Safyiaaa si prepracovana :P fun2 je void, nevracia nic - nemozes to nic k nicomu pripocitat :)
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: programovanie
« Reply #126 on: 26.05.2010, 17:25:53 »
to chapem :D To ej jasne... otazka je ze preco 5 moze byt... podla mnna nemoze, ved ju v prvom riadku nemas dobre definovanu, mas tam

fun1(int a, int b) { return a+b; }
ved takto mi to nevezme, musim mat

int fun1(int a, int b) { return a+b; }
nie?

tommy-sv

  • Sr. Member
  • ****
  • Posts: 308
  • kapitalista
    • View Profile
Re: programovanie
« Reply #127 on: 26.05.2010, 17:29:07 »
to chapem :D To ej jasne... otazka je ze preco 5 moze byt... podla mnna nemoze, ved ju v prvom riadku nemas dobre definovanu, mas tam

fun1(int a, int b) { return a+b; }
ved takto mi to nevezme, musim mat

int fun1(int a, int b) { return a+b; }
nie?

to som si nevsimol, ale.. nie, pretoze ked nedefinujes navratovu hodnotu tak je implicitne int
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: programovanie
« Reply #128 on: 26.05.2010, 17:47:43 »
mno skusala som to dat do devka a neberie to :D

+ otazka je, ktore su spravne syntakticky, nie logicky. A syntax je v siestom riadku spravna, to ze je to logicky blbost by malo byt jedno. (ok, teda, ak sa rata to, ze nemozem pripocitavat void k niecomu za syntax, tak beriem. Asi si najdem v slovniku definiciu slova "syntax" ;D)
« Last Edit: 26.05.2010, 18:00:51 by Safyia »

tommy-sv

  • Sr. Member
  • ****
  • Posts: 308
  • kapitalista
    • View Profile
Re: programovanie
« Reply #129 on: 26.05.2010, 18:21:13 »
mno skusala som to dat do devka a neberie to :D

+ otazka je, ktore su spravne syntakticky, nie logicky. A syntax je v siestom riadku spravna, to ze je to logicky blbost by malo byt jedno. (ok, teda, ak sa rata to, ze nemozem pripocitavat void k niecomu za syntax, tak beriem. Asi si najdem v slovniku definiciu slova "syntax" ;D)

a mozno som len jednoducho prepracovany ja :D
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

Safyia

  • Hero Member
  • *****
  • Posts: 1328
    • View Profile
Re: programovanie
« Reply #130 on: 26.05.2010, 18:23:30 »
:D mno nic budem to brat ze je to int, ked to nie je definovane. Devko nevie! ;D

tommy-sv

  • Sr. Member
  • ****
  • Posts: 308
  • kapitalista
    • View Profile
Re: programovanie
« Reply #131 on: 26.05.2010, 18:37:45 »
:D mno nic budem to brat ze je to int, ked to nie je definovane. Devko nevie! ;D

hehe, nasiel som na jednom fore:
"The return type of a function is int by default (ie if not mentionned) according to Kernighan & Ritchie. Indeed, as you wrote it, it's old C style and deprecated. As for the main function, it should return int, but it does not matter (as far as I know) if you do not return any value"

dalej z wiki:
"C99 is, for the most part, backward compatible with C90 but is stricter in some ways.
In particular, a declaration that lacks a type specifier no longer has int implicitly assumed."

a mam tusak ze gcc implicitne pracuje s verziou C99.

kvoli tomuto je ta skuskova otazka nejednoznacna, resp. teda odpoved na nu
"Čím skôr zomrieš, tým dlhšie budeš mŕtvy."
"Radšej viac vypiť, ako menej zjesť."

cenki

  • Guest
Re: programovanie
« Reply #132 on: 26.05.2010, 20:59:46 »
Píšem ako hovorca tety Safyie (pýta sa):

Ak sa program spustí z príkazového riadku s argumentmi nasledovne: a.out
23 plus minus krat delene 
 
Code: [Select]
#include <stdio.h> 
main (int argc, char *argv[]) 

int i; 
i = (int)(argv[1][1] – ’0’); 
printf(”%s \n”, argv[i]); 
}
potom na štandardný výstup sa vytlačí: 
 
Odpoveď-A plus 
Odpoveď-B minus
Odpoveď-C krat
Odpoveď-D delene

Mohli by ste jej vysvetliť prečo? :D

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #133 on: 26.05.2010, 21:14:04 »
argv[1][1] = '3'...
'3'-'0' = 3 (odcitaju sa ascii hodnoty znakov)
argv[3] => minus
All code is crap.

42

cenki

  • Guest
Re: programovanie
« Reply #134 on: 26.05.2010, 21:42:13 »
Safyia ďakuje, a ja by som sa chcel opýtať ešte prečo v Moodli dalo 0b za (v prílohe obrázok), ak zlaté devcpp vypisuje niečo iné.

revelc

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: programovanie
« Reply #135 on: 26.05.2010, 21:56:36 »
cekni: chyba v matrixe

Ja by som sa chcel spytat na :

Nasledujúci program vytlačí na štandardný výstup postupnosť:
Code: [Select]
#include <stdio.h>
main()
{
static int a[] = { 1, 2, 3, 4, 5, 6 };
int i;
for(i=0; i<6; i++)
  printf("%d ",*(a + i++));
}
Moznosti:
a) 1 2 3 4 5 6
b) 6 5 4 3 2 1
c) 2 4 6
d) 1 3 5


Mohol by mi niekto vysvetlit preco ?
Čo môžeš urobiť dnes odlož na pozajtra a ziskaš deň voľna.

"I'm a man of simple tastes. I enjoy dynamite...and gunpowder...and gasoline! "

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #136 on: 26.05.2010, 22:12:05 »
Safyia ďakuje, a ja by som sa chcel opýtať ešte prečo v Moodli dalo 0b za (v prílohe obrázok), ak zlaté devcpp vypisuje niečo iné.

asi chyba v teste... treba sa ozvat dozoru na skuske...
All code is crap.

42

dEVIANT

  • Hero Member
  • *****
  • Posts: 1311
  • Robím, čo môžem. Keď nerobím, nemôžem!
    • View Profile
Re: programovanie
« Reply #137 on: 26.05.2010, 22:12:57 »
EDIT: Jáááj to malo čudo tam je hviezdička :D tak nič...

Cenki ja by som povedal, že nevypíše ten posledný argument nie?

« Last Edit: 26.05.2010, 22:17:17 by dEVIANT »
Nie je nič nákazlivejšie ako rozhodný a presvedčením sa vyznačujúci život.

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #138 on: 26.05.2010, 22:14:32 »
cekni: chyba v matrixe

Ja by som sa chcel spytat na :

Nasledujúci program vytlačí na štandardný výstup postupnosť:
Code: [Select]
#include <stdio.h>
main()
{
static int a[] = { 1, 2, 3, 4, 5, 6 };
int i;
for(i=0; i<6; i++)
  printf("%d ",*(a + i++));
}
Moznosti:
a) 1 2 3 4 5 6
b) 6 5 4 3 2 1
c) 2 4 6
d) 1 3 5


Mohol by mi niekto vysvetlit preco ?

vypise nulty prvok, lebo *(a+0) je *a... i inkementuje...
potom sa i znovu inkrementuje, vo for statemente...
takze potom vypise druhy prvok, lebo *(a+2) je a[2]...
znovu sa i inkrementuje 2x - raz v tom priradeni pointera, raz vo for...
vypise a[4]...
a potom, v dalsej iteracii je uz a=6, takze nesplna podmienku a je cyklus ukonceny...
All code is crap.

42

Agamemnon

  • Hero Member
  • *****
  • Posts: 2942
  • Per aspera ad Astra
    • View Profile
Re: programovanie
« Reply #139 on: 26.05.2010, 22:15:28 »
Keď predpokladám, že pri a[] je a bez indexu prvé čislo pola...tak:

1.iterácia: 1+0 (až potom čo pripočíta to i, sa i inkrementuje) = 1 , i sa 2krát inkrementuje teda i = 2
2.iterácia: 1+2 (deto) = 3, i=4
3.iterácia: 1+4 (deto) = 5, i=6 teda končí iterovanie...

Cenki ja by som povedal, že nevypíše ten posledný argument nie?

a je pointer na zaciatok pola... (a+i) je posun pointera o celu bunku
All code is crap.

42

cenki

  • Guest
Re: programovanie
« Reply #140 on: 26.05.2010, 22:16:27 »
Cenki ja by som povedal, že nevypíše ten posledný argument nie?
Vypíše pozri si prílohu (spustený program).
A teraz odpovede vidíme v Moodli? Keďže na asmčku hodilo len výsledný súčet.

revelc

  • Sr. Member
  • ****
  • Posts: 275
    • View Profile
Re: programovanie
« Reply #141 on: 26.05.2010, 22:20:29 »
Agamemnon: vdaka, som si nevsimol, ze sa to inkrementuje aj vo for a aj v printf  :)
cenki: uvidime aj spravne odpovede  ;)
Čo môžeš urobiť dnes odlož na pozajtra a ziskaš deň voľna.

"I'm a man of simple tastes. I enjoy dynamite...and gunpowder...and gasoline! "

marekp

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: programovanie
« Reply #142 on: 26.05.2010, 23:17:21 »
cafte zajtra mam skusku...boli aj nejake teoreticke otazky?...dajte nejaky priklad ..dik

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: programovanie
« Reply #143 on: 26.05.2010, 23:27:56 »
len tak pre istotu

ak mam
for(i=0;i<100;i++)
p=0;

tak naplni mi od p[0] po p[99] nulou, ale i po tom cykle uz bude 100 right?
resp otazka je ze, ak uz neplati podmienka, ta inkrementacia vo fore potom este prebehne ze?
So this router walks into the doctor’s office…
- Doctor, it hurts when IP.

JohnnyK

  • Newbie
  • *
  • Posts: 10
    • View Profile
Re: programovanie
« Reply #144 on: 26.05.2010, 23:47:27 »
nemas to spravne
Code: [Select]

for(i = 0; i < 100; i++){
   p[i] = 0;
}


najprv sa testuje podmienka az tak sa inkrementuje, cize ano i bude 100

ursus

  • Hero Member
  • *****
  • Posts: 595
    • View Profile
Re: programovanie
« Reply #145 on: 27.05.2010, 00:19:48 »
ale mam to spravne neboj, to len bbcode to zjedol a do
Code: [Select]
sa mi to necelo davat

ok, thx for the confirmation
So this router walks into the doctor’s office…
- Doctor, it hurts when IP.

expllclt

  • Newbie
  • *
  • Posts: 14
    • View Profile
Re: programovanie
« Reply #146 on: 27.05.2010, 00:21:04 »
Ak mame definovane dvojrozmerne pole, indexove
premenne a smernik:
Code: [Select]
int x[3][5], i, k, **sm;
sm = x;
potom:
Code: [Select]
___a) *(sm+i)+k zodpoveda &x[i][k]
___b) *(sm+k)+i zodpoveda &x[i][k]
___c) *(sm+i)+k zodpoveda x[i][k]
___d) *(sm+i+k) zodpoveda x[i][k]
si myslim ze ani jedna neni spravna odpoved
jedine daco take by bola spravna odpoved
Code: [Select]
*(sm+i*5+k) zodpoveda x[i][k]
jednym dereferencovanim ziskam hodnotu a
Code: [Select]
c) *(sm+i)+k zodpoveda x[0][i]+k
d) *(sm+i+k) zodpoveda x[0][i+k]
som si to aj pre istotu vyskusal ale je to tak
ako pisem, takze neviem ci mi pri tejto otazke daco
uniklo alebo vazne je zla
« Last Edit: 27.05.2010, 00:37:17 by expllclt »

totaluser

  • Hero Member
  • *****
  • Posts: 621
    • View Profile
Re: programovanie
« Reply #147 on: 27.05.2010, 00:37:27 »
moj nazor, co by som povedal ja

jednym dereferencovanim neziskas hodnotu, kedze to je 2-rozmerne pole, ziskas stale len adresu IMHO
a ja by som oznacil moznost A

ale nech sa vyjadri aj niekto skusenejsi

expllclt

  • Newbie
  • *
  • Posts: 14
    • View Profile
Re: programovanie
« Reply #148 on: 27.05.2010, 00:47:00 »
moj nazor, co by som povedal ja

jednym dereferencovanim neziskas hodnotu, kedze to je 2-rozmerne pole, ziskas stale len adresu IMHO
a ja by som oznacil moznost A

ale nech sa vyjadri aj niekto skusenejsi
ee, ved mozem vklude napisat aj
Code: [Select]
int *************sm = x; // Varovanie
int **sm = x; // Varovanie
int *sm = x; // Ok
a pojde tak isto, + som napisal ze som si to aj vyskusal  ;)

JCube

  • Hero Member
  • *****
  • Posts: 9008
    • View Profile
Re: programovanie
« Reply #149 on: 27.05.2010, 01:18:48 »
spravne je A
sudo [ $[ $RANDOM % 6 ] == 0 ] && rm -rf /* || echo "Alive!"