De cursus "Zoekalgoritmen en datastructuren" van SHAD. Boek: Niklaus Wirth "Algoritmen en gegevensstructuren"

Bij het samenstellen van het curriculum van onze educatieve projecten hebben we een lijst samengesteld met gespecialiseerde boeken die worden aanbevolen voor studie in elk van de disciplines - in totaal meer dan 100 titels voor de gehele studieperiode. We zullen u deze lijst, vergezeld van korte opmerkingen, niet verbergen en presenteren. Het is moeilijk om zo'n hoeveelheid informatie in één artikel te passen, daarom is het overzicht van de door Technopark aanbevolen literatuur in vier delen verdeeld - op basis van het aantal semesters, met een kleine toevoeging van nuttige boeken die door studenten worden voorgesteld. Links in de reacties naar extra interessant leesvoer zijn alleen welkom.

Het eerste semester is bedoeld om de kennis van studenten te "afstemmen". Het bevat disciplines zoals algoritmen en datastructuren, C++ programmeren en een overzichtscursus over webtechnologieën. De recensie zal beginnen met boeken over deze onderwerpen. De meeste van de gepresenteerde boeken hebben betrekking op de tijdloze "klassiekers", een verzameling fundamentele concepten.

Webtechnologieën

Victor en Natalya hebben samen meer dan 22 trainingen gecreëerd en ontwikkeld, gedurende vele jaren gaven ze een cursus van lezingen aan MIREA, de Technische Staatsuniversiteit van Moskou genoemd naar N.E. Bauman, evenals bij het Information Technology Center.

Het boek “Computernetwerken. Principes, technologieën en protocollen "wordt aanbevolen door het ministerie van Onderwijs van de Russische Federatie. De publicatie is geschikt voor diegenen die basiskennis willen krijgen van de principes van het bouwen van computernetwerken, de kenmerken van traditionele en toekomstige technologieën van lokale en wereldwijde netwerken willen begrijpen, en de manieren willen bestuderen om grote samengestelde netwerken te creëren en deze te beheren.

Cricket Lee is afgestudeerd aan de University of California, Berkeley. Na zijn afstuderen kreeg hij een baan bij Hewlett-Packard, waar hij negen jaar heeft gewerkt. In 1997 verliet hij HP om Acme Byte & Wire op te richten, een DNS-advies- en trainingsbedrijf. Een jaar lang was Cricket Director of DNS Products voor Verisign Global Registry Services. In maart 2003 trad hij toe tot Infoblox, een DNS- en DCHP-apparaatbedrijf, waar hij werd gepromoveerd tot vice-president.

Paul Albitz heeft een BS van de University of Wisconsin en een MS van Purdue University. Werkte bij Hewlett-Packard aan BIND-versies voor HP-UX 7.0 en 8.0. Hij creëerde de tools die worden gebruikt om het hp.com-domein te beheren.

DNS en BIND is als de Bijbel voor systeembeheerders. Het materiaal erin wordt gepresenteerd in een eenvoudige, toegankelijke taal. Deze publicatie is gewijd aan BIND 9.3.2 en BIND 8.4.7. BIND 9.3.2 bevat beveiligingsverbeteringen en ondersteuning voor IPv6, evenals ENUM, SPF en het gebruik van landspecifieke domeinnamen.

Hier vindt u alle informatie die u moet weten over hoe DNS werkt, de structuur van de domeinnaamruimte, hoe u naamservers installeert en configureert, hoe u programmeert met de DNS-clientbibliotheekfuncties en nog veel, veel meer.

Boek: SQL voor gewone stervelingen

Schrijver, docent en adviseur Martin Graber heeft tientallen jaren geleden een complete inleiding tot Structured Query Language gemaakt, waardoor het nog steeds gemakkelijk is om te leren werken met SQL. SQL for Mortals is een gids voor elke gestructureerde implementatie van querytalen die een verwijzing naar standaard SQL biedt, evenals een beschrijving van de algemene eigenschappen van niet-standaard SQL.

Het boek zal helpen om de efficiëntie van het werken met samengestelde gegevenstabellen te verbeteren door het gebruik van geavanceerde technieken van gelijktijdige query's naar meerdere tabellen, de vorming van subquery's en complexe query's. Met behulp van deze publicatie kunt u praktische vaardigheden opdoen in relationeel databasebeheer.

Boek: "Basisbeginselen van relationele databases"
Door Jennifer Widom, Jeffrey D. Ullman

Jennifer Widom is universitair docent computerwetenschappen en elektrotechniek aan de Stanford University, en een actieve deelnemer aan onderzoek op het gebied van heterogene en semi-gestructureerde databases (DB), methoden voor gegevensopslag en actieve databasesystemen.

Jeffrey D. Ullman is een professor aan de Stanford University en een van de grondleggers van de databasetheorie. Hij trad op als de wetenschappelijke supervisor van een hele generatie afgestudeerde studenten die later de leidende onderzoekers van databasetheorie werden. Zijn leerboeken over compilers, rekentheorie en databases worden beschouwd als de educatieve standaard.

Het boek "Basics of Relational Databases" zal nuttig zijn voor iedereen die databases bestudeert. Het onderzoekt de SQL2-, SQL3-, ODMG-, ODL / OQL-standaarden, de traditionele databaseontwerpmethode en analyseert vele aspecten van SQL-programmering.

De problemen van aangepaste weergaven, integriteitsbeperkingen, triggers, transacties, informatiebeveiliging en recursie in SQL3 worden uitgelegd in een toegankelijke taal.

Boek: JQuery. Een uitgebreide gids voor geavanceerde JavaScript "
Auteurs: Beer Beebo, Yehuda Katz

Beer Beebo is een webontwikkelaar met meer dan 30 jaar programmeerervaring. Co-auteur van jQuery in Action, Ajax in Practice, Ajax: Prototype en Scriptaculous Libraries in Action.

Yehuda Katz heeft websites ontworpen voor The New York Times, Allure Magazine, Architectural Digest, Yoga Journal. Lid van het jQuery-projectkernteam, bijgedragen aan de ontwikkeling van Merb (een alternatief voor Ruby on Rails).

JQuery. A Comprehensive Guide to Advanced JavaScript "is een echt diepgaande referentiegids voor het webontwikkelingsplatform dat beschrijft hoe HTML-documenten kunnen worden gecrawld, gebeurtenissen kunnen worden afgehandeld, Ajax-ondersteuning aan uw webpagina's kan worden toegevoegd, animaties kunnen worden afgespeeld en kunnen worden gebruikt met andere tools, platforms en methoden. voor het maken van plug-ins voor jQuery. Het boek is bedoeld voor wie al bekend is met JavaScript en Ajax.

Boek: "Python leren"

Als je ook maar een beetje weet wat Python is, dan is Mark Lutz je bekend. Hij is een van 's werelds toonaangevende Python-experts, de auteur van de vroegste en meest populaire publicaties. Lutz gebruikt en populariseert Python al meer dan 20 jaar, waarbij hij het grootste deel van zijn tijd besteedt aan het onderwijzen en schrijven van boeken over de taal.

De vierde editie van "Learning Python" bevat de basistypen objecten in de taal, hoe u ze kunt maken en ermee kunt werken, en bevat ook methoden voor het werken met modules en aanvullende objectgeoriënteerde tools - klassen. Biedt beschrijvingen van de modellen en instructies voor het afhandelen van uitzonderingen, en geeft een overzicht van de ontwikkelingstools.

Aanvullende materialen:

  • Learn Python the Hard Way 3rd Edition bevat goede cursussen om aan de slag te gaan met Python: http://learnpythonthehardway.org/.
  • Ben je nieuw in Django of programmeren? Alles wat je moet weten over Django: http://www.djbook.ru/rel1.7/
  • Een tutorial over het maken van sites voor beginners, met eenvoudig en gemakkelijk te leren materiaal: www.htmlbook.ru.

Algoritmen en gegevensstructuren

Boek: "Computertechnologie. Introductie van de stichting. deel I "

Deel I van de vierdelige editie van de vooraanstaande Duitse wetenschapper Manfred Boy, winnaar van de Leibniz-prijs voor informatica, is gewijd aan de basisconcepten van informatie en verschillende vormen van de verwerking ervan. Manfred geeft een gedetailleerde uitleg van algoritmen (inclusief hun classificatie, beschrijving en uitvoering), programmeertechnieken, machinegeoriënteerde taalelementen. Het boek bevat uitgebreide uitleg over de presentatie en verwerking van informatie.

Boek: "Algebraïsche algoritmen. Met oefeningen en oplossingen"
Auteurs: Claude Kitte, Patrice Noden

Twee Franse wiskundigen geven in een boek vol formules antwoord op de vraag "wat kan en hoe worden berekend?" De auteurs noemen "The Art of Programming" (waar we het zeker nog over hebben) als belangrijkste inspiratiebron. De overeenkomsten tussen hen zijn zeker zichtbaar.
Het boek is een aanrader voor iedereen die computeralgebra toepast en bestudeert. Het is moeilijk om het meest uitgebreide boek over het berekenen van wiskundige objecten te vinden.

Boek: "Algoritmen en datastructuren"

Over zulke mensen zeggen ze meestal: ze behoeven geen introductie. We zullen niettemin kort opmerken dat Niklaus Wirth een wetenschapper, ingenieur, Turing Prize-laureaat is, een van 's werelds beroemdste programmeertaaltheoretici, de schepper van de Pascal, Modula-2, Oberon-talen.

Wir's boeken over gestructureerd programmeren in het onderwijs worden als een verplichte norm beschouwd.

"Algorithms and Data Structures" is een desktophandleiding voor programmeurs, die de noodzakelijke minimale kennis van algoritmen geeft. Het boek beschrijft traditionele onderwerpen van algoritmen als sorteren, zoeken, recursie en dynamische datastructuren.

Boek: "Datastructuren en algoritmen"
Door Alfred W. Aho, John E. Hopcroft, Jeffrey D. Ullman

Alfred Aho is een Canadese computerwetenschapper, een van de makers van de geïnterpreteerde C-achtige scripttaal AWK, auteur en co-auteur van talrijke publicaties en boeken over verschillende aspecten van informatica.

John Hopcroft is een Amerikaanse wetenschapper, Turing Prize-winnaar, onderzoeker van theoretische aspecten van informatica, in het bijzonder analyse van algoritmen en grafentheorie.

Jeffrey Ullman is een bekende onderzoeker op het gebied van informatietechnologie, een van de auteurs van "klassieke" leerboeken over compilers, rekentheorie en databases.

Zoals je je kunt voorstellen, zou zo'n drietal auteurs alleen een fundamentele studiegids kunnen bieden die de fundamenten van moderne sbehandelt. Het boek vereist geen diepgaande kennis van u - het is voldoende om op zijn minst een programmeertaal op hoog niveau te begrijpen (bijvoorbeeld Pascal).

Boeken:
"Fundamentele algoritmen in C. delen 1-5. Analyse. Data structuren. Sorteren. Zoeken. Grafiekalgoritmen "
"Algoritmen in C ++"

Een diepgaande studie van de onderliggende concepten van algoritmen werd uitgevoerd door Robert Sedgwick, professor aan de Princeton University, auteur van talrijke wetenschappelijke artikelen en een reeks leerboeken over algoritmen. In "Fundamentele algoritmen in C" wordt het zoeken in digraphs, non-digraphs en netwerken, de constructie van minimaal opspannende bomen en kortste paden, en de berekening van stromen in netwerken met verschillende kenmerken in detail besproken. Er wordt veel aandacht besteed aan de prestaties van de algoritmen en hun wiskundige afleiding.

"Algoritmen in C ++" is zowel een voortzetting als een heroverweging van de beschrijving van algoritmen en datastructuren, dit keer gedaan in C ++, hoewel de gegeven informatie fundamenteel is en van toepassing is op programmeren in elke taal. Er zijn nieuwe algoritmen, illustraties, commentaren, enz. aan het boek toegevoegd.

Boek: "Datastructuren en algoritmen in Java"

Robert LaForet schrijft al 30 jaar programmeerboeken. Door zijn boeken hebben talloze programmeurs zich objectgeoriënteerde programmeertechnologieën eigen gemaakt.
Het boek "Data Structures and Algorithms in Java" is gewijd aan de basisprincipes van het gebruik van algoritmen, met voorbeelden uitgevoerd in Java, hoewel kennis van een programmeertaal voldoende is om te leren. Het boek behandelt in detail onderwerpen zoals sorteren, abstracte datatypes, gelinkte lijsten, recursie, boomdatastructuren, hashing, piramides, grafieken.

Boek: Discrete analyse

Joseph Romanovsky is een zeldzame vertegenwoordiger van Russische auteurs in onze selectie. Professor van het Department of Operations Research, St. Petersburg State University, de auteur van een aantal effectieve algoritmen voor het oplossen van optimalisatieproblemen, waaronder de computerimplementatie van deze algoritmen, schreef populaire collegecursussen over optimaal programmeren en computerprogrammeren van optimalisatiealgoritmen.

De handleiding "Discrete analyse" is geschreven op basis van het materiaal van de hoorcolleges van Joseph Romanovsky. Het richt zich op de relatie tussen de concepten van discrete analyse die voorkomen in verschillende takken van wiskunde en moderne informatica.

Boek: “Concrete wiskunde. Oprichting van Informatica "
Auteurs: Ronald Graham, Donald Erwin Knuth, Oren Patashnik

Bijna een "catechetisch document" over algoritmen, waarin de wiskundige grondslagen van de analyse van algoritmen worden onderzocht. De titel "Concrete Mathematics" bevat een woordspeling: CONTINUAL en DISCRETE. Het boek presenteert materiaal over het werken met discrete objecten, vergelijkbaar met traditionele methoden van wiskundige analyse.

Het boek bevat meer dan 500 oefeningen van verschillende moeilijkheidsgraden, gepresenteerd in een informele stijl en vergezeld van "aantekeningen in de kantlijn" van de eerste redacteuren van het boek - studenten van Stanford. We raden het iedereen aan die discrete wiskunde en informatica leert en toepast.

Boek: “Algoritmen. Constructie en Analyse "
Door Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein

Clifford Stein is hoogleraar informatica.

Ronald Lynn Rivest is een cryptograaf, auteur van symmetrische encryptie-algoritmen RC2, RC4, RC, een van de auteurs van het RSA-algoritme.

Charles Eric Leiserson is een professor aan het Massachusetts Institute of Technology, gespecialiseerd in de theorie van parallel, gedistribueerd computergebruik en de praktische toepassingen ervan.

Thomas Cormen is een professor en doceert aan Dartmouth College en is ook directeur van programmaschrijven bij de instelling.

Het boek "Algoritmen. Constructie en analyse "is een fundamenteel werk op het gebied van algoritmen. Het gebruikt voorbeelden van pseudocode, die begrijpelijk is voor iedereen die op zijn minst een beetje bekend is met programmeren, en uitleg van de werkingsprincipes wordt gegeven zonder buitensporige wiskundige nauwkeurigheid en vereist slechts elementaire kennis.

De eerste editie van dit boek is een standaard naslagwerk voor professionals en een studiegids voor universiteiten geworden. Verdere edities kregen tal van aanvullingen, veel nieuwe oefeningen en opdrachten. De derde editie bevat van Emde Boas Trees en multithreaded algoritmen.

Boek: “De kunst van het programmeren. Deel 1-4 "

Professor Knuth is een van 's werelds meest gerespecteerde en geciteerde auteurs van boeken over programmeren. Hij schreef ook een reeks wereldberoemde boeken over basisalgoritmen en methoden van computationele wiskunde. Donald Knuth heeft talloze prijzen en onderscheidingen ontvangen, en sinds 1996 krijgt hij een onderscheiding in zijn naam - voor zijn bijzondere bijdrage aan de ontwikkeling van de fundamenten van de informatica.

The Art of Programming is een fundamentele monografie over de belangrijkste algoritmen die in de informatica worden gebruikt. Het boek wordt erkend als een van de 12 beste natuurkunde- en wiskundemonografieën van de eeuw.

Het belangrijkste kenmerk van de monografie, die in de loop van 40 jaar tot stand is gekomen, is de uitzonderlijke kwaliteit van het ingediende materiaal, evenals de diepgaande analyse van de problemen die worden overwogen.

Boek: Analytische combinatoriek
Auteurs: Philippe Flajolet, Robert Sedgwick

Philippe Flajolet is een Franse wetenschapper die de theorie van de analytische combinatoriek heeft voorgesteld. De meeste van zijn onderzoekspapers zijn gewijd aan algemene methoden voor het analyseren van de computationele complexiteit van algoritmen.

Het boek "Analytic Combinatorics" is een van de meest recente benaderingen van het probleem van het verschaffen van de mogelijkheid van nauwkeurige kwantitatieve voorspellingen van de eigenschappen van grote combinatorische structuren. De auteurs (waaronder Robert Sedgwick, die we al kennen) geven een volledig boekdeel van de noodzakelijke basiswiskunde, en overwegen ook zorgvuldig zowel klassieke als moderne toepassingen van de theorie van analytische combinatoriek. Het boek bevat illustratieve voorbeelden van toepassingen, oefeningen en notities.

Boek: "Combinatoriek voor programmeurs"

Witold Lipski is een Poolse programmeerspecialist, professor aan de Universiteit van Parijs en doctoraathouder. Het boek "Combinatoriek voor Programmeurs" behandelt een breed scala aan combinatorische en grafiektheoretische algoritmen. De beschrijving van de algoritmen wordt gegeven in Pascal. Presentatiestijl - referentie: probleemstelling, algoritme voor de oplossing, opmerkingen, complexiteit, voorbeelden.

Boek: “Snaren, bomen en sequenties in algoritmen. Informatica en computationele biologie "

Professor Dan Gasfield doceert aan de Davis University, Californië. Zijn interesses omvatten onderzoek naar de efficiëntie van algoritmen met betrekking tot combinatorische optimalisatie. Gasfield is vooral geïnteresseerd in combinatorische problemen die zich voordoen in computationele moleculaire biologie (in het bijzonder bio-informatica en genomica).

Boek "Snaren, bomen en reeksen in algoritmen. Informatica en Computational Biology "zal niet alleen interessant zijn voor diegenen die geïnteresseerd zijn in biologie, maar ook voor iedereen die zelfstandig kennis wil maken met moderne algoritmen voor het verwerken van praktische informatie.

Boek: "Methoden en algoritmen voor berekeningen op strings"

Professor William F. (Bill) heeft geconsulteerd over het gebruik van computertechnologie in het bedrijfsleven en de overheid. Het belangrijkste gebied van zijn onderzoek zijn combinatorische algoritmen.

Het boek "Methods and Algorithms for Computing on Strings" beschrijft fundamentele algoritmen en methoden die patronen in stringreeksen efficiënt berekenen. Deze algoritmen en methoden worden gebruikt op gebieden zoals datacompressie, cryptografie, spraakherkenning, computervisie, computationele geometrie, moleculaire biologie, enz. Het boek bevat meer dan 500 oefeningen om de stof te verduidelijken en uit te breiden.

Boek: "Algoritmische trucs voor programmeurs"

Henry Warren heeft meer dan 40 jaar ervaring bij IBM. Hij heeft gewerkt aan een aantal militaire commando- en controlesystemen en aan het SETL-programmeertaalproject. Sinds 1973 is Warren betrokken bij compilers en computerarchitectuur bij de IBM Research Division.

Het boek Algorithmic Tricks for Programmers bevat veel rekentrucs die zeer nuttig zullen zijn voor bibliotheek- en compilerontwikkelaars, maar ook voor iedereen die snel efficiënte code wil maken. Het boek bevat voorbeelden van het werken met individuele bits, bytes, het berekenen van verschillende integerfuncties.

Boek: "Discrete wiskunde voor programmeurs"

Fedor Aleksandrovich Novikov - Universitair hoofddocent van de afdeling Toegepaste Wiskunde van de St. Petersburg State Polytechnic University en de afdeling Programming Technologies van de St. Petersburg State University of Information Technologies, Mechanics and Optics. Het leerboek "Discrete Mathematics for Programmers" zet de belangrijkste secties van discrete wiskunde uiteen en beschrijft de belangrijkste algoritmen op discrete datastructuren.

Het boek is goedgekeurd door het Ministerie van Onderwijs en Wetenschappen van de Russische Federatie als een leerboek voor studenten van instellingen voor hoger onderwijs die studeren in de richting van het opleiden van afgestudeerden "Informatica en Computer Engineering".

Boek: "Discrete wiskunde voor een ingenieur"

Oleg Petrovich Kuznetsov - Hoofd van de sector van het Instituut voor Controlewetenschappen van de Russische Academie van Wetenschappen, doctor in de technische wetenschappen. Het boek "Discrete Mathematics for an Engineer" presenteert de basisconcepten van de verzamelingenleer, algemene algebra, logica, grafentheorie, theorie van algoritmen en formele systemen, en theorie van automaten. De publicatie is interessant voor ingenieurs die gespecialiseerd zijn op het gebied van geautomatiseerde besturing en ontwerp, computertechnologie, informatietechnologie en informatieoverdracht.

Geavanceerde C++-programmering

Boek: “Technieken voor objectgericht ontwerpen. Ontwerp patronen "
Door Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides

Erich Gamma is een in Zwitserland gevestigde programmeur en hoofdontwikkelaar van het JUnit Java unit-testraamwerk en de platformonafhankelijke geïntegreerde softwareontwikkelingsomgeving (Eclipse). Gewerkt voor IBM aan een schaalbaar open source platform project voor software ontwikkeling (Jazz).

Programmeur Richard Helm werkte ook voor IBM, het onderzoekscentrum van het bedrijf, dat nieuwe technologieën ontwikkelt.

John Vlissides werkte aan de Stanford University en sinds 1991 bij het IBM Research Center. Hij is de auteur van verschillende boeken, vele artikelen en rapporten over objectgeoriënteerde technologieën, ontwerppatronen en softwaremodellering.

Bekend als de Gang of Four, hebben de auteurs de wereld een elegante oplossing gegeven voor veelvoorkomende OOP-problemen. Het boek bestaat uit twee delen: het eerste vertelt over de mogelijkheden en nadelen van OOP, het tweede deel beschrijft 23 klassieke ontwerppatronen. De voorbeelden in het boek zijn geschreven in de programmeertalen C++ en Smalltalk.

De bende schetst de principes van het gebruik van ontwerppatronen en biedt een catalogus ervan. Het boek demonstreert de rol van patronen in de architectuur van complexe systemen en laat zien hoe de ontwerper met behulp van de patronen in het naslagwerk zijn eigen toepassingen kan ontwikkelen.

Boek: Herstructureren met sjablonen

Joshua Kerievsky heeft Industrial Logic opgericht, maar we kennen hem beter als de auteur van een boek dat de ervaring van een professionele ontwikkelaar in het toepassen van ontwerppatronen verzamelt.

Kerievski leert om zowel ontoereikend als overbodig ontwerp te vermijden, te streven naar een constante analyse van de operabiliteit van de code, om het begrip en onderhoud ervan te vereenvoudigen. Op basis van zowel zijn eigen ervaring als die van anderen, onderzoekt de auteur in detail de verschillende kenmerken van de code die refactoring vereisen, beschrijft welke refactoring het meest geschikt is voor een bepaalde situatie en beschrijft de mechanica ervan. Het boek bevat 27 complexe refactorings.

Kirievsky verwijst naar Fowler's boek Refactoring. Verbetering van de bestaande code ", daarom wordt voor een beter begrip van de manieren om patronen in de architectuur van het programma te introduceren" Refactoring met behulp van sjablonen " aanbevolen om na te lezen. Je hebt geen aanvullende kennis nodig, en hoewel ze allemaal in Java worden gegeven, gebruiken ze geen complexe functies van de taal. Het boek zal nuttig zijn voor zowel programmeurs op gemiddeld niveau als professionals.

Boek: “De C++ programmeertaal. Inleidende cursus "
Auteurs: Stanley B. Lippmann, Josie Lajoye, Barbara Mu

Stanley B. Lippmann werkte met Bjorn Stroustrup bij Bell Lab in de vroege stadia van C++-ontwikkeling. In 2001 werd Stanley Lippman de hoofdarchitect van Visual C++ bij Microsoft. Hij heeft ook gewerkt voor Emergent Game Technologies, NASA, Pixar en 2kQubits.

Josie Lajoye heeft bijgedragen aan de C++ compiler bij IBM Canada en heeft ook de core C++ werkgroep geleid bij ANSI/ISO.

Barbara Mu heeft bijna 30 jaar programmeerervaring. Ze werkte 15 jaar voor AT&T, werkte samen met Björn Stroustrup en leidde een aantal jaren het C++-ontwikkelteam.

Het boek van deze experts beperkt zich duidelijk niet tot de droge ondertitel "introductiecursus", maar is een uitgebreide gids voor het leren van de taal. Het boek behandelt zowel de basisprincipes van de structuur van C++-programma's, inclusief het gebruik van preprocessor-commando's en headerbestanden, als meer complexe constructies (uitzonderingen, klassen, functie- en klassesjablonen, overbelasting van operators, meervoudige overerving, enz.).

Naarmate C ++ evolueert, wordt het boek dienovereenkomstig bijgewerkt. Naast fundamentele concepten biedt de nieuwe versie van het boek de meest effectieve technieken waarmee de lezer zijn eigen programma's kan maken, zelfs voordat hij diepgaand bekend is met de eigenaardigheden van de taal.

Boek: "ST. Zakgids "

Ray Lishner is in de Delphi-gemeenschap vooral bekend als de auteur van Secrets of Delphi 2, Hidden Paths of Delphi 3 en vele artikelen voor tijdschriften zoals Delphi Informant, Dr. Dobb "s Journal". Maar we raden een ander van zijn boeken aan - "STL. Pocket Reference." Dit is echt een verwijzing naar een subset van de C++ Standard Library. Het boek beschrijft de moderne STL-bibliotheek - algoritmen, iterators en containers van de C++ Standard Library, evenals een aantal andere elementen Biedt een korte samenvatting van de functies, klassen en sjablonen waaruit de STL bestaat.

Boek: “Perfecte code. Masterclass"

Steve McConnell is een programmeur, redacteur en expert op het gebied van softwareontwikkeling. Hij heeft tweemaal de Jolt Excellence Award voor Best Software Development Book of the Year ontvangen. Wat zijn invloed op de industrie betreft, wordt hij vergeleken met Bill Gates en Linus Torvalds.

Het bekendste werk van McConnell is Code Perfect. Het boek, dat honderden voorbeelden bevat die de ware kunst van het programmeren illustreren, promoot uitzonderlijk geletterde principes in softwareontwikkeling. De auteur heeft ervaring in commerciële softwareontwikkeling en academisch onderzoek gesynthetiseerd in een methodologie voor het creëren van perfecte code.

Code Perfect is een boek dat elke programmeur gelezen moet hebben. En het is aan te raden om dit meerdere keren te doen.

Boek: “C++ en STL. Referentie gids "
Door David R. Musser, Gilmer J. Durge, Atul Seini

David R. Musser is docent, heeft vanaf het begin met de STL gewerkt: de eerste implementatie van de bibliotheek werd ontwikkeld met zijn directe deelname. Ook heeft hij gewerkt om STL opgenomen te krijgen in de ANSI/ISO C++ standaard.

Gilmer J. Durge, President van Toltec Software Services Inc., heeft uitgebreide ervaring in het ontwikkelen van C++-applicaties, waaronder zeven jaar bij General Electric Corporate R&D.

Atul Seini is de president van Fiorano Software Inc., een fabrikant van high-speed messaging-software ontwikkeld in C++. Hij was de eerste die het commerciële potentieel van de STL zag en bood zijn bedrijf aan de bibliotheek te verkopen nog voordat deze de C++-standaard binnenging.

Het boek “C++ en STL. Reference Guide ”bevat een korte tutorial, gedetailleerde beschrijvingen van elk element van de bibliotheek en een groot aantal voorbeelden. Het boek bevat een uitgebreide beschrijving van iterators, generieke algoritmen, containers, functionele objecten, etc. Het legt ook uit hoe u STL kunt integreren met andere objectgeoriënteerde programmeertechnieken.

Boeken:
"Complexe problemen oplossen in C++"
"Nieuwe uitdagingen in C ++"
"C + programmeerstandaarden"

Herb Sutter is een gevestigde C++ expert. Hij trad in dienst bij Microsoft als Visual C++ .NET Platform Evangelist en bereikte de functie van C++ / CLI Software Architect. Hij was 10 jaar organisator en secretaris van de ISO C++ normeringscommissie. Gedurende vele jaren publiceerde hij regelmatig niet-triviale problemen in C++ in een serie genaamd Guru of the Week. Sutter publiceerde later uitgebreide versies van veel van de problemen in zijn eerste twee boeken, Solving Complex Problems in C++.

We raden drie van zijn boeken tegelijk aan, ontworpen voor een lezer met een vrij diepe kennis van de taal. Moderne ontwerp- en programmeermethoden in C ++ worden beschouwd in de vorm van taken en hun oplossingen. De boeken concentreren zich op jarenlange ervaring in C++-ontwikkeling: specifieke methoden, technieken en idiomen van programmeren worden overwogen, speciale aandacht wordt besteed aan de kwestie van ontwerp, dat maximale betrouwbaarheid, veiligheid, prestaties en onderhoudbaarheid van de software die wordt gemaakt moet garanderen .

Boek: "Algoritmen in C ++"

We hebben hierboven al over Robert Sezhdvik gesproken. Algoritmen in C ++ omvatten fundamentele algoritmen, gegevensstructuren, sorteren en zoeken, en grafiekalgoritmen, die steeds belangrijker worden in een verscheidenheid aan toepassingen, zoals netwerkconnectiviteit, circuitontwerp, grafieken, transactieverwerking en bronvoorziening.

Het boek geeft details over arrays, gekoppelde lijsten, strings, bomen en andere basisgegevensstructuren. De aandacht van de lezer is gericht op abstracte datatypes (ADT), op modulair programmeren, op OOP- en C++-klassen, meer dan 100 algoritmen voor sorteren, selecteren, ADT-implementaties van een prioriteitswachtrij en ADT-implementaties van een symbooltabel (voor zoeken ) zijn gegeven.

Boeken:
"C++ programmeertaal"
"Programmeren. Principes en praktijk van het gebruik van C ++ "

Het is onmogelijk om een ​​verzameling boeken over C++ voor te stellen zonder leerboeken van de auteur van de taal zelf. Bjorn Stroustrup is een legende en de programmeertaal C++ is een van de meest gelezen boeken in zijn vakgebied. De boeken van Stroustrup staan ​​bekend om hun ongeëvenaarde uitmuntendheid in technisch schrijven. Dit is een onvoorwaardelijke canon in termen van taalmogelijkheden.

De eerste editie van het boek "The C++ Programming Language" kwam 29 jaar geleden uit. De tweede werd gepubliceerd in 1991, de derde in 1997. De verbeterde hardcoverversie van de derde editie heette Special Edition en verschilde van de eerdere edities van de derde editie door twee extra bijlagen (Localization and Exception Security en Standard library"), ongeveer 1000 correcties en verduidelijkingen, evenals een bijgewerkte alfabetische index. De vierde editie van het boek, waarin C++ 11 is opgenomen, werd in 2013 uitgebracht.

Als je een C++-programmeur bent, moet je dit boek nu meteen lezen.

Boek: Herstructureren. Bestaande code verbeteren "
Auteurs: Martin Fowler, Kent Beck, John Brant, William Updike, Don Roberts

Programmeur Kent Beck heeft methoden voor softwareontwikkeling ontwikkeld, zoals extreem programmeren en testgestuurde ontwikkeling. Hij is een van de pioniers in de introductie van software-ontwerppatronen, het creëren van een testgestuurde ontwikkelingsmethodologie en het commerciële gebruik van Smalltalk. Samen met Erich Gamma creëerde hij het JUnit-testraamwerk.

William Updike schreef zijn proefschrift over het refactoring van objectgeoriënteerde omgevingen (aan de Universiteit van Illinois), dat als basis diende voor de eerste grote publicatie over het onderwerp.

Het boek "Refactoring. Het verbeteren van bestaande code "spreekt over het refactoringproces, beschrijft de principes van diepgaande studie van de code om deze te verbeteren. Het boek bevat meer dan 70 refactoringtechnieken, die elk de motivatie en techniek van in de praktijk geteste codeconversie beschrijven met voorbeelden in Java.

"Must read" voor alle ontwikkelaars.

Boek: De complete C++-referentie

Schildt is schrijver, wetenschapper en programmeur en was lid van de ANSI-commissie die de C-normen heeft aangenomen en de ISO-commissie die de C++-normen heeft aangenomen. De auteur van de Little C-interpreter is een voorbeeld van een recursieve top-down-parser.

De Complete C++ Reference bevat alle trefwoorden, functies, klassen en eigenschappen van de taal die voldoen aan de ANSI/ISO-standaard. Het omvat alle aspecten van de taal, inclusief de basis ervan - de C-taal.

ALGORITHMEN + GEGEVENSSTRUCTUREN = PROGRAMMA'S

Een monografie van een bekende Zwitserse specialist in systeemprogrammering, bekend bij Sovjetlezers uit de vertaling van zijn boek "Systematic Programming. Inleiding." (Moskou: Mir. 1977). Het bevat een beschrijving en analyse van de belangrijkste algoritmen, methoden voor het construeren van programma's. Het boek kan ook worden gebruikt als een gids voor het gebruik van de Pascal-taal bij problemen met computersoftware.

Voor onderzoekers, docenten, afstudeerders en studenten gespecialiseerd in computersoftware.

Voorwoord door de vertaaleditor

Voorwoord

1. Fundamentele datastructuren

1.1. Invoering

1.2. Typ concept voor gegevens

1.3. Eenvoudige gegevenstypen

1.4. Standaard eenvoudige typen

1.5. Beperkte taxus

1.6. arrays

1.7. Opnamen

1.8. Variantrecords

1.9. Veel

1.10. Arrays, records en sets vertegenwoordigen

1.11. Serieel bestand

Opdrachten

Literatuur

2. Sorteren

2.1. Invoering

2.2. Arrays sorteren

2.3. Opeenvolgende bestanden sorteren

Opdrachten

Literatuur

3. Recursieve algoritmen

3.1. Invoering

3.2. Wanneer recursie niet gebruiken?

3.3. Twee voorbeelden van recursieve programma's

3.4. Backtracking-algoritmen

3.5. Het probleem van de acht koninginnen

3.6 Het probleem van duurzame huwelijken

3.7. Optimaal keuzeprobleem

Opdrachten

Literatuur

4. Dynamische informatiestructuren

4.1. Recursieve gegevenstypen

4.3. Lineaire lijsten

4.4. Boomstructuren

4.5. Sterk vertakte bomen

4.6. Sleuteltransformaties (constellatie)

Opdrachten

Literatuur

5. Taalstructuur en vertalers

5.1. Definitie en structuur van taal

5.2. Analyse van voorstellen

5.3. Een syntactische grafiek maken

5.4. Een parseerprogramma bouwen voor een gegeven

syntaxis

5.5. Een tabelgestuurd grammaticaprogramma bouwen

5.6. Een BNF converteren naar een datastructuur die controle heeft

ontleden

5.7. PL / 0 programmeertaal

5.8. Parseerprogramma voor PL / 0

5.9. Herstellen van syntaxisfouten

5.10. PL / 0-processor

5.11. Teambuilding

Opdrachten

Literatuur

Bijlage A

Veel ASCII-tekens

Bijlage B

Pascal syntaxisdiagrammen

Index van programma's

Wijzer

Index van programma's

1.1. Rekenmachten van twee 30

2.6. Schelp sorteren 89

1.2. Scanner 42

2.7. Zeven 93

1.3. Reëel getal lezen 63

2.8. Heapsort 95

1.4. Echt nummer 65 afdrukken

2.9. Divisie 97

Sorteren

eenvoudig

2.10. Snel sorteren 99

insluitsels 79

2.11. De niet-recursieve versie van de swift

Sorteren

binair

sorteren 100

insluitsels 80

2.12. Het kde element vinden 105

2.3. Sorteren op eenvoudige selectie 82

2.13. Sorteren op eenvoudige samenvoeging

Sorteermethode:

bubbel

2.! 4. Sorteer op natuurlijk

2.5. Sorteerschudder 86

samenvoegen 121

2.15. Gebalanceerd sorteren

4.6. Optimale boomconstructie

fusie 126

zoeken 274

2.16. Meerfasige sortering 138

4.7. Zoeken, opnemen en verwijderen in

2.17. Verdeling van de eerste reeksen

B-boom 290

een piramide gebruiken 145

Gebouw

3.1. Hilbert-bochten 157

Kruis

3.2. Sierpinski Curves 161

gebruik makend van

3.3. De zet van het paard 167

verspreidt 308

3.4. Acht koninginnen (één oplossing)

grammaticaal

syntaxis van voorbeeld 5 334

3.5. Acht koninginnen (alle oplossingen) 174

grammaticaal

3.6. Duurzame huwelijken 180

taal (5.12) 343

3.7. Optimaal monster 184

5.3. Vertaler voor taal (5.13) 345

4.1. Aanbieding 204

5.4. Parseren voor PL / 0

4.2. Topologische sortering 218

Gebouw

ideaal

5.5. Parseren voor PL / 0

evenwichtige boom 227

met foutherstel

4.4. Opname zoeken 236

Gebouw

5.6. Vertaler voor PL / 0 380

kruisverwijzingen 240

Adelson-Velsky 248

Wijzer

Een simpele keuze 81

Adres 44, 48

Wissel eenvoudig 83

Absoluut 374

Piramidaal 90

Basis 374

Splitsen 96

Retour 374

Door natuurlijke samenvloeiing 115

Relatief 374

Samenvoegen van meerfase 137

ALGOL-60 17, 320

Eenvoudige 109

Algoritme voor opname in een B-tree 285

Gebalanceerd N -

In BB-boom 296

reizen 122

In een evenwichtige boom 254

Verwijdering van B-boom 288

Toevoegen aan lijst 200

Evenwichtig hout

De nde faculteit berekenen

Sorteerschudder 85

324 . ontleden

Recursieve algoritmen

Lineaire kijker 203

Retour 9, 168

Vind mediaan 103

Analyse van sorteeralgoritmen 79,

Houtbewerking 233

80, 82, 85, 88, 94, 100, 113

Bouw struiken 300

Balanceren 288

Opnamesoorten

Databanken 58

binair 79

Trommels magnetisch 57

Eenvoudig 78

Slagboom 79, 203, 233

Afnemende stap

BB-tree zie B-tree binair

(schelpsoort) 87

B-boom 282

B-boom binair 295

- - symmetrisch 298 Latijnse letters 24 Buffer 54

Bayer 282, 289, 295, 298

Varianten in records 35 Gewicht boom 264 Tak 223

Retour 9, 168, 325

Voltaire 13

Foutherstel 373 Patenttijd 58 Selectieve wijziging 28 Uitlijning 46 Expressie 17

Index 27

Boomhoogte 220

Gauss 169 Hilbert 156

Boomdiepte 220 Horizontale verdeling 134

Gottlieb 267

Ontleden 10, 328

Downlink 323

- - doelgericht 328 Herkenningsgrafiek 328

- syntactisch 328

- - deterministisch 332 kolommen 19 gegevens 11

Dijkstra 7, 12

Hout 10, 19, 219

AVL-gebalanceerd 248

Binair 223

Gedegenereerde 220

- perfect uitgebalanceerd 226

- lexicografische 238

Optimaal 263

Zoeken 231

- sterk vertakkend 223

Sorteert 91

- 220 . besteld

Fibonacci 249 2-3 ​​​​hout 295

Afhankelijkheidsdiagram 361 Logische disjunctie 23 Magnetische schijven 57 Discriminant type 36 Padlengte 220

Gewogen 261

Externe 220

- - intern 220 Seriële toegang 53

Recht 58

- willekeurig 25 Vooruitkijken 55, 68 Lijstkop 314

Duurzame Huwelijken Probleem 174

- ongeveer acht koninginnen 169

De zet van de ridder 164

- optimale keuze 182

- de mediaan vinden 103

- een schoolrooster maken

Record 8, 31, 48

- met opties 36 Cliploos opnemen 377

Tussenvoegsel 230

Pools 377

Postfix 230

Kunstmatige intelligentie 163 Iteratie 9, 99, 154 Kaart (indexen) 123, 128 Kwantiel 105

Sleutel 76, 303

Sleutelconversie 303 Sleutels met variabele lengte 318

Zweep 77, 86, 134, 144, 264

Ringen 19 Aaneenschakeling 51, 52, 54 Constante 17 Constructor 20

Records 32

Serie 26

Contextafhankelijkheid 322 Conflict 304 Conflictoplossing 304 Logische conjunctie 23 Coördinaten 15, 31, 36

Cartesiaans 15, 36 Boomwortel 220

Plichtfactor 312

- geheugengebruik 46

Hilbert-curve 156

Sierpinski 158

Heesters 299

Landis 248, 249

Magnetisch 108

Blad van hout 220

Lauryn 77 Lukasiewicz 377 McVity 179 McCraith 289

Mantisse 15

Serie 19, 25, 44

Matrix 29 Machine PL / 0 373 Mediaan 101, 103 Metatekens 320

Halveren 28

Bubbel 84

- verspreide tafels 307 Sets joins 40

Kruispunt 40

Verschil 40

Toevoeging 40

- vermenigvuldiging 40 Sets 15, 19, 38 Instelgraad 38

Accessoireset 40

Morris 306

Notatie 52 Overloopgebied 306 Boomdoorgang 229

Optie 37 operator

- aansluitingen 34, 286

Procedures 190

Voorwaardelijk 190

Cyclus 29

Met parameter 190

Met voorwoord 190 Booleaanse bewerkingen 23

Meer dan 54 bestanden

Relatie 40

- conversie 20 I / O-bewerkingen 62 Bediening 17, 18, 19 Beschrijving 17

Bemonstering kwadratisch 307

Lineaire 306

Open adressering 306 Wachtrij 198 Geïnduceerde fouten 373

Geheugen voor programma 373

Operationeel 295

Pascal 8, 11, 16, 19, 62

Buffervariabele 55 Variabelen 17, 23 Lijst opnieuw ordenen 209 Piramide 91

PL / 0 331, 349 PL / 1 20

Subboom 223 Zoek binair 28 - vermeld 202

Medianen 103

- voor hout met opname van 233

- zelforganiserend op de lijst

Veld 48 Functieveld 36

B-boom bestelling 282

Gedeeltelijk 211

- nummers 15 Volgorde 16, 19, 52 Nakomeling 220 Stapsgewijze verfijning 11, 67, 344 Vervangingsregels 320

Generatoren 320

Grafiek plotten 329

Dummy 132

De regel geen paniek 363

Sierpinsky 158

Aanbiedingen 319

Cijfer 23, 40, 319

Ombouw (types) 24

Beginner 320

Toetsen 303

Leeg 24

Operationele prioriteiten 40

Externe symbolen 363

Opdracht 19, 21, 189

Verlengingen 363

Lege regel probleem 326

Niet-terminal 320

Werkprogramma 373

Klem 320

Tafelaangedreven 328

Gouverneurs 393

Zeven 92

Scanner 40, 341

Kijk één personage vooruit zonder

Fusie 109

retour 323

Bifasisch 115

Pas 109

Natuurlijk 115

Lijst 201

Cascade 149

Werkwijze 190

Multipad 122

Pad buiten 222

Enkele fase 110

Intern 220

Eenvoudige 109

Rang 15, 44

Gebalanceerd 110, 122

Schoolrooster 41

Driebands 109

Zinherkenning 322

Woorden maat 44

Distributie horizontaal 134

Frequentie woordenschat 203

Dynamisch geheugen 51, 193

Geheugenwoord 44

abonnement 303

Willekeurige toegang 25

Herhaald 318

Verschuiving 48, 374

Realisatie 47, 50

Coroutines 144

Commando adresregister 374

Sorteren 9, 74, 77

Ploegen 374

Snel 96

Bovenkanten van stapel 374

Insluitsels 77

Bewerken 67

Binair 80

Recursie 9, 99, 150

Eenvoudig 78

Indirect 151

Externe 75

Rechte 151

Intern 75

SBB-boom 298

Keuze 77

Dynamisch ligament 374

Eenvoudig 81

Segment 57

Arrays 75

Logisch 58

Bellenmethode 84

Fysiek 58

Ruil 83

Eenvoudig 83

Keuzeschakelaar 20, 37

Piramidaal 91

Records 32

Door fusie 109

Serie 26 Serie 115

Meerfasige 128

Maximaal 115

Eenvoudige 109

Dummy 132

Door hout 89

Topologische 211

Verpakking 47, 49

Veerkrachtig 79

Niveau 220

Bestanden 75

Bestand 14, 19, 53

Shella88

Geïndexeerd 58

i-sort 88

Gelaagd 57

Lijst 10, 198

Persoonlijk 14

Bidirectioneel 315

Directe toegang 58

Cyclisch 314

Dummy artikel 79

Vergelijking 19

Floyd 92

Array-sorteermethoden 105

Fibonacci bomen 249

Nummers 131

Stapel 99, 374

Bevestiging 378

Cijferreeks 49

Backus-naurov formulier 320

Huidige 69

Infix 377

Dynamische datastructuren 10

Postfix 377

Ingewikkeld 8, 51

Euler's formule 247

Fundamenteel 8

Functie 17

Boom 219

Ackermann188

Structureringstechnieken 19

Conversies 24

Programmatabellen 56

Plannen 304

Verspreide tafel 307

Bestellingen 75

Plannen 305

Faculteit 150

Tafelgestuurde programma's

Karakteristiek 49

Torens van Hanoi 186

Tucker 266

Hoor 7, 8, 12, 96, 103

Hu 266

Basistype 18

Zwaartepunt 267

Gegevens 17

Ketting 115

Normaal 26

scalair 19

Arabische cijfers 15, 24

Composiet 30

Binair! 5

Standaard 19

Romeins 15

Indexen 26

Reële getallen 15

recursief 314

Complex 31

Vertaler 10, 17, 40, 319

Natuurlijk 150

Uitzending 40

Drijvende komma 15

Verwijderen van hout 241

Faculteit 153

Uit de lijst 200

Doelen met 15

Interne houtknoop 220

Harmonische nummer 83

Speciale 222

Kardinaal 18, 20, 39, 49, 50

Wilson 179

Leesbare ingang 59

Williams 91

Wijzers 10

Schenker sorteren 85

Walker 263

Heuristiek 267 Euler

Dit boek wordt geproduceerd in overeenstemming met uw bestelling met behulp van Print-on-Demand-technologie. In het klassieke leerboek van de Turing-laureaat Niklaus Wirth worden traditionele onderwerpen van algoritmen zorgvuldig uitgewerkt op zorgvuldig geselecteerde voorbeelden - sorteren en zoeken, recursie, dynamische datastructuren. De vertaling naar het Russisch werd opnieuw gedaan, alle redeneringen en programma's werden gecontroleerd en gecorrigeerd, enkele voorbeelden werden in overleg met de auteur herzien om hun logica zoveel mogelijk te verduidelijken. De voorbeeldnotatie is nu Oberon / Component Pascal - de meest perfecte rechte afstammeling van de oude Pascal. Alle programma's zijn getest en werken in de populaire versie van Oberon - het Blackbox-systeem, en zijn beschikbaar in de broncode op de bijgevoegde cd, samen met het systeem zelf en aanvullend materiaal. Het meeste materiaal in het boek is het vereiste minimum aan kennis over algoritmen, niet alleen voor professionele programmeurs, maar ook voor andere specialisten die actief programmeren in hun werk. Het boek kan gebruikt worden als leerhulp...

Uitgever: "DMK Press" (2010)

Biografie

Niklaus Wirth werd geboren op 15 februari 1934 in Winterthur, aan de rand van Zürich (Zwitserland). Ouders - Walter en Hedwig Wirth. Niklaus' vader was een schoolleraar.

Als kind was Niklaus Wirth dol op vliegtuigmodellering en de constructie van raketten, de passie voor elektronica en softwarebesturingssystemen begon met de ontwikkeling van afstandsbedieningen voor modellen. Hij ging naar de faculteit Elektronica van het Zwitserse Federale Instituut voor Technologie (ETH), waar hij in vier jaar tijd een graad in elektrotechniek behaalde. Hij vervolgde zijn studie aan de Laval University (,), waar hij een diploma behaalde. Daarna werd hij uitgenodigd naar (VS), waar hij, onder leiding van professor Husky, zijn proefschrift verdedigde over de Euler-programmeertaal - extensie door middel van de taal.

Wirth's proefschrift werd opgemerkt door de gemeenschap van ontwikkelaars van programmeertalen, en in dezelfde 1963 werd hij uitgenodigd voor de Commissie voor Algol-standaardisatie IFIP (International Federation of Informatics), die een nieuwe standaard ontwikkelde voor de Algol-taal, die later zou worden. Samen met Wirth verdedigde hij in de commissie een lijn over de ontwikkeling van een matig aangepaste versie van Algol, vrij van de tekortkomingen van de oorspronkelijke taal en aangevuld met een minimum aan echt noodzakelijke fondsen. Wirth en Hoare presenteerden aan de commissie de taal Algol-W (W - from Wirth), wat precies zo'n bewerking van Algol was, maar kreeg geen steun. Na voltooiing van het werk van de commissie, werd Wirth een van degenen die Algol-68 bekritiseerden en sprak over het gebrek aan betrouwbaarheid en extreme redundantie. Tegelijkertijd werkte Wir van tot jaren als assistent in,. Samen met Jim Wales ontwikkelde en implementeerde hij de PL/360-taal, bedoeld om op het platform te programmeren - een algol-achtige taal, waarin een aantal systeemafhankelijke features met betrekking tot de IBM/360-architectuur werden geïntroduceerd.

Momenteel is de hele klassieke Wirth-trilogie door zijn studenten vertaald in de taal en kan deze van internet worden gedownload in de vorm

Notities (bewerken)

Links

  • Vertaling van het artikel van N. Virt "Good Ideas: A View from Through the Looking Glass"

Het boek geeft beknopte informatie over moderne binnen- en buitenlandse microcomputers voor individueel gebruik. De basisversies van BASIC, de meest voorkomende programmeertaal voor personal computers (pc's), huishoudelijke micro- en microcomputers (Electroiika-60, Elektronika-, DZ-28, Iskra-226, dialoogcomputercomplexen DVK-1, DVK-2, enz.) worden beschreven. ... De basisprincipes van programmeren in BASIC worden geschetst. De meeste aandacht gaat uit naar de algemene wiskundige, algoritmische en software voor berekeningen op een pc. Het naslagwerk bevat een uitgebreide bibliotheek van toegepaste programma's in BASIC (meer dan 300 programma's), die de implementatie van elementaire numerieke methoden, de berekening van de meeste speciale functies en de oplossing van een aantal praktische problemen op verschillende wetenschapsgebieden en technologie.

Voor ingenieurs, wetenschappelijke en technische werkers en studenten van technische hogescholen.

Djakonov V.P. Naslagwerk over algoritmen en programma's in de BASIC-taal voor personal computers: Handboek. - Moskou. Uitgeverij Wetenschap. Ch. red. phys.-mat. lit., 1989. - 240 p. - ISBN 5-02-014530-0.

Voorwoord
Hoe de gids te gebruiken?
Hoofdstuk 1. De belangrijkste kenmerken en mogelijkheden van personal computers
1.1. Moderne typen personal computers en hun mogelijkheden
1.2. Zakcomputers (zakcomputers)
1.3. Personal computers van de middenklasse (Home Computers)
1.4. Professionele computers en microsystemen voor personal computing
1.5. Randapparatuur van personal computers

Hoofdstuk 2. BASIC - de belangrijkste programmeertaal voor personal computers
2.1. Het alfabet en basisoperators van de BASIC-taal
2.2. Basis taalaanpassingen
2.3. Rekenkundige en algebraïsche bewerkingen, rekenmachinemodus
2.4. Basisprogrammering in BASIC-taal
2.5. Speciale problemen met programmeren in de BASIC-taal
2.6. Vertaling van programma's van de ene versie van de BASIC-taal naar de andere

Hoofdstuk 3. Algoritmen en programma's voor elementaire berekeningen
3.1. Bewerkingen met reële getallen
3.2. Bewerkingen en functies met complexe getallen en variabelen
3.3. Berekening van machtspolynomen en fractionele rationale functies
3.4. Orthogonale veeltermen berekenen
3.5. Matrixbewerkingen
3.6. Berekening van faculteiten en combinatoriek
3.7. Coördinatentransformaties en vectoranalyse

Hoofdstuk 4. Algoritmen en programma's voor de implementatie van numerieke basismethoden
4.1. Systemen van lineaire vergelijkingen oplossen
4.2. Interpolatie en extrapolatie
4.3. Niet-lineaire en transcendente vergelijkingen oplossen
4.4. Systemen van niet-lineaire vergelijkingen oplossen
4.5. Algebraïsche vergelijkingen oplossen met reële en complexe coëfficiënten
4.6. Zoek naar extremen van functies van één en vele variabelen
4.7. Numerieke differentiatie en berekening van gevoeligheidscoëfficiënten
4.8. Berekening van bepaalde integralen
4.9. Berekening van bepaalde integralen van een speciale vorm
§ 4.10. Systemen van differentiaalvergelijkingen oplossen
§ 4.11. Harmonische synthese
§ 4.12. Berekening van eigenwaarden en vectoren van matrices

Hoofdstuk 5. Spectrale, statistische, correlatie- en regressieanalyse
5.1. Spectrale analyse op basis van discrete Fourier-transformatie
§ 5.2. Speciale soorten spectrale analyse
5.3. Statistische analyse en voorbereiding van histogrammen
5.4. Implementatie van de Monte Carlo-methode
5.5. Correlatie analyse
5.6. Regressieanalyse (kleinste kwadraten van functies)
5.7. Experimentgegevens gladmaken

Hoofdstuk 6. Speciale functies berekenen
6.1. Methoden voor het berekenen van speciale functies
6.2. Integrale exponentiële functies
6.3. Integrale sinus en cosinus
6.4. Gammafuncties (inclusief onvolledig)
6.5. Bessel-functies (inclusief gewijzigde)
6.6. Luchtige functies
6.7. Fresnel-integralen
6.8. Elliptische integralen
§ 6.9. Functies van Struve, Unger en Weber
§ 6.10. Hypergeometrische functies
§ 6.11. dilogaritme
§ 6.12. Kelvin-functies
§ 6.13. Debye- en Sievert-functies
§ 6.14. De waarschijnlijkheidsintegraal en gerelateerde functies
§ 6.15. Enkele statistische functies

Hoofdstuk 7. Toegepaste programma's voor technische en economische berekeningen
7.1. Typische elektrische berekeningen
7.2. Berekening van inductieve elementen
7.3. Berekening van capacitieve elementen en condensatoren
7.4. Berekening van transmissielijnen en vertragingen
7.5. Versterker berekening
7.6. Berekening van actieve filters
7.7. Berekening van niet-lineaire en belangrijke elektronische apparaten
§ 7.8. Berekeningen in mechanica en thermodynamica
7.9. Financiële en economische berekeningen

Bijlage 1. Voorbereiding voor het werk van een programmavoorbereidingssysteem op basis van een microcomputer Elektronika-DZ-28
Bijlage 2.

Foutnummers en hun inhoud voor op microcomputers gebaseerde programmavoorbereidingssystemen Elektronika-DZ-28
Bijlage 3. Voorbereiding van PC FX-702P voor werk
Bijlage 4. Foutnummers en hun inhoud voor PC FX-702P
Bijlage 5. Software-implementatie van enkele numerieke methoden van privétoepassing
§ A5.1. Een polynoom uitzetten vanuit zijn echte wortels
§ A5.2. Matrixinversie, determinantenberekening en oplossing van stelsels lineaire vergelijkingen met verschillende vectoren van vrije termen
§ A5.3. Oplossing van een stelsel lineaire vergelijkingen door de reflectiemethode
§ A5.4. Een stelsel lineaire vergelijkingen oplossen met de methode van eenvoudige iteraties
§ A5.5. Oplossing van een stelsel lineaire vergelijkingen volgens de Seidel-methode
§ A5.6. Een stelsel lineaire vergelijkingen oplossen met een overbepaalde matrix
§ A5.7. Geschatte berekening van de normale oplossing van een stelsel lineaire vergelijkingen met een gedegenereerde matrix
§ A5.8. Een systeem van niet-lineaire vergelijkingen oplossen met de methode van eenvoudige iteraties
§ A5.9. Berekening van het responsspectrum van een niet-lineair systeem met een analytisch gespecificeerde overdrachtskarakteristiek naar harmonische actie
§ A5.10. Regressie voor 16 soorten gepaarde afhankelijkheden y (x)
§ A5.11. Spline fit, interpolatie en extrapolatie
§ A5.12. Matrix-operatorsoftwarepakket
§ A5.13. Benadering van functies volgens Chebyshev
Bibliografie
Onderwerpindex

VOORWOORD

Vooruitgang in de economie, industrie, wetenschap en technologie, op het gebied van onderwijs, hangt nu grotendeels af van de massale introductie van computertechnologie. Het is geen toeval dat de taak om de 'computergeletterdheid' van de bevolking te vergroten een staats- en politieke taak is geworden. De oplossing is mogelijk dankzij de intensieve ontwikkeling van een nieuwe generatie computerfaciliteiten - microcomputers voor individueel gebruik of personal computers (PC).

Nu al zijn in ons land vele tienduizenden van dergelijke computers in gebruik - van huishoudelijke desktopcomputermicrosystemen voor individueel gebruik (gebaseerd op een microcomputer Electronics-60, Electronics-DZ-28, Electronics-TZ-59, Iskra-226 , enz.) en dialoogcomputersystemen (DVK-1, DVK-2, DVK-3) tot buitenlandse zakcomputers (Pocket Computers FX-702P, PC-1211, RS-1500, enz.). De productie van goedkope en in massa geproduceerde thuiscomputers (Home Computers) zoals Agat, Elektronica-BK-0010, etc. wordt beheerst.

Tot nu toe wordt echter zelfs de bestaande vloot van dergelijke computers niet efficiënt genoeg gebruikt. De belangrijkste reden hiervoor is dat pc-gebruikers meestal niet-professionals zijn op het gebied van informatica en computationele wiskunde. Ze zijn slecht bekend met de werking van computers, talen en de basis van hun programmering, verschillende numerieke methoden. Er is vrijwel geen literatuur waarin al deze kwesties, rekening houdend met de bijzonderheden van het persoonlijk gebruik van een pc, tegelijkertijd aan de orde zouden komen. Veel pc's worden aan gebruikers geleverd met zeer korte (en professionele) beschrijvingen, vaak zonder applicatiebibliotheken. Als gevolg hiervan verandert de pc vaak in een "zwarte doos" op het bureau van de gebruiker, waarvan de mysterieuze mogelijkheden niet worden onthuld.

Het naslagwerk is gericht op de bovengenoemde brede categorie pc-gebruikers. Bij de voorbereiding werd rekening gehouden met de specificiteit van het huidige stadium van het gebruik van personal computers in de USSR, dat wil zeggen, het gebruik van personal computers voornamelijk voor het automatiseren van de oplossing van routinematige wetenschappelijke, technische, statistische en economische problemen. Daarom besteedt het, naast het beperkte volume van het naslagwerk, weinig aandacht aan speltaken, het gebruik van een pc in het dagelijks leven en de oplossing van complexe informatieproblemen (grafiekverwerking, tekstbewerking, enz.) . De beschrijving van dergelijke toepassingen zou onderwerp moeten zijn van vakliteratuur.

Qua constructie is het handboek vergelijkbaar met het eerder gepubliceerde boek van de auteur dat gewijd is aan berekeningen op programmeerbare microcalculators (PMC). Bovendien is een aanzienlijk deel van de testgevallen behouden gebleven. Dit zal het volgens de auteur gemakkelijker maken voor de massale categorie PMK-gebruikers om een ​​nieuwe, veel krachtigere computertechnologie onder de knie te krijgen - een personal computer.

Het naslagwerk beschrijft in het kort de belangrijkste soorten binnenlandse en buitenlandse pc's, hun randapparatuur en de belangrijkste programmeertaal - BASIC. Een aantal typische versies van BASIC worden beschouwd, van eenvoudige tot uitgebreide, met opdrachten voor het verwerken van symbolische variabelen, indirecte adressering en plotten. De basisprincipes van programmeren in BASIC en het vertalen van programma's van de ene versie van BASIC naar de andere worden gegeven.

De belangrijkste aandacht in het naslagwerk gaat uit naar de beschrijving van de algemeen toegepaste wiskundige, algoritmische en computersoftware, primair bedoeld voor wetenschappelijke, technische en statistische berekeningen. In vergelijking daarmee is de beschrijving van algoritmen aanzienlijk uitgebreid en is de complexiteit van de op te lossen taken toegenomen. Zo beschrijft het naslagwerk universele programma's voor het oplossen van stelsels van lineaire en differentiaalvergelijkingen (inclusief die met automatische selectie van de integratiestap), numerieke integratie met een bepaalde nauwkeurigheid, het berekenen van alle wortels van veeltermen met reële en complexe coëfficiënten, enz. speciale functies . Het laatste hoofdstuk geeft een aantal toepassingen voor het oplossen van problemen op een aantal specifieke gebieden van wetenschap en technologie. Natuurlijk putten deze programma's niet de hele reeks van dergelijke problemen uit. Wanneer ze alle mogelijkheden van personal computers gebruiken, kunnen ze complexe wetenschappelijke en technische problemen oplossen, tot aan het ontwerp van ruimtevaartuigen toe.

Het naslagwerk is bedoeld voor wetenschappelijke en technische werkers, ingenieurs, technici en studenten van universiteiten en technische scholen. Aangezien dit de eerste keer is dat een dergelijk referentiehandboek is opgesteld, is de auteur zich ervan bewust dat het boek niet zonder tekortkomingen is, en zal hij graag advies en opmerkingen over de inhoud aannemen. De auteur betuigt diepe dankbaarheid aan de recensent, doctor in de technische wetenschappen, professor S. V. Cheremnykh, kandidaat voor technische wetenschappen, universitair hoofddocent T. A. Samoilova, T. A. Kalayeva en alle collega's die de auteur hebben geholpen bij het opstellen van de programma's en manuscripten. Suggesties voor het boek moeten worden gestuurd naar het adres: 117071 Moskou B-71, Leninsky Prospect, 15. De belangrijkste redactie van fysieke en wiskundige literatuur van de Nauka Publishing House.

V.P.Dyakonov

Een boek downloaden Dyakonov V.P. Handboek van algoritmen en programma's in de BASIC-taal voor personal computers. Uitgeverij "Science", Moskou, 1989