Programerski kviz

poruka: 42
|
čitano: 12.958
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Programerski kviz

Odlučio sam se otvoriti ovu temu da i malo programeri dođu na svoje što se tiče kvizova.

Nadam se da ce biti zanimanja.

 

Pravila:

1. Zadaci ne bi trebale biti za domaće zadaće i slično, tu mislim na zadatke tipa

"zadan je prototip, odredi funkciju", "zapisi u dateoteku, pa iscitaj", itd., znaci treba

biti zadan konkretan problem matematički, logički ili sto vam već padne napamet.

 

2. Program treba držati što jednostavnije i pisati na način da ga je moguće bez

dodavanja posebnih datoteka i sl. kompajlirati/interpretirati (c/c++ kod treba biti moguće

kompajlirati s dev-c++, za javascript se ne smiju koristiti framework-i, nadam se 

da se razumije na što mislim)

 

3. Rješenja bi trebala biti napisana u C,C++,C#,Java,JavaScript ili Python, vjerujem da bi večina

programera trebala biti uopznata s jednim ili dva navedena jezika.

 

EDIT:

4. Kao u drugim kvizovima, tko riješi zadatak ima pravo postaviti novi ili ustupiti

nekome drugome pravo da postavi novi.

 

5. Tko zadaje novi zadatak bi također trebao i znati točno rješenje zadatka, da bi

mogao potvrditi da li je riješenje dobro ili ne.

 

Evo i prvi zadatak:

 

Najveći palindromni  broj,  koji  se  dobije  umnoškom  dvoznamenkastih  brojeva  je  9009  (91*99).  Koji  je
najveći palindromni broj umnožak dva troznamenkasta broja?

 

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put ned 29.11.2009 16:06 (drnde).
 
2 0 hvala 0
16 godina
neaktivan
offline
Programerski kviz

Isprika na offtopicu, je li to možda zadatak sa project Eulera, ili slično sitea? Veoma mi je poznat...

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Programerski kviz
itf4n kaže...

Isprika na offtopicu, je li to možda zadatak sa project Eulera, ili slično sitea? Veoma mi je poznat...

To mi je bio jedan zadatak s neke pitalice na faksu, trebalo je rjesiti u PL\SQL-u, da li je 

originalno od nekud drugdje nemam pojma...

All religions are the same: religion is basically guilt, with different holidays.
16 godina
offline
RE: Programerski kviz
itf4n kaže...

Isprika na offtopicu, je li to možda zadatak sa project Eulera, ili slično sitea? Veoma mi je poznat...

 

Je, #4.

Rjesenje je 906609 == 993*913. U kojem jeziku hocete source? :))

15 godina
neaktivan
offline
RE: Programerski kviz
dado kaže...
itf4n kaže...

Isprika na offtopicu, je li to možda zadatak sa project Eulera, ili slično sitea? Veoma mi je poznat...

 

Je, #4.

Rjesenje je 906609 == 993*913. U kojem jeziku hocete source? :))

Točno rješenje, source mozes postati i na pastebin pa postavi link, da nebi previse spemali po forumu :)

 

Evo i novi zadatak posto je dado offline.

 

Pronaći NAJMANJI cijeli broj X za koji vrijedi da su 2*X, 3*X, 4*X, 5*X i 6*X zapisani istim
znamenkama, ali drugim redoslijedom

 

Molim da kod rješenja postavite na pastebin a samo riješenje postati u temu.

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put pet 20.11.2009 21:45 (drnde).
16 godina
offline
RE: Programerski kviz
Poruka je uređivana zadnji put sub 21.11.2009 0:31 (dado).
14 godina
neaktivan
offline
RE: Programerski kviz
drnde kaže...

Pronaći NAJMANJI cijeli broj X za koji vrijedi da su 2*X, 3*X, 4*X, 5*X i 6*X zapisani istim
znamenkama, ali drugim redoslijedom

Pozdrav svima.

 

Da nije mozda 142857

 

Rjesenje u javi http://pastebin.com/m597df03

Poruka je uređivana zadnji put sub 21.11.2009 11:36 (Homer Simpson 9).
15 godina
neaktivan
offline
RE: Programerski kviz
Homer Simpson 9 kaže...

 

Da nije mozda 142857

 

Rjesenje u javi http://pastebin.com/m597df03

Rješenje je dobro, stavi novi zadatak.

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put sub 21.11.2009 12:29 (drnde).
14 godina
neaktivan
offline
RE: Programerski kviz
drnde kaže...
Homer Simpson 9 kaže...

 

