Editura peter otryvok din carte, deoarece nu este necesar să programați pe c

La început, a existat marca ENIAC I. Odată ce operatorul a observat o funcționare defectuoasă a mașinii. Sa dovedit că problemele au apărut din molia care a zburat în computer și a fost zdrobită sub contactele releului.

Operatorul a scos molia, a lipit-o în jurnalul de sistem și a notat: "O insectă (bug) a fost găsită în sistem". Deci a fost primul bug-ul de calculator.

Cunoașterea mea cu bug-urile a avut loc mult mai târziu. Am scris primul meu program în 11 ani. Programul conține o singură comandă de asamblare pentru calculul sumei de 2 + 2. Rezultatul, dintr-un motiv oarecare, a fost egal cu 2. Programul a constat dintr-o singură comandă și încă a existat o eroare în ea!

Acest capitol prezintă un număr de "primele" programe: primul, peste care am stat până la ora 2 am în căutarea unei erori (programul 3); primul răspuns la întrebarea de la primul examen de programare pe care l-am luat (programul 2); și, bineînțeles, "Hello World" este primul program din orice carte despre programare.

Doar recent, pentru a depune bani în cont, oamenii trebuiau să meargă la bancă și să meargă la casierie. De obicei, au fost utilizate formulare pre-imprimate lipite la sfârșitul cărții de cec. Numărul contului a fost pre-imprimat cu cerneală magnetică în partea de jos a formularului.

Dacă cărțile de cecuri goale au lipsit din hârtie, clientul a primit un formular de la casierie. Desigur, în acest formular numărul contului nu a fost specificat, astfel încât clientul a trebuit să o introducă manual.

Un fraier a tipărit propria versiune a formularelor de depozit. În exterior, ele nu se deosebeau de formele obișnuite "comune", dar erau marcate cu cerneală magnetică pe numărul contului fraudulosului.

Apoi sa dus la bancă și a pus aceste forme într-o tavă comună.

Înșelătoria a funcționat astfel: un client a venit la bancă pentru a depune bani în cont și a primit una dintre formularele contrafăcute. El a completat formularul și a contribuit cu bani. Pe măsură ce numărul contului a fost tipărit pe formular, calculatorul a procesat automat și a depus bani în acest cont. La numărul de cont, scris manual pe formular, nu a acordat atenție. Cu alte cuvinte, escrocul a însușit depozitele altor persoane.

Detectivul, căruia i sa atribuit acest caz, a fost nedumerit. Banii introduși au dispărut și nimeni nu a înțeles cum se întâmplă acest lucru. A fost posibil să se afle că problema apare numai atunci când faceți bani direct în bancă. Silentul a decis să încerce să facă un număr mare de depozite și să vadă ce s-ar întâmpla. Din moment ce își folosea banii proprii, trebuia să se limiteze la depozite mici ... foarte, foarte mici. Fiecare contribuție era în valoare de 6 cenți.

Șeful a petrecut o săptămână întreagă. A venit la bancă, a completat formularul, sa aliniat, a contribuit cu 6 cenți, a completat un nou formular, sa aliniat, a contribuit cu 6 cenți etc. Casierii au decis că a fost supărat. Dar aici unul dintre contribuții a dispărut. Apoi, la cererea detectivului, banca a verificat dacă cineva a contribuit cu 6 cenți în acea zi. A fost găsită o astfel de contribuție și hoțul a fost prins.

Programul 1. Bună ziua

Practic, toate cărțile despre programare încep cu programul "Hello World". Cartea noastră se referă, de asemenea, la numărul lor ... dar chiar și acest program conține o eroare.

Cum poți sparge ceva atât de elementar ca "Lumea bună"? Vezi pentru tine:

(Sfatul 228, răspunsul 6)

Utilizator: Nu mă pot conecta la sistem. Modemul nu dorește să stabilească o conexiune.

Consultant: Uită-te la modemul tău și spune-mi ce lumini sunt pe el.

Utilizator: Nu pot.

Consultant: Pentru a-mi ajuta să-ți rezolv problemele, trebuie să descrii cu exactitate ce se întâmplă. Consultați modemul și descrieți starea acestuia.

Utilizator: Nimic nu va veni din ea.

Utilizator: Modemul este în subsol.

Consultant: Atunci de ce nu te duci în jos și vezi?

Utilizator: Glumești? Există sub doi metri de apă!

Consultant: Calculatoarele sub apă nu funcționează.

Utilizator (surprins): Serios?

Programul 2. Jena profesorului

Odată ce am fost angajat în predarea limbii C. Vă aduc la cunoștință prima sarcină din primul control pe care l-am condus.

Ideea a fost simplă: am vrut să aflu dacă studenții înțeleg ce este variabila automată
16 int i = 0;
diferă de o variabilă statică
26 static int i = 0;
Dar, după control, trebuia să recunosc un fapt neplăcut: eu aș fi răspuns la această întrebare
greșit. Așa că a trebuit să stau în fața audienței și să spun: "Există două modalități de a obține cele mai înalte
scor pentru prima sarcină. În primul rând, puteți da răspunsul corect; în al doilea rând, puteți da acest răspuns,
pe care credeam că are dreptate ".

Deci, ce ar trebui să fie răspunsul potrivit?

(Sugestie 139, răspuns 102)

Biserica a achiziționat primul calculator, iar angajații au învățat treptat să o folosească. Secretarul a decis să pregătească un text standard pentru serviciul funerar; pretutindeni numele decedatului a fost înlocuit cu o etichetă. Înainte de înmormântare, a rămas doar să înlocuiască această secvență de simboluri cu un nume real.

Într-o zi s-au ținut două înmormântări: primul decedat a fost numit Maria, iar al doilea - Edna. Secretarul a făcut o înlocuire globală a substringului cu substringul Maria. Totul sa dovedit grozav. Apoi a generat imediat textul celui de-al doilea serviciu funerar, înlocuind numele Mary cu numele Edna. Dar acest lucru nu trebuie făcut ...

Imaginați-vă doar surpriza preotului atunci când a citit: "... și mama lui Dumnezeu, binecuvântata Fecioară Edna ..."

Program 3. Surpriza dimineata

Acest program a fost scris de unul dintre prietenii mei când eram la facultate. Am fost rugați să scriem un program pentru multiplicarea matricelor, însă funcția de multiplicare ar trebui să fie scrisă în asamblare. Pentru ca programul să funcționeze cât mai repede posibil, prietenul a folosit algoritmul pe care l-am dezvoltat pentru vectorizarea matricei.

Pentru a testa sistemul finit, el a scris o scurtă funcție de testare pe SAIL, dar testele au primit răspunsuri incorecte. Am studiat cu meticulozitate fiecare linie a programului de la 8 la 2 dimineața. Și când eroarea a ieșit în cele din urmă la lumină, amândoi am râs - era atât de proastă.

Următorul exemplu este o versiune simplificată a acestui program celebru. Este scris într-o singură limbă (C) și utilizează un algoritm de multiplicare puternic simplificat. Și totuși, eroarea inițială din ea este păstrată. O vei putea găsi?

(Sfat 34, răspunsul 53) închideți

Articole similare