prijava

Програмерски кутак

309 odgovoraposlednji 21. jan 2017.
PU

http://www.codinghorror.com/
kul blog, mnogo mi se sviđaju ova istraživanja o tome kako se mnogo veliki broj ljudi prijavljuje na posao programera a uopšte ne umeju da programiraju. Ili da rešavaju programerske zadatke.

Pa reko vas da pitam, kad ste svi eminentni

Napiši program koji ispisuje brojeve od 1 do 100
ali umesto brojeva deljivih sa 3 ispisuje "Bla", umesto brojeva deljivih sa 5 ispisuje "Truć", a umesto brojeva deljivih i sa 3 i sa 5 ispisuje "BlaTruć"

EDIT:
A najjači su ovi što pohrle da objasne svima u komentarima i onda ne reše ispravno zadatak.

EDIT na EDIT:
Kako se sad osećam jebeno pametno i nemam više briga za svoju budućnost u svetu programiranja kad sam završio sa čitanjem komentara na članku ovog bloga.

KE

Изволте, госн. Павле

program prvi;
var
i,c,cj,cd: integer;
a:array1..99 of integer;
Begin
for i:=1 to 99 do
begin
ai:=i;
cj:= ai mod 10;
cd:= ai div 10;
c:= cj + cd;
if (c mod 3=0) and (cj mod 5=0)
then writeln ('nji i bla')
else if (c mod 3=0) then writeln('bla')
else if (cj mod 5=0) then writeln('nji')
else writeln(ai);
end;
readln;

END.

Вероватно је могло ефикасније, али ето га на брзину, не видим на очи.

ЕДИТ: Вукајлија ми коцкасте заграде, пребацује у линкове, али зна се чему служе..
ЕДИТ на ЕДИТ : И још ми је све испеглала да нема табове, да га јебеш...

ME

и како то кратко и елегантно изгледа у олмајти Лиспу

(defun stampaj ()
(setq i 1)
(while (< i 101)
(setq x (mod i 3))
(setq y (mod i 5))
(format t "~a. ~a~%"
i
(if (AND (= x 0)(= y 0)) "bla truc" (if (= x 0) "bla" (if (= y 0) "truc" i))))
(setq i (+ i 1)))
(format t "~% jebace vas misa tumbas!!1"))
;funccall
(stampaj)
;output
1. 1
2. 2
3. bla
4. 4
5. truc
6. bla
7. 7
8. 8
9. bla
10. truc
11. 11
....
88. 88
89. 89
90. bla truc
91. 91
92. 92
93. bla
94. 94
95. truc
96. bla
97. 97
98. 98
99. bla
100. truc

jebace vas misa tumbas!!1
LI
Томдрил Мерилин

Да ли је могуће графичко дорађивање завршеног програма из Ц?

DA! pijan sam, i ne znam kako, al moje iskustvo iz trezvenosti kaze da je sve moguce, samo treba naci nacin da iz c-a utices na grafiku...borlandov kompajler ima u sebi biblioteke koje ti daju to, ali i u drugima mozes to da izvedes na manje ili vise perverzan nacin

BA

// U C-u
#include<stdio.h>

main(){
int a100,i;
for(i=0;i<99;i++){
ai=i+1;
}
for(i=0;i<99;i++){
if(ai%3==0){
if(ai%5==0){printf("BucTruc, %d\n",ai);}
else{printf("Buc %d\n",ai);}
}
if(ai%5==0){printf("Truc %d\n",ai);}
if(ai%5!=0 && ai%3!=0){printf("%d\n",ai);}
}
}

Mogu ja da vam postavim neke zadatke, ko MISLI da zna c++. Imam i lakših i težih, a kul su za vežbanje...

BA

*Домина садржи два целобројна поља (a,b) у опсегу од 0 до n−1. Параметар n је заједнички за сва домина и може да се поставља и дохвата. Може да се дохвати вредност првог и другог поља домине, да се изврши међусобна замена поља, да се одреди да ли су две домине једнаке не водећи рачуна о редоследу поља и да се домина упише у излазни ток у облику (a,b).
*Скуп домина може да садржи задат број различитих домина. Ствара се празан после чега се домине додају једна по једна. Може да се испита да ли се нека домина налази у скупу, да се дохвати број домина у скупу, да се приступа домини задатог редног броја, да се домина задатог редног броја извади из скупа, да се скуп испразни и да се скуп упише у излазни ток (по 10 домина у једном реду).
*Кутија је скуп домина. Може да се напуни свим могућим доминама, по случајном редоследу (број таквих домина је n(n+1)/2) и да се узме домина с краја кутије.
Табла је скуп домина код којег се домине додају на почетак или крај тако да суседна поља суседних домина буду једнака (тј. да друго поље претходне домине буде једнако првом пољу наредне домине; поља додаване домине могу да се замене).
*Рука је скуп домина капацитета n које неки играч држи у руци.
*Апстрактан играч има јединствен, аутоматски генерисан целобројни индикатор и игра доминама из задате кутије на задатој табли држећи неколико домина у садржаној руци. Играч не може да се копира ни на који начин. Може да се дохвати идентификатор играча, да се рука (уз претходно пражњење) напуни до пола доминама из кутије и да се одигра један потез. Одиграње потеза подразумева стављање једне од домина из руке на таблу. Ако ниједна домина не може да се стави, узима се по једна домина из кутије док не успе да се стави на таблу или се напуни рука или испразни кутија. Повратна вредност је индикатор исхода потеза и то: DALJE (домина је стављена и рука није празна), POBEDA (домина је стављена и рука је празна) или PORAZ (домина није стављена и рука је пуна или је кутија празна).
*Човек је играч који потез одиграва интерактивно уз поновљено извршавање следећих радњи по избору: 1. исписивање табле; 2. исписивање руке; 3. стављање домине на таблу; 4. узимање домине из кутије; 5. предаја игре.
Рачунар је играч који потез одиграва аутоматски и на крају испише домину коју је ставио на таблу.
*Игра организује одигравање партије задатог броја играча на задатој табли коришћењем задате кутије. Ствара се празним низом играча после чега се играчи додају један по један. Може да се одигра партија што подразумева пражњење свих скупова домина, попуњавање кутије доминама и циклички извршавање потеза појединих играча уз прескакање играча који су предали игру. Партија може да се заврши победом једног од играча или нерешено ако сви играчи предају игру. Пре савког потеза испише се садржај табле и идентификатор играча који је на потезу. На крају се испише начин завршетка партије.

BA

Pa baš ovakav ne znam da li može skroz da se odradi u C-u. Ali malo modifikovan bi mogao. Doduše, ja sam malo pozaboravljao šta su u mogućnosti sve strukture da učine u C-u. Ali eto, bilo bi lepo videti i kod za C :D

VÄ

Reme, teško ćeš ovo u C-u, mora da se radi objektno-orijentisano. Banic, odakle ti ovaj zadatak? Čini mi se da sam već nailazio na njega u zbirci ili nekim materijalima.

Je l' ima neko onu sliku, kao dijagram šta programeri misle jedni o drugima?

Na dnu su oni što misle da je HTML programski jezik, a na vrhu C i Assembler, a izdvojen je valjda LISP nisam siguran :)

BA

Pa nije samo da mora mnogo da se piše, ima zanimljive logike.

Davao je Laslo Kraus ovaj zadatak za projekat pre neku godinu.Ko je bio na ETF-u ili VISER-u, zna...

СК

Pazi, u C-u bi prilično zajebano napisati program ali je moguće uz izvesne modifikacije. Interesantan je to programčić. :)

Isto, ko hoće da se igra, može da pravi majnsviper. Može i u C-u da se odradi i prilično je interesantan. Radi se na praktikumu iz programiranja na prvoj godini ETF-a.

VÄ
Davao je Laslo Kraus ovaj zadatak za projekat pre neku godinu.Ko je bio na ETF-u ili VISER-u, zna...

Ličilo mi je na Klaslov zadatak, zato sam i pitao. :) Znači nekad su se radili i projekti za OO1?

Pazi, u C-u bi prilično zajebano napisati program ali je moguće uz izvesne modifikacije. Interesantan je to programčić. :)

Bilo bi PRILIČNO zajebano bez klasa i svih mogućnosti koje nose. :)

ME
Pišem Uz Vetar
Je l' ima neko onu sliku, kao dijagram šta programeri misle jedni o drugima?

Na dnu su oni što misle da je HTML programski jezik, a na vrhu C i Assembler, a izdvojen je valjda LISP nisam siguran :)

Ево га и, из мог скромног искуства, могу да кажем да је јебено тачан. :)
http://www.dodaj.rs/f/1S/ot/3fughVwv/foo.jpg

Ови што раде са микроконтролерима мисле да су терминатори, Лисп прогамери цене да су изнад осталих јер имају рекурзију у малом прсту (што је и природан начин програмирања и Лиспу), Ц/Ц++ је азбука*, а HTML програмери... па, на правом су месту :))

*

Link:‎"I like to compare C++ with the English language: both have their own warts, both have more exceptions than rules, both can be extremely frustrating to learn and people complain about both endlessly. But if your business depends on a community and you need a common language that everyone understands, it is the only option available to you. No matter how perfect your native language may be."
SA

banic, pa ovo je standardan zadatak koji se daje kada se rade klase, izvodjenje i polimorfizam. To ili sah tj. Sta ja znam, nista komlikovano, samo mnogo kuckanja. Moze i C sigurno, ali treba se ne izgubiti u C kodu za ovo.

PU
а HTML програмери

Pade ti na dno dijagrama ovim lapsusom :P

Sta ja znam, nista komlikovano, samo mnogo kuckanja.

+1

EDIT:
Šta je "wart", as in

both have their own warts
ZE

Znam da se programiranje u Ekselu ne može nazvati pravim programiranjem, ali može biti itekako upotrebljivo i zabavno. Evo jednog od kodova koji radi posao u mojoj firmi (još da mi adekvatno plaćaju za ovakve stvari... :) ). Kod se nalazi unutar Visual Basic forme koja deluje kao progress bar da se operater-korisnik ne bi ostavio na "čekanju". Nakon odrađenog posla, korisniku se pojavljuje random definicija sa Vukajlije.... :)

Option Explicit

Private Sub TextBox1_Change()

End Sub

Private Sub UserForm_Activate()
Application.Cursor = xlWait
ProgressBar.MousePointer = fmMousePointerHourGlass
DoEvents
Call PokreniProgressBar
Application.Cursor = xlDefault
Unload Me
End Sub
Private Sub UserForm_Initialize()
Call FormatUserForm(Me.Caption)
TextBox2.Left = TextBox1.Left
TextBox2.Top = TextBox1.Top + 3
TextBox2.Width = 0
End Sub
Sub PokreniProgressBar()
Dim sifra As String

sifra = InputBox("Unesi šifru:", "Za pokretanje brze kategorizacije morate uneti šifru")
If sifra = "lol" Then

On Error Resume Next
Dim mediji(100000) As String
Dim podaci(600000) As String
Dim i As Double
Dim j As Double
Dim n As Double
Dim m As Double
Dim brMedija As Integer

n = 1
m = 1
Dim proc As Variant
Dim s As Integer

Dim aktivniWorkbook As String
aktivniWorkbook = ActiveWorkbook.Name
Workbooks.Open FileName:="\\BOB\zajednichki\pomoćni\BAZA MEDIJA.xls"

Workbooks(aktivniWorkbook).Activate
Application.ScreenUpdating = True

Do While Workbooks("BAZA MEDIJA.xls").Worksheets("lista medija").Cells(n, 1) <> ""
mediji(n) = Workbooks("BAZA MEDIJA.xls").Worksheets("lista medija").Cells(n, 1)
n = n + 1
Loop
ActiveSheet.Cells(1, 4) = "Naziv medija"
ActiveSheet.Cells(1, 3) = "Kategorija medija"
ActiveSheet.Cells(1, 2) = "Vrsta medija"
Do While ActiveSheet.Cells(m, 4) <> ""
podaci(m) = ActiveSheet.Cells(m, 4)
m = m + 1
Loop
i = 1
j = 1
brMedija = n - 1
proc = brMedija / 100
For i = 1 To n - 1
If (i proc / brMedija) 100 > proc * s Then
s = s + 1
ProgressBar.TextBox2.Width = s * 2
'Else
'ProgressBar.TextBox2.Width = ProgressBar.TextBox2.Width
End If

For j = 1 To m - 1
If mediji(i) = podaci(j) Then
ActiveSheet.Cells(j, 3) = Workbooks("BAZA MEDIJA.xls").Worksheets("lista medija").Cells(i, 2)
ActiveSheet.Cells(j, 2) = Workbooks("BAZA MEDIJA.xls").Worksheets("lista medija").Cells(i, 5)
'ProgressBar.Label2.Caption = "Izračunavam sve podatke: " & " of " & i
DoEvents
ProgressBar.TextBox2.Width = s * 2
ProgressBar.Label1.Caption = "Obrađeno : " & s & " %"
End If
Next j
Next i
Unload Me
Dim p As Integer
p = Workbooks("SPAS.xls").Worksheets("Rand_Def_Vukajlija").Cells(1, 8)
MsgBox Workbooks("SPAS.xls").Worksheets("Rand_Def_Vukajlija").Cells((Int((p * Rnd) + 1)), 1)
Else:
MsgBox "Šifra koju ste uneli nije tačna. Žao mi je, pokušajte ponovo!"
Exit Sub
Unload Me
End If
End Sub

SG

Zna li neko neku dobru stranicu sa dobrim zadacima za vjezbanje logike.Do nedavno sam radio na z-trening ali njga više nema.

Tema je u Arhivi i zaključana je, tu se više ne odgovara.