Da nije mozda 142857

 

Rjesenje u javi http://pastebin.com/m597df03

Rješenje je dobro, stavi novi zadatak.

Nemam ideju sad. Stavi ti nesto ako imas

15 godina
neaktivan
offline
Programerski kviz
Prim faktori broja 13195 su 5,7,13 i 29. Koji je najveći
prim faktor broja 600851475143 ?
All religions are the same: religion is basically guilt, with different holidays.
 
0 0 hvala 0
15 godina
protjeran
offline
Programerski kviz

Da budem iskren nije mi se dalo čekati provjeru do samog kraja. Zadnje što sam dočekao je bilo 6857.

 

http://pastebin.com/f2b66fdc3

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
RE: Programerski kviz
Tracer kaže...

Da budem iskren nije mi se dalo čekati provjeru do samog kraja. Zadnje što sam dočekao je bilo 6857.

 

http://pastebin.com/f2b66fdc3

Rješenje je točno, ali može se izvesti tako da broj podjeliš s otkrivenim faktorom

i taj rezultat koristiš kao broj, pa nema čekanja Namigiva

 

primjer

 

Ajde molim te postavi neki novi zadatak, da se i ja mogu baciti na rješavanj nečega Smijeh

All religions are the same: religion is basically guilt, with different holidays.
15 godina
protjeran
offline
RE: Programerski kviz
drnde kaže...
Tracer kaže...

Da budem iskren nije mi se dalo čekati provjeru do samog kraja. Zadnje što sam dočekao je bilo 6857.

 

http://pastebin.com/f2b66fdc3

Rješenje je točno, ali može se izvesti tako da broj podjeliš s otkrivenim faktorom

i taj rezultat koristiš kao broj, pa nema čekanja Namigiva

 

primjer

 

Ajde molim te postavi neki novi zadatak, da se i ja mogu baciti na rješavanj nečega Smijeh

Nije mi se danas baš dalo biti matematički inovativan Osmijeh

 

No.. evo jednog zadatka koji sam već jednom postavio: Napiši program koji će sam sebe izbrisati.

Poruka je uređivana zadnji put sub 21.11.2009 16:55 (Tracer).
15 godina
neaktivan
offline
RE: Programerski kviz
Tracer kaže...

 

No.. evo jednog zadatka koji sam već jednom postavio: Napiši program koji će sam sebe izbrisati.

ubio sam se pokusavajuci da to napravim u C-u u windowsima - no way

 

Ali npr. u pythonu za file naziva OvajProgram sve sto treba je:

 

import os

os.remove('OvajProgram.py')

 

Da li postoji način da se izbrise .exe aktivnog programa u C-u u Win, jer znam

da je moguće pod Linux-om ?

 

 

 

 

All religions are the same: religion is basically guilt, with different holidays.
15 godina
protjeran
offline
Programerski kviz

Moguće je u C-u i pod Windowsima. Postoji mali trik ;)

Moj PC  
1 0 hvala 0
16 godina
offline
RE: Programerski kviz

NT je imao flag FILE_FLAG_DELETE_ON_CLOSE koji bi to trebao napraviti :) E sad kako to iskoristiti.. ima vise nacina. Temp file i sl.

Ili mozda napraviti thread koji ubije glavni proces i zbrise file?

 

 

Ja bi najvjerojatnije posegnuo za trikom.

 

Program.exe bi napravio temp.bat file u kojem bi bilo:

 

ping localhost -n 3 > nul
del program.exe
del temp.bat

 

 

EDIT: zasto ping?

posto batch nema "wait" ili "sleep", koristim "ping" kojem podesavam -n 3 (3 sekunde) sa outputom u null tako da program.exe stigne zavrsiti prije nego ga batch pokusa obrisati

Poruka je uređivana zadnji put sub 21.11.2009 21:38 (dado).
15 godina
protjeran
offline
Programerski kviz

Da. Tako bi se trebalo napraviti. Kreirati program koji kreira .bat datoteku sa sličnim sadržajem:

 

fprintf(fBat, ":provjera\n");
fprintf(fBat, "del mojprog.exe\n");
fprintf(fBat, "if exist mojprog.exe goto provjera\n");
fprintf(fBat, "del temp.bat\n");
fclose(fBat);

 

Nakon ovoga pozove se bat datoteka, i kad se izađe iz programa on će biti izbrisan.

 

 

Moj PC  
0 0 hvala 0
15 godina
neaktivan
offline
Programerski kviz

Da li ima netko neki zanimljiv zadatak ?

All religions are the same: religion is basically guilt, with different holidays.
 
0 0 hvala 0
16 godina
offline
RE: Programerski kviz

Sto radi sljedeci source? (C)

 

unsigned char a[256];
a[0] = 0;
for (int i=1; i < 256; i++)
    a[i] = (a[i>>1]>>1) | ((i&1)<<7);


16 godina
neaktivan
offline
Programerski kviz

Imam ja jedan (C) i mučim se s njim (još sam njub u C-u), vama vjerojatno nije težak. Treba napisati program koji će na ulaz dobiti neki string (pretpostaviti da polje nije veće od 100 znakova).

Recimo: Dobar dan kako ste. Dobro

Program treba ispisati prvu riječ velikim slovima, drugu malim, treću velikim itd., te zadnju velikim slovima bezobzira kakva je prethodna bila, sve bez razmaka do prve točke, sve poslije točke se ne ispisuje.

Gornji primjer: DOBARdanKAKOSTE.

 

Valjda je jasno postavljen zadatak...

@dado; jbt, nemam pojma, imaš bitwise shiftove ljevo, desno, bitwise or, ma odustal sam čim sam ">>" vidio...Neodlučan

EDIT: jedino šta znam je, da deklariranje int-a u for petlji nije po c99 standardu ili tak neš Cool

"Tako je" - povikase seljaci i slozno glavama razbise zid
Poruka je uređivana zadnji put uto 24.11.2009 13:33 (1domagoj1).
 
0 0 hvala 0
15 godina
neaktivan
offline
RE: Programerski kviz
dado kaže...

Sto radi sljedeci source? (C)

 

unsigned char a[256];
a[0] = 0;
for (int i=1; i < 256; i++)
    a[i] = (a[i>>1]>>1) | ((i&1)<<7);


a[1] = (a[0001>>1 = 0]>>1 = 0) | ((1&1)*27)  - (0 | 1*27)

a[1] = 1 * 27 = 128

a[2] = (a[0010>>1 = 1]>>1 = 64 | ((0010&0001 = 0)*27) - (64 | 0*27)

a[2] = 64

itd...

 

Zanci a[i>>1] sifta i jedno mjestu u desno (dijeli sa 2)

pa vrijednost spremljenu u a[i>>1] takoder shifta jedno mjesto u ljevo (dijeli s 2)

(i&1) bitwise AND izmedu i AND 1, ako i ima prvi bit 1 onda je 1 inace 0

(i&1) rezultat se mnozi s 27 (sedam shifta u lijevo) = 128 ili 0

bitwise OR izmedu lijeve i desne strane

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 1

i tako za svaki bit na istoj poziciji.

Rezultat sprema u a[i].

Sve to 255 puta. Osmijeh

All religions are the same: religion is basically guilt, with different holidays.
15 godina
neaktivan
offline
RE: Programerski kviz
1domagoj1 kaže...

Imam ja jedan (C) i mučim se s njim (još sam njub u C-u), vama vjerojatno nije težak. Treba napisati program koji će na ulaz dobiti neki string (pretpostaviti da polje nije veće od 100 znakova).

Recimo: Dobar dan kako ste. Dobro

Program treba ispisati prvu riječ velikim slovima, drugu malim, treću velikim itd., te zadnju velikim slovima bezobzira kakva je prethodna bila, sve bez razmaka do prve točke, sve poslije točke se ne ispisuje.

Gornji primjer: DOBARdanKAKOSTE.

 

Bas tako, nije bas neki zadatak, trebao bi se malo upoznati s ASCII tablicama.

 

Znaci imas char c[] = "Dobar dan kao ste.Dobro"

 

Razlika izmedu velikih i malih slova je 32, ako zelis 'o' pretvoriti u 'O' to ces napraviti

c[1] - 32; da zelis obrnuto, znaci 'O' u 'o' , c[1] + 32;

space -> razmak ti je vrijednosti 32, znaci poslije znaka s vrijednosti 32 dolazi nova rijec mozes i provjeravati za ' '

tocka ima vrijednost 46, i kad dodes do nje zavrsis citanje moze i provjeravati za '.'

spremanje bez razmaka ces najlakse uciniti tako da spremas promjene u novo polje znakova npr. d[100].

 

Probaj sam napraviti, vidjet ces da je puno vece zadovoljstvo kad sam riješiš Namigiva

All religions are the same: religion is basically guilt, with different holidays.
16 godina
neaktivan
offline
Programerski kviz

A znam da bi trebal radit sa ASCII tablicom, nije mi prvi put da ih koristim, al nikak nemam ideju za to izmjenjivanje riječi, al budem ja neš sklepal, hvala na hintu, ovaj za drugo polje, neš sam razmišljal o tome, al previše olako tu ideju odbacio. A sad dosta offtopic, bježim ja to napravit Osmijeh

 

EDIT: Ups, nisam ja u prvom redu mislil radit sa ASCII tablicom, nego sa toupper i tolower :P

"Tako je" - povikase seljaci i slozno glavama razbise zid
Poruka je uređivana zadnji put uto 24.11.2009 17:46 (1domagoj1).
 
0 0 hvala 0
16 godina
offline
RE: Programerski kviz
drnde kaže...

a[1] = (a[0001>>1 = 0]>>1 = 0) | ((1&1)*27)  - (0 | 1*27)

a[1] = 1 * 27 = 128

a[2] = (a[0010>>1 = 1]>>1 = 64 | ((0010&0001 = 0)*27) - (64 | 0*27)

a[2] = 64

itd...

 

Zanci a[i>>1] sifta i jedno mjestu u desno (dijeli sa 2)

pa vrijednost spremljenu u a[i>>1] takoder shifta jedno mjesto u ljevo (dijeli s 2)

(i&1) bitwise AND izmedu i AND 1, ako i ima prvi bit 1 onda je 1 inace 0

(i&1) rezultat se mnozi s 27 (sedam shifta u lijevo) = 128 ili 0

bitwise OR izmedu lijeve i desne strane

0 0 = 0

0 1 = 1

1 0 = 1

1 1 = 1

i tako za svaki bit na istoj poziciji.

Rezultat sprema u a[i].

Sve to 255 puta. Osmijeh

 

Da, opis algoritma je tocan no sto je krajnji rezultat toga? :)

15 godina
neaktivan
offline
Programerski kviz

@Dado

 

Da, opis algoritma je tocan no sto je krajnji rezultat toga? :)

 

Kako to mislis?

 

EDIT: Evo sjetio se sortirati polje pa skuzio: Rezultat je ispis svih ascii znakova od 1 do 255 :)

 

 

Novi zadatak:

 

Postoji veliki broj 9-znamenkastih brojeva u intervalu 123456789 do 987654321 u kojima se svaka znamenka pojavljuje samo jedan put.
Koji je 100.000-ti broj u tom intervalu u kojem se znamenke ne ponavljaju?

All religions are the same: religion is basically guilt, with different holidays.
Poruka je uređivana zadnji put uto 24.11.2009 23:15 (drnde).
 
0 0 hvala 0
16 godina
offline
RE: Programerski kviz
drnde kaže...

 

EDIT: Evo sjetio se sortirati polje pa skuzio: Rezultat je ispis svih ascii znakova od 1 do 255 :)

 

Blizu :) Algoritam okrece bitove za svaki byte i stvara tablicu ;)

 

 

Evo novi

 

x=a+++++b; 

 

Edit: sorry, nisam vidio novi zadatak

 

Poruka je uređivana zadnji put uto 24.11.2009 23:21 (dado).
16 godina
neaktivan
offline
RE: Programerski kviz
dado kaže...

Evo novi

 

x=a+++++b; 

 

Da ne ostane neodgovoreno... :D

 

x = a++ + ++b;

 

==

 

++b; x = a + b; ++a;

The candle flame gutters. Its little pool of light trembles. Darkness gathers. The demons begin to stir.
16 godina
offline
RE: Programerski kviz
itf4n kaže...
dado kaže...

Evo novi

 

x=a+++++b; 

 

Da ne ostane neodgovoreno... :D

 

x = a++ + ++b;

 

==

 

++b; x = a + b; ++a;

 

Je :)

 

Ajmo malo teze ;)

 

while (*d++=*p++);

 

EDIT: d i p su char *d, char *p

 

Poruka je uređivana zadnji put sri 25.11.2009 0:19 (dado).
15 godina
neaktivan
offline
Programerski kviz
dado kaže...

 

Ajmo malo teze ;)

 

while (*d++=*p++);

 

EDIT: d i p su char *d, char *p

 

while (*d = *p);

*p++,*d++,

while(*d); -> beskonacna petlja

?

All religions are the same: religion is basically guilt, with different holidays.
 
0 0 hvala 0
16 godina
offline
RE: Programerski kviz
Nije beskonacna petlja. Probaj to zamisliti kao funkciju koja radi nesto smisleno

void pametna_funkcija(char *d, char *p)
{
while(*d++=*p++);
}
Nova poruka
E-mail:
Lozinka:
 
vrh stranice