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)
BiografieNiklaus 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
|
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