A peter otryvok kiadó a könyvből, mivel nem szükséges programozni c
Először az ENIAC Mark I volt. Miután az üzemeltető észlelt hibát a gépben. Kiderült, hogy a problémákat a lepke támadta meg, amely a számítógépbe repült, és a relé kapcsolatok alatt zúzott.
Az operátor kivette a lepkét, ragasztotta be a rendszernaplóba, és feljegyzett: "A rendszerben rovar (bug) található". Tehát volt az első számítógépes hiba.
A bogarakkal való ismerkedésem sokkal később történt. Az első programomat 11 éven belül írtam. A program csak egy összeszerelési parancsot tartalmazott a 2 + 2 összeg kiszámításához. Az eredmény valamilyen oknál fogva megegyezett a 2. A program csak egy csapatból állt, és mégis hiba volt benne!
Ez a fejezet számos "első" programot mutat be: az első, amelyen 2 óráig ültem egy hiba keresésére (3. program); az elsõ választ a kérdésre az elsõ programozási vizsgán (2. program); és természetesen a "Hello World" az első program minden programozási könyvben.
A közelmúltban, hogy pénzt helyeztek be a számlára, az embereknek be kellett menniük a bankba, és el kellene menniük a pénztárosba. Általában a csekkfüzet vége felé beillesztett, előre nyomtatott űrlapokat használták. A számlaszámot előzetesen kinyomtatták mágneses tintával a forma alján.
Ha az üres csekkfüzetek kifogytak a papíron, akkor az ügyfél kapott egy űrlapot a pénztárosból. Természetesen ezen a formanyomtatványon a számlaszámot nem adták meg, ezért az ügyfélnek manuálisan kellett beírnia.
A csaló a letéti űrlap saját verzióját nyomtatta ki. Kívülről nem különböztek a szokásos "közös" formáktól, de mágneses tintával voltak megjelölve a csalók számlaszámán.
Aztán elment a bankba, és ezeket a formákat egy közös tálcába tette.
A csalás így működött: egy ügyfél jött a bankba, hogy pénzt helyez be a számlára, és megkapta az egyik hamis formát. Kitöltötte az űrlapot, és hozzájárult a pénzhez. Mivel a számlaszámot az űrlapon kinyomtatták, a számítógép automatikusan feldolgozta és pénzt küldött ebbe a fiókba. A számlaszámra, kézzel írt az űrlapon, nem figyelt rá. Más szóval, a csaló másokat lerakta.
A nyomozó, akinek ezt az ügyet rendelték, zavart volt. A bevezetett pénz eltűnt, és senki sem értette, hogy ez hogyan történik. Lehetett kideríteni, hogy a probléma csak abban az esetben merül fel, amikor pénzt keresnek közvetlenül a bankban. A holtág úgy döntött, hogy megpróbál nagy mennyiségű betétet készíteni, és látni fogja, mi fog történni. Mivel saját pénzét használta, kis betétekre kellett korlátozni ... nagyon kicsi. Minden egyes hozzájárulás 6 cent volt.
Az alvó egész héten át telt. Eljött a bankba, kitöltötte a formanyomtatványt, bejutott a sorba, 6 centért járult hozzá, majd kitöltötte az új formanyomtatványt, 6 centtel járult hozzá, stb. A pénztárosok úgy döntöttek, hogy őrült. De itt az egyik hozzájárulás eltűnt. Aztán a nyomozó kérésére a bank ellenőrizte, hogy van-e valaki, aki 6 centet adott ezen a napon. Ilyen hozzájárulást találtak, és a tolvaj elkapta.
Program 1. Hello World
Gyakorlatilag minden könyv a programozásról indul a "Hello World" programmal. Könyvünk is utal a számukra ... de mi még ez a program hibát tartalmaz.
Hogyan tudsz elszakadni valamit olyan elemi, mint a "Hello World"? Nézd meg magad:
(Tipp 228, 6. válasz)
Felhasználó: Nem tudok csatlakozni a rendszerhez. A modem nem akar kapcsolatot létesíteni.
Konzultáns: Nézze meg a modemet, és mondja meg, milyen fények vannak rajta.
Felhasználó: Nem tudom.
Konzultáns: Hogy segítsen nekem megoldani a problémáidat, pontosan meg kell határoznod, mi történik. Kérjük, nézze meg a modemet, és írja le annak állapotát.
Felhasználó: Semmi sem fog származni.
Felhasználó: A modem az alagsorban van.
Tanácsadó: Akkor miért nem megy le és látod?
Felhasználó: Viccelsz? Két méter alatt van víz!
Tanácsadó: A víz alatt lévő számítógépek nem működnek.
Felhasználó (meglepve): Komolyan?
Program 2. A tanár szégyenlete
Miután részt vettem a C nyelv tanításában, felhívom a figyelmet az első feladatra, amelyet az első ellenőrzések során végeztem.
Az ötlet egyszerű volt: meg akartam tudni, hogy a diákok megértik-e az automatikus változót
16 int i = 0;
különbözik egy statikus változótól
26 statikus int i = 0;
De a kontroll után kénytelen volt elismerni egy kellemetlen tényt: én magam válaszoltam volna erre a kérdésre
rossz. Ezért a közönség előtt kellett állnom és azt mondanom: "Kétféleképpen lehet a legmagasabbat elérni
pontszám az első feladathoz. Először is megadhatja a helyes választ; másodszor, megadhatod ezt a választ,
ami azt hitte, helyes. "
Tehát mi a helyes válasz?
(139. felhívás, 102. válasz)
Az egyház megszerzett első számítógépét, és az alkalmazottak fokozatosan megtanulták használni. A titkár úgy döntött, hogy szabványos szöveget készít a temetkezési szolgáltatás számára; mindenhol az elhunyt nevét egy címke váltotta fel. A temetés előtt csak a szimbólumok szimbólumainak helyettesítése maradt valódi névvel.
Egy nap egyszerre két temetést tartottak: az első elhunytat Maria-nak hívták, a második pedig Ednát. A titkár globális helyettesítette a szubsztringt a szubsztringhez Maria. Minden nagyon jól sikerült. Aztán azonnal létrehozta a második temetkezési szertartást, és felváltotta a Mária nevű nevet Ednával. De ezt nem szabad ...
Képzelje el a pap meglepetését, amikor elolvasta: "... és Isten anyja, az áldott Szűz Edna ..."
Program 3. Reggel meglepetés
Ezt a programot egyik barátom írta, amikor főiskolán voltam. Arra kértük, hogy írjon egy programot a mátrixok megszorzására, de maga a szorzási funkciót össze kell állítani. Ahhoz, hogy a program a lehető leggyorsabban működjön, a barátom a mátrix vektorizálásához kifejlesztett algoritmust használta.
A kész rendszer teszteléséhez egy rövid tesztfunkciót írt a SAIL-ra, de a tesztek hibás válaszokat kaptak. Mindannyian alaposan tanulmányoztuk a program minden egyes vonalát 20: 00-2: 00 között. És amikor a hiba végül kiderült, mindketten nevetettünk - ez minden ostobaság volt.
A következő példa egy egyszerűsített változata ennek a híres programnak. Egy nyelven írt (C), és egy erősen egyszerűsített szorzási algoritmust használ. És mégis az eredeti hiba megmaradt. Meg tudod találni?
(34. kérdés, 53. válasz) zárja be