Презокеански кораб потъва. Единствените оцелели са американец, българин, руснак и негър. Доплували до единствената здрава лодка и се качили на нея. Но лодката се оказала триместна и започнала да потъва. Тогава българина и руснака извикали:
- Негъра да скача във водата.
- Не може така протестира американеца Нарушава се Женевската конвенция за човешките права. Трябва да теглим жребии, кой да се жертва заради другите.
- ОК съгласил се руснакът. Ще ви задам по един въпрос. Който отговори правилно - остава в лодката, който не знае - скача в морето при акулите.
Всички се съгласили и руснакът задава въпрос на американеца:
- Кой спечели Втората Световна война?
- Русия.
- Правилно.
Пита българина:
- Колко жертви даде Русия във Втората Световна война?
- Десет милиона.
- Правилно.
Накрая руснака се обръща към негъра:
- А сега ти! Имената и адресите на загиналите... Поименно!
Иванчо - приказки за програмисти…
На Иванчо са му дали 3 ябълки.
Той е изял 2.
Колко ябълки има Иванчо?
Мислите си че 1?
Ама никъде не е казано, колко ябълки е имал Иванчо преди да му дадат 3-те.
Извод - нулирайте си променливите!
Иванчо има 3 ябълки. Дали му още 3. Той изял 2. Колко ябълки има Иванчо?
4? Неееееееееее! 6! Двете ги е изял един ден по рано.
Извод - синхронизирайте си нишките!
Иванчо имал 5 ябълки. Изял 2. Колко са му останали?
3? Нееее! Той не е ял свои ябълки! Пак има 5!
Извод - защитавайте си адресното пространство!
На Иванчо му дали 3 ябълки. Той ги изял.
На другия ден дошли да му ги искат, защото били дадени само за съхранение.
Извод - четете си спецификацията.