Языки программирования
Первоначально появились программы, переводящие символические имена в машинные коды. Затем были созданы программы, транслирующие арифметические выражения и, наконец, в 1958 году появился транслятор Фортрана — первого широко используемого языка программирования. С тех пор было создано множество языков программирования.
Как и естественные языки, языки программирования имеют свой алфавит, синтаксис и семантику (смысловое содержание). В зависимости от уровня абстракции понятий, которыми оперируют языки программирования, их принято подразделять на языки низкого и высокого уровня.
Существует два основных вида трансляторов языков высокого уровня: интерпретаторы, которые сканируют и проверяют исходный код в один шаг, и компиляторы, которые сканируют исходный код для производства текста программы на машинном языке, которая затем выполняется отдельно.
Интерпретаторы исполняют алгоритм медленнее, однако позволяют программисту контролировать ход исполнения программы, облегчают отладку и предоставляют разработчику ряд уникальных возможностей;
Фортран
Язык Фортран был разработан фирмой IBM. Профессор Дж. Букс и группа американских специалистов в области программирования в 1954 году опубликовали первое сообщение о языке. Дословно название языка FORmula TRANslator — преобразование формул.
Фортран в 60-70-е годы являлся одним из самых распространенных языков в мире. Он имеет простую структуру, программа на Фортране записывается в последовательности предложений или операторов (описание некоего преобразования информации) и оформляется по определенным стандартам. Эти стандарты накладывают ограничения, в частности, на форму записи и расположения частей оператора в строке бланка для записи операторов. Программа, записанная на Фортране, представляет собой один или несколько сегментов (подпрограмм) из операторов. Сегмент, управляющий работой всей программы в целом, называется основной программой.
Фортран был задуман для использования в сфере научных и инженерно-технических вычислений. Однако на этом языке легко описываются задачи с разветвленной логикой (моделирование производственных процессов, решение игровых ситуаций и т. д.), некоторые экономические задачи и особенно задачи редактирования (составление таблиц, сводок, ведомостей и т. д.).
Бейсик
Бейсик является сокращением от «Beginner’s All-purpose Symbolic Instruction Code» (BASIC) — Многоцелевой Символический Обучающий Код для Начинающих.
Бейсик значительно легче в изучении, чем другие языки, с ним легко работать, программы на нем пишутся обычно быстрее, чем на других языках программирования высокого уровня. Долгое время Бейсик был встроен в ПЗУ персональных компьютеров.
Бейсик считается деловым языком, снабженным мощными средствами решения специфических задач, которые обычно большинство пользователей решают при помощи небольших компьютеров, а именно: работая с файлами и выводя текстовое и графическое изображение на экране дисплея.
Исторически Бейсик обычно реализовался как интерпретатор. Однако сейчас существует множество реализаций Бейсика, использующих методы компиляции и псевдо компиляции.
Версия Бейсика от компании Microsoft — Visual Basic — является самым распространенным средством программирования в мире. Его пользуются более 20 миллионов программистов.
Язык Си — универсальный язык программирования, для которого характерны экономичность выражения, современный поток управления и структуры данных, богатый набор операторов. Язык Си не является языком «очень высокого уровня» и не предназначается для некоторой специальной области применения. Отсутствие ограничений и универсальность языка делают его более удобным и эффективным для многих задач, чем языки, предположительно более мощные.
Язык Си, первоначально предназначавшийся для написания операционной системы UNIX на ЭВМ DEC PDP-11, был разработан и реализован на этой системе Деннисом Ричи. Операционная система, компилятор с языка Си и все прикладные программы системы UNIX написаны на Си. Большинство системного программного обеспечения современных компьютеров разрабатывается на Си и его разновидности Си++.
Паскаль
Язык Паскаль был создан Никлаусом Виртом в конце 60-х годов и назван в честь французского математика Блеза Паскаля. Паскаль по сравнению с другими языками программирования имеет упрощенный синтаксис. Однако Паскаль наиболее близок к идеальному алгоритмическому процедурному языку. Этот язык полностью реализует принципы структурного программирования.
Реализация Паскаля под названием Object Pascal и среда программирования Delphi являются одной из самых популярных систем программирования в мире.
Введение в программирование
Тип урока: Изучение и закрепление новых знаний
Продолжительность занятия: 2 урока.
Цель: Познакомить учащихся с первоначальными данными нужными для разработки программ – языками программирования Паскаль, Бейсик, алгоритмический язык.
Задачи:
Методы обучения: объяснительно-иллюстративный, исследовательский, практический.
Оборудование и программное обеспечение:
Раздаточный материал: опорные конспекты в виде таблиц из конспекта урока Приложение.
План урока:
Ход урока
I. Организационный момент
Доклад дежурных. Приветствие учителя.
II. Актуализация начальных знаний учащихся.
Под системой программирования следует понимать систему, образуемую языком программирования, а также вспомогательными средствами для подготовки программ в форме, пригодной для выполнения. Система программирования, иногда говорят «среда программирования», позволяет создавать тексты программ, компилировать их, находить ошибки и оперативно исправлять их, отлаживать и исполнять программу.
Языки программирования являются искусственными языками со строго определенным синтаксисом и семантикой, поэтому они не допускают свободного толкования инструкций, характерного для естественного языка.
III. Изучение нового материала.
Запишите в тему урока «Введение в программирование».
Алгоритмом называется понятное и точное предписание (указание) исполнителю совершить определенную последовательность действий для достижения поставленной цели для решения поставленной задачи.
Алгоритмы можно записать разыми способами. Нас будет интересовать самый трудный – на языке программирования.
Давайте рассмотрим 3 языка программирования:
Вы можете спросить, почему три языка, а не один? Дело в том, что в вариантах ЕГЭ по информатике встречаются задачи на программирование. Решение задач можно оформлять на любом языке программирования, в том числе и в виде блок-схемы. Какой язык выбрать, дело пользователя, поэтому я постараюсь кратко изложить особенности трех языков.
Алфавит языка
Язык программирования, как другой язык имеет свой алфавит – набор символов.
Математические операции:
Элементарные функции:
| Название операции | Форма записи | ||
| Школьный алгоритмический | Бейсик | Паскаль | |
| Абсолютноезначение х | Abs(x) | Abs(x) | Abs(x) |
| Ln x | Log(x) | Log(x) | Ln(x) |
| Arctg x | Atn(x) | Arctan9x) | |
| Случайное число | Rnd | random(x) | |
| Cos x | Cos(x) | Cos(x) | Cos(x) |
| Знак числа х | Sgn(x) | ||
| ex | Exp(x) | Exp(x) | Exp(x) |
| Sin x | Sin(x) | Sin(x) | Sin(x) |
| Целая часть числа х | Int(x) | int(x) | |
| tg x | Tan(x) | — | |
| Целая часть числа х округление | Fix(x) | round(x) | |
| Квадратный корень от х | Sqr(x) | Sqr(x) | Sqrt(x) |
| Квадрат числа | Нет | Нет | Sqr(x) |
| Деление нацело | \ | DIV | |
| Остаток от деления | Mod (a,b) | a MOD b | a MOD b |
Приоритет операций тот же, что и в математике.
Структура программы
| Школьный алгоритмический | Бейсик | Паскаль |
| алг – название алгоритма (аргументы и результаты) дано – условие применимости алгоритма надо – цель выполнения алгоритма нач – описание последовательности команд кон | DIM описание переменных; <начало раздела операторов> Операторы ввода, вывода, присвоения, арифметические операции, Операции ветвления, цикл аEND. | PROGRAM ; VAR – описание переменных; <начало раздела операторов> BEGIN операторы ввода, вывода иобработки данных END. |
Переменная – это параметр программы, значение которой может изменяться в процессе выполнения программы. Переменная характеризуется тремя параметрами:
В языке программирования любая переменная или константа должна быть отнесена к определенному типу.
Элементарные функции:
Основные операторы, нужные для построения линейных алгоритмов
| Название оператора | Форма записи | ||
| Школьный алгоритмический | Бейсик | Паскаль | |
| Присвоение (присваивание) | := | = | := |
| Ввод | ввод | INPUT | READLN READ |
| Вывод | вывод | WRITELN WRITE | |
Урок 2
IV. Создание проблемной ситуации. Закрепление знаний.
Учащиеся делятся на 4 группы. Каждой группе выдаются все 4 задачи.
Задания дифференцированные, задача 1 – слабым учащимся, задача 4 – сильным ученикам.
Задача 1. Рассмотрите запись фрагмента программы на языке Бейсик. Запишите эти команды на языке Паскаль и на алгоритмическом языке. Определите значение целочисленных переменных a и b после выполнения фрагмента программы:
| Бейсик | Паскаль | Алгоритмический |
| a=3+2*4 b=(a MOD 10) + 24 a=(b\10) + 1 |
Задача 2. Рассмотрите примеры программ. Простейший алгоритм, запрашивающий имя и затем приветствующий его обладателя.
Школьный АЯ
Turbo Pascal
Basic
Задача 3. Чему будут равны значения переменных a, b, c, x после выполнения алгоритма, если при вводе их значения равны a = 5, b = 10, c = 20:
алг счет
цел a, b, c, x
нач ввод a, b, c
x := a + b + c
a := a * 5
b := a + b
c := 15
b := b * 3
вывод a, b, c, x
кон
Запишите данный алгоритм на языках программирования Бейсик и Паскаль.
V. Проверка и самопроверка. Анализ полученных результатов.
Представители каждой группы учащихся выносят на доску или на экран компьютера решение своего задания. Учащиеся делают выводы, проверяют, оценивают.
VI. Подведение итогов урока. Домашнее задание.
Написать на 3 языках программирования программу алгоритма вычисления площади и периметра квадрата со стороной А.
Литература:
Начало программирования – Pascal или Basic?
Какому языку программирования учиться – Pascal или Basic?
Многие мои знакомые, начинающие эникейщики, или родители, желающие сделать из своего ребёнка программиста, или люди, которые пользуются моими программами, часто спрашивают меня – какому языку программирования Basic или Pascal стоит учиться, на каком легче программировать и какой из них лучше.
Вопрос, конечно, хороший, т.к. высокие цены на коммерческие приложения и монополизм на рынке ИТ требуют большое количество новых профессиональных программистов, которые смогут создавать конкурентные, низкие по стоимости или новые программные продукты.
Ответить на сам вопрос однозначно не получится по той причине, что несмотря на то, что у этих языков общее начало, последние 40 с лишним лет своего существования они развивались по-разному и для разных целей, поэтому выбор языка программирования должен быть не в зависимости от того, на чём легче программировать или какому быстрее научиться, а для каких целей тебе нужен тот или иной язык программирования.
Какому языку программирования научиться легче всего?
На самом деле основы любого языка программирования, даже того же C, может освоить любой человек, который хочет научиться программировать, проблемы возникнут уже при более серьёзном программировании для конкретных задач, поэтому существуют часто такие проекты, у которых модули написаны на разных языках программирования, потому что на одном что-то легче сделать, чем на другом, или же использование конкретного языка программирования вместо других даёт программе выигрыш в производительности.
Если же рассматривать ответ на данный вопрос с точки зрения выбора между Pascal и Basic, то легче всего обучиться Basic, т. к. это достаточно простой язык программирования, возможности программирования в нём ветвящихся алгоритмов ограничены условным оператором, т. к. в нём нет возможности запрограммировать такие страшные для новичка и очень любимые профессионалами сложные циклы с постусловием и предусловием с помощью стандартных операторов, а значит, чем меньше операторов, тем меньше нужно учить, также можно, зная с десяток операторов в нём создавать достаточно качественные приложения
С чего начать изучение языка программирования?
Для начала нужно обладать усидчивостью, внимательностью, аккуратностью и умением понимать написанный текст. У вас должно быть структурированное, последовательное логическое мышление и умение устанавливать причинно-следственную связь. Желание и способность к самообучению.
Когда-то я занимался набором программистов для одного проекта и отметил, что около 80% выпускников кафедр информатики этими качествами не обладают, 10% не обладают способностью к самообучению или логическим мышлением и возможностью выстраивания зависимостей одного процесса от другого.
Если всего этого нет и вы не собираетесь в себе это воспитывать, то программист из вас выйдет никудышный.
Следующим, вам нужно знать основные определения и уяснить, что оператор – это не дядька, который включает станки в цеху, а ключевое слово, означающее какой-либо этап обработки данных.
Также вам нужно иметь представление о том, что такое алгоритмы и знать как их правильно составлять. Многие пренебрегают ими, в итоге у начатого проекта из-за этого могут возникнуть огромные проблемы с воплощением из-за того, что очевидные минусы, которые можно было увидеть на блок-схеме алгоритма, были оставлены без внимания.
Кроме того, сейчас никто не использует Pascal или Basic в чистом виде, т. к. это языки программирования, на которых можно написать так называемые консольные или терминальные приложения, которые выполняются из командной строки Windows и выглядят как первые программы времён DOS, а подобие дружественного пользователю графического интерфейса в них создаётся с помощью псевдографики.
Например, FAR manager, хотя и написан на современном языке программирования для Windows, имеет интерфейс, созданный с помощью псевдографики.
Мы же с вами живём в эру массового объектно-ориентированного программирования, когда у программы должен быть не просто графический интерфейс, а удобный, дружелюбный, красочный функциональный интерфейс, в котором разберётся любой человек и будет рад общению с программой.
С началом эры объектно-ориентированного программирования Pascal трансформировался в две среды программирования для разработки приложений с графическим интерфейсом — Delphi и Lazarus, а Basic в Visual Basic.
Например, Total Commander, аналогичная FAR программа, но имеющая графический интерфейс, созданный с помощью объектно-ориентированного программирования.
Поэтому лучше всего вам сразу начать изучение Pascal или Basic с работы в соответствующих средах объектно-ориентированного программирования, при этом вы научитесь создавать простые консольные приложения и освоите интерфейс среды программирования, что облегчит ваше дальнейшее обучение в создании серьёзных приложений с графическим интерфейсом.
Достаточно ли выучить один язык программирования, чтобы написать хорошую программу?
По хорошему, конечно, лучше знать оба языка и Basic и Pascal.
Учитывайте и то, что хорошей программой может быть и какая-нибудь мелкая простенькая программка, которая делает всего одну, но очень важную функцию и состоит из 10 строчек кода, но при этом она так необходима и удобна в использовании, что все считают её не просто хорошей, а отличной.
Поэтому ответом на этот вопрос может быть — да, но в зависимости от ситуации.
Почему я выбрал Pascal, Delphi и Lazarus?
1. В школе нас учили программировать на Basic, но с тех пор прошла куча времени и я уже ничего не помню, в университете программирования у нас не было, т. к. я не программист по образованию и пришёл в мир компьютеров по воле судьбы, которая подкидывала мне задачи из области ИТ, так вот однажды мне и попалась задача, которая невидимой рукой поставила меня на путь изучения Pascal
2. Однажды мне понадобилось написать программу и я отправился в магазин на поиски учебника по программированию и из нормальных и понятных мне, а самое главное описывающих то, что мне нужно, были только книги по Delphi (новой ветви развития Pascal)
3. На данный момент Pascal и Delphi преподают в школах и существует огромное количество литературы по ним
4. Самые известные народные проекты — мессенджеры QIP и Skype, аудиоплеер AIMP написаны на Delphi
5. Pascal повлиял на развитие многих других языков программирования, таких как C, Java, PHP, что облегчит понимание этих языков, если придётся учить их. С Java и PHP я сталкиваюсь часто, т. к. занимаюсь созданием различных плагинов и сборок движков сайтов.
Конечно, эти пять пунктов не всё, что повлияло на мой выбор, об остальных причинах я расскажу в отдельной статье, но в последнее время я уже начинаю поглядывать в сторону Microsoft Visual Studio и в частности на Visual Basic.
Есть ли смысл изучать Basic?
Несмотря на то, что некоторые, на подобие Эдсгера Дейкстра утверждают, что программирование в Basic и использование оператора GOTO ведёт к деградации личности программиста, что непрестанно повторяют упоротые красноглазые линуксоиды, которые не написали в своей жизни и строчки полезного кода, язык Basic и его реализация от Microsoft Visual Basic является мощной средой разработки при программировании для Windows, а оператор GOTO и способы его применения очень удобны, потому так и тянет использовать его повсюду. При этом у меня возникает вполне оправданный вопрос, почему использование аналогичного оператора go to в Паскале не ведёт к деградации? Потому что пишется через пробел?
За то время, когда Basic превратился в Visual Basic и развивался под опекой Microsoft он совершил большой прогресс в развитии и стал очень эффективным языком. Документация по Visual Basic, которая создаётся Microsoft, очень высокого качества, сторонних же книг по Visual Basic очень мало и качественных среди них немного.
Несколько раз я сталкивался с ситуацией, когда на Delphi было сложно реализовать какой-либо функционал. Реализация требовала покупки или лицензирования каких-либо модулей от сторонних разработчиков, при том, что подобный функционал уже был по умолчанию заложен в Visual Basic. Как думаю, уже некоторые догадались такие проблемы возникали, когда нужно было написать программы, которые тесно интегрируются с Windows и приложениями от Microsoft или используют её API.
Поэтому поверхностно могу ответить так — если программирование для вас больше хобби, и вы не хотите шибко заморачиваться, то Basic для вас отличный выбор, существует огромное количество сайтов, в том числе финансируемых Microsoft, где вы сможете быстро обучиться созданию интересных развлекательных программ и игр.
В тоже время если вы собираетесь программировать для Windows, MS Office и других приложений от Microsoft или системным программированием для Windows, а также в последствии плотно связать свою жизнь с коммерческим программированием для данной ОС и хотите освоить всю Visual Studio от Microsoft, то ваш выбор — это Basic (Visual Basic).

Если вы собираетесь писать бизнес, мультимедия или развлекательные приложения, а также планируете стать мультисистемным программистом и затем изучать PHP, Java, C, то можете выбрать Pascal (Delphi), но готовьтесь к трудностям, финансовым затратам и набирайтесь терпения.
Не бывает плохих языков программирования, а выбор конкретного языка зависит от ваших задач и личных предпочтений, или как фишка ляжет, как это было в моём случае.
Для какой операционной системы перспективнее создавать приложения? Я слышал, что за линукс будущее.
Специфика данного сайта мультисистемна, вы можете прочитать о [моём взаимоотношении с линукс] и его перспективам, а также его самой широкой группе пользователей, именуемой красноглазыми, потому я, как человек, пишущий для обеих систем, отвечу, что перспективно писать для Windows, если вы собираетесь зарабатывать этим на жизнь, написать что-то полезное многим людям и получить за это благодарность или банально получить славу, в линукс нет перспектив – разработка программ для него сложна из-за многочисленных зависимостей – dependency hell, поэтому прежде, чем начать программировать, вам придётся потратить несколько лет на изучение самого линукс, его графических оболочек и различных системных библиотек, и уже потом, если не отпадёт желание, создавать ПО для него.
Каждые шесть месяцев многие системные библиотеки в линукс меняются или переписываются по новому и может получиться так, что вы будете заняты не развитием своего продукта, а поддержанием его функционирования на новых дистрибутивах.
Немаловажен и тот факт, что в некоторых случаях установка среды разработки в линукс превращается в целую эпопею с непредсказуемым концом.
Кроме того, в линукс огромное количество ошибок в компиляторах. Так из-за ошибки в компиляторе gcc, который шёл в комплекте с Ubuntu 8.10, я не смог собирать новые приложения для данного дистрибутива, которые были созданы на версии без ошибки, в итоге пришлось прекратить и развитие моего дистрибутива Jeder Linux Legacy, который был построен на базе Ubuntu 8.10.
Вам ведь не нужен весь этот линуксовый геморрой?
Не забывайте о том, что линукс лицензирован под разными версиями лицензии GPL, которая не даёт никаких преимуществ программисту, а ставит его в невыгодные ему ситуации, об этом я расскажу подробнее позже. Но именно это стало решающим фактором, почему я больше не пишу никаких приложений для Linux и не модифицирую код пакетов, из которых состоит мой дистрибутив.
Поэтому для меня, прочувствовавшего всё на своей шкуре, ответ однозначен – программирование для Windows.
Данной статьёй я начинаю серию материалов по обучению программированию, которые объяснят вам основы программирования, вы научитесь создавать консольные приложения, компьютерные игры и приложения с графическим интерфейсом.
Также будет уделено внимание и другим областям, которые тесно связаны с созданием приложений для Windows.
Так как я пока не силён в программировании на Visual Basic, то начнём с изучения Pascal, Delphi и Lazarus и потихонечку будем подтягивать Visual Basic.
Хорошая статья, жду продолжения серии материалов. 
Самое интересное, что современные версии бейсик – прежде всего VB.NET мало чем уступают таким языкам как Java или C#. Такая же точно, как говорят, «объектно-ориентированная идеология». И оператор безусловного перехода я думаю, применяют там не чаще чем в других языках. Однако тот же Герберт Шилдт говорит о «врождённых недостатках» бейсик, таких как отсутствие структурированности, которые «никогда не будут преодолены». Какая не структурированность? Вместо фигурных скобок – If Then … End If и тому подобное. Другой синтаксис вот и всё. С# правда поддерживает указатели, которые вряд ли активно используются. Некоторые книги даже ошибочно утверждают что указателей в С# нет. Фактически, программа будет иметь ту же структуру, что и аналогичная на C#. При этом C# (как и все С-подобные языки) он восхваляет, а бейсик придаётся анафеме.
ответ jeder
Вот же как. Эх. С другой стороны может и хорошо, мне как раз подарили диск с учебником по VisualBasic.Net от Microsoft. Ещё погоревали, что вот нет по чистому VB, а оно вон как, выходит, что как раз то, что надо.
ответ jeder
Сейчас Delphi переживает не лучшее время, их очень теснит бесплатная Visual Studio Express, кроме того, у нас любят ненавидеть тех, кто успешнее, вот потому и распространяют такие слухи. Хотя мне перспектива иметь кучу Net Framework разных версий в системе тоже не радует, у меня сейчас они стоят от 2.0 до 4.0, есть даже 3.5. и 3.5.SP1, потому что нужны разным программкам, там что ли проблемы с обратной совместимостью в этих фреймворках, что программа требует именно конкретную версию, хотя есть новее или это просто авторы делают жёсткую привязку?
Версии 3.5 и 3.0 – это попросту надстройки над версией 2.0. Когда устанавливается 3.0 или 3.5, то устанавливается и 2.0, если его не было. Net Framework 4.0 не требует более ранних версий. Но с обратной совместимостью плохо: http://msdn.microsoft.com/ru-ru/library/ms171868.aspx. Высокая совместимость… на уровне исходных кодов. Сам как-то проверял. На компьютере был только Net Framework 4.0 – файлы, собранные в 2.0 не запускались. Радует только то, что перекомпилировалось безо всяких проблем.
ответ jeder
Линукс какой-то получается. Вот предупреждали же их, чтобы они на работу бывших опенсорсников не брали
Моё ИМХО.
Начинать нужно с hello world не важно какого языка. А заканчивать написанием простейшего тетриса, змейки, lines’ов и т.д.
Помнится в одной книге по basic было написано:
“На каком бы языке нас не заставляли программировать, но думать мы будем всё равно на BASIC”.
И я был абсолютно согласен с этим утверждением, … пока не перелез на pascal, а затем на Delphi. Сейчас моё мнение поменялось в противоположную сторону
ответ jeder
Написали интересно, но ни с чем согласиться не могу. Через 1-2 статьи как раз будет обсуждение этого моментаТам постараюсь более подробно всё описать.
Я смотрю, что не все мои сообщения появляются. Это глюк сайта?
ответ jeder
Они не прошли модерацию из-за несоответствия FAQ сайта
Они не прошли модерацию из-за несоответствия FAQ сайта
Ого… Что же я такого страшного там написал? Вопрос риторический, более писать не буду, дабы не тратить понапрасну каллории.
ответ jeder
Ок, тогда и разъяснять тоже не буду раз вопрос риторический
Если вы такой мудрый программист, почему экран черного цвета? Просто глаза ломаются пока читаешь… Хорошая статья, но дочитать не смогла, глазам больно от черного экрана(((((
ответ jeder
От чёрного экрана? А как это вы читали статью с выключенным монитором что ли?Не удивительно, что вы не смогли дочитать
![]()
Да. И программист занимается написанием кода, а цвета экрана и прочие рюшечки удел дизайнеров
Да будет вам известно, что офтальмологи рекомендуют на экранах читать как раз белый (или другого яркого цвета текст) на чёрном фоне, чтобы уменьшить вредное воздействие монитора на глаза.
Профессиональные программисты и люди много работающие за ПК как раз выбирают себе чёрное оформление ОС и чёрные обои.
Кроме того, чем чернее картинка на вашем мониторе, тем меньше электричества он потребляет.
Больно бывает глазам как раз от белого экрана, так что вынужден посчитать вас за тролля, либо у вас какие-то проблемы и не только с глазами
Потому советую вам прежде, чем начать программировать, заняться логикой мышления, рекомендую начать с философов древней Греции – лучше с Аристотеля, потом перейти на Евклида и Архимеда





