Π‘Π°ΠΊΠ°Π»Π°Π²Ρ€
Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Ρ‹Π΅ ΠΈ курсовыС Π½Π° Π·Π°ΠΊΠ°Π·

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅. 
Поиск расстояний

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Никто Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° ΡΠ·Ρ‹ΠΊ Π‘++, ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся свободным. Однако сам Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ стандарта языка (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΎΠ²) Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ΅Π½ бСсплатно. Богласно Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°ΠΌ голландской ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ TIOBE, которая спСциализируСтся Π½Π° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π² ΠΌΠ°Π΅ 2015 Π³ΠΎΠ΄Π° Π² Ρ‚Ρ€ΠΎΠΉΠΊΡƒ самых популярных языков программирования вошли Java, Objective-C ΠΈ C++. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅. Поиск расстояний (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΈ++ (Π°Π½Π³Π». C++) — ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ строго Ρ‚ΠΈΠΏΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ язык программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния. ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°Π΄ΠΈΠ³ΠΌΡ‹ программирования: ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½ΡƒΡŽ, ΠΎΠ±ΠΎΠ±Ρ‰Ρ‘Π½Π½ΡƒΡŽ, Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΡƒΡŽ; наибольшСС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ программирования.

НазваниС «Π‘ΠΈ++» происходит ΠΎΡ‚ Π‘ΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ½Π°Ρ€Π½Ρ‹ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ ++ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

Π’ 1990;Ρ… Π³ΠΎΠ΄Π°Ρ… язык стал ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΎ примСняСмых языков программирования ΠΎΠ±Ρ‰Π΅Π³ΠΎ назначСния.

ΠŸΡ€ΠΈ создании Π‘++ ΡΡ‚Ρ€Π΅ΠΌΠΈΠ»ΠΈΡΡŒ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с ΡΠ·Ρ‹ΠΊΠΎΠΌ Π‘ΠΈ. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Π‘ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ исправно Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΈ Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ΠΎΠΌ Π‘++. Π‘++ ΠΈΠΌΠ΅Π΅Ρ‚ синтаксис, основанный Π½Π° ΡΠΈΠ½Ρ‚аксисС Π‘ΠΈ.

Π―Π·Ρ‹ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊ Π² Π½Π°Ρ‡Π°Π»Π΅ 1980;Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° сотрудник Ρ„ΠΈΡ€ΠΌΡ‹ Bell Laboratories Π‘ΡŒΡ‘Ρ€Π½ Бтрауструп ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π» ряд ΡƒΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΡΠ·Ρ‹ΠΊΡƒ Π‘ΠΈ ΠΏΠΎΠ΄ собствСнныС Π½ΡƒΠΆΠ΄Ρ‹. Π”ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ стандартизации язык развивался Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ силами Бтрауструпа Π² ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° Π·Π°ΠΏΡ€ΠΎΡΡ‹ программистского сообщСства. Π’ 1998 Π³ΠΎΠ΄Ρƒ Π±Ρ‹Π» Ρ€Π°Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΉ стандарт языка Π‘++: ISO/IEC 14 882:1998 «Standard for the C++ Programming Language»; послС принятия тСхничСских исправлСний ΠΊ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρƒ Π² 2003 Π³ΠΎΠ΄Ρƒ — Π½Ρ‹Π½Π΅ΡˆΠ½ΡΡ вСрсия этого стандарта — ISO/IEC 14 882:2003.

Бтрауструп Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π°Π΄ «Π‘ΠΈ Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ» Π² 1979 Π³ΠΎΠ΄Ρƒ. ИдСя создания Π½ΠΎΠ²ΠΎΠ³ΠΎ языка Π±Π΅Ρ€Ρ‘Ρ‚ Π½Π°Ρ‡Π°Π»ΠΎ ΠΎΡ‚ ΠΎΠΏΡ‹Ρ‚Π° программирования Бтрауструпа для диссСртации. Он ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ», Ρ‡Ρ‚ΠΎ язык модСлирования Π‘ΠΈΠΌΡƒΠ»Π° (Simula) ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ возмоТности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π±Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ слишком ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя язык BCPL достаточно быстр, Π½ΠΎ ΡΠ»ΠΈΡˆΠΊΠΎΠΌ Π±Π»ΠΈΠ·ΠΎΠΊ ΠΊ ΡΠ·Ρ‹ΠΊΠ°ΠΌ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня ΠΈ Π½Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ большого ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния. Бтрауструп Π½Π°Ρ‡Π°Π» Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Bell Labs Π½Π°Π΄ Π·Π°Π΄Π°Ρ‡Π°ΠΌΠΈ Ρ‚Π΅ΠΎΡ€ΠΈΠΈ ΠΎΡ‡Π΅Ρ€Π΅Π΄Π΅ΠΉ (Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Π΅Π»Π΅Ρ„ΠΎΠ½Π½Ρ‹Ρ… Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²). ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ примСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ языков модСлирования оказались нСэффСктивными. Вспоминая ΠΎΠΏΡ‹Ρ‚ своСй диссСртации, Бтрауструп Ρ€Π΅ΡˆΠΈΠ» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ язык Π‘ΠΈ (ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊ BCPL) возмоТностями, ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠΌΠΈΡΡ Π² ΡΠ·Ρ‹ΠΊΠ΅ Π‘ΠΈΠΌΡƒΠ»Π°. Π―Π·Ρ‹ΠΊ Π‘ΠΈ, Π±ΡƒΠ΄ΡƒΡ‡ΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ языком систСмы UNIX, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Bell, являСтся быстрым, ΠΌΠ½ΠΎΠ³ΠΎΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΠΌΡ‹ΠΌ. Бтрауструп Π΄ΠΎΠ±Π°Π²ΠΈΠ» ΠΊ Π½Π΅ΠΌΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ ΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅, практичСскиС Π·Π°Π΄Π°Ρ‡ΠΈ модСлирования оказались доступными для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ (благодаря использованию Π‘ΠΈΠΌΡƒΠ»Π°-ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… классов) Ρ‚Π°ΠΊ ΠΈ Ρ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ вычислСний (благодаря Π±Ρ‹ΡΡ‚Ρ€ΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΈΡŽ Π‘ΠΈ). Π’ Π½Π°Ρ‡Π°Π»Π΅ Π² Π‘ΠΈ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ классы (с ΠΈΠ½ΠΊΠ°ΠΏΡΡƒΠ»ΡΡ†ΠΈΠ΅ΠΉ), ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄Π½Ρ‹Π΅ классы, строгая ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ‚ΠΈΠΏΠΎΠ², inline-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

ПослС ΠΌΠ½ΠΎΠ³ΠΈΡ… Π»Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ совмСстный ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ANSI-ISO стандартизировал Π‘++ Π² 1998 Π³ΠΎΠ΄Ρƒ (ISO/IEC 14 882:1998 — Π―Π·Ρ‹ΠΊ программирования Π‘++). Π’ Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π»Π΅Ρ‚ послС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π° стандарта ΠΊΠΎΠΌΠΈΡ‚Π΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π» сообщСния ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ°Ρ… ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅ выпустил ΠΈΡΠΏΡ€Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ стандарта Π‘++ Π² 2003 Π³ΠΎΠ΄Ρƒ. Π’ Π½Π°ΡΡ‚оящСС врСмя Π²Ρ‹ΡˆΠ»Π° новая вСрсия стандарта ΠΏΠΎΠ΄ ΠΊΠΎΠ΄ΠΎΠ²Ρ‹ΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ C++.

Никто Π½Π΅ ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° ΡΠ·Ρ‹ΠΊ Π‘++, ΠΎΠ½ ΡΠ²Π»ΡΠ΅Ρ‚ся свободным. Однако сам Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ стандарта языка (Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ Ρ‡Π΅Ρ€Π½ΠΎΠ²ΠΈΠΊΠΎΠ²) Π½Π΅ Π΄ΠΎΡΡ‚ΡƒΠΏΠ΅Π½ бСсплатно. Богласно Ρ€Π΅ΠΉΡ‚ΠΈΠ½Π³Π°ΠΌ голландской ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ TIOBE[1], которая спСциализируСтся Π½Π° ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ качСства ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния, Π² ΠΌΠ°Π΅ 2015 Π³ΠΎΠ΄Π° Π² Ρ‚Ρ€ΠΎΠΉΠΊΡƒ самых популярных языков программирования вошли Java, Objective-C ΠΈ C++. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ наибольшСС количСство ΠΊΠ²Π°Π»ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… программистов ΠΏΠΎ Π²ΡΠ΅ΠΌΡƒ ΠΌΠΈΡ€Ρƒ ΠΈΠ·ΡƒΡ‡Π°ΡŽΡ‚ эти языки.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