Интерпретатор brainfuck | Python 3 для начинающих и чайников
Сегодня я решил что-нибудь написать на python. Что-нибудь простенькое, но не очень. Решил остановиться на интерпретаторе brainfuck.
Для тех, кто не знает, о чем это я говорю, поясняю: язык brainfuck для хранения данных использует ячейки (по-хорошему бесконечное число ячеек) и состоит всего из восьми команд, поэтому выучить его будет легко.
Вот эти команды:
Команда Brainfuck | Описание команды |
---|---|
> | перейти к следующей ячейке |
< | перейти к предыдущей ячейке |
+ | увеличить значение в текущей ячейке на 1 |
— | уменьшить значение в текущей ячейке на 1 |
. | напечатать значение из текущей ячейки |
, | ввести извне значение и сохранить в текущей ячейке |
[ | если значение текущей ячейки 0, перейти вперёд по тексту программы на ячейку, следующую за соответствующей ] (с учётом вложенности) |
] | если значение текущей ячейки не 0, перейти назад по тексту программы на символ [ (с учётом вложенности) |
Итак, вернемся к интерпретатору. Программный код будем считывать со стандартного ввода (если кто захочет, может переделать на считывание из файла).
Итак, будем считать, что прочитали (с помощью встроенной функции input()), затем обработаем строки, удалив все нежелательные символы.
def parse(code): new = '' for c in code: if c in '><+-.,[]': new += c return new
Или проще:
def parse(code): return ''.join(c for c in code if c in '><+-.,[]')
Далее сопоставим начало и конец каждого цикла (кода, заключенного в []).
def block(code): opened = [] blocks = {} for i in range(len(code)): if code[i] == '[': opened.append(i) elif code[i] == ']': blocks[i] = opened[-1] blocks[opened.pop()] = i return blocks
Функция возвращает словарь {начало:конец и конец:начало} для быстрой навигации по программному коду.
Ну и, собственно, сам интерпретатор:
def run(code): code = parse(code) blocks = block(code) x = i = 0 bf = {0: 0} while i < len(code): sym = code[i] if sym == '>': x += 1 bf. setdefault(x, 0) elif sym == '<': x -= 1 elif sym == '+': bf[x] += 1 elif sym == '-': bf[x] -= 1 elif sym == '.': print(chr(bf[x]), end='') elif sym == ',': bf[x] = int(input('Input: ')) elif sym == '[': if not bf[x]: i = blocks[i] elif sym == ']': if bf[x]: i = blocks[i] i += 1
Как это работает? Сначала обрабатывается код, составляется список циклов. Далее ячейки, которые я реализовал в качестве словаря. Далее, разбор brainfuck-программы.
Если символ ‘>’, то увеличиваем x (номер ячейки) на единицу, и, если ячейки с таким номером в словаре нет, инициализируем нулем (методом setdefault).
Если ‘<‘, то уменьшаем номер ячейки на 1. Так как вообще отрицательные ячейки не разрешены, то и ячейка всегда найдется (если хотите, можете добавить поддержку и отрицательных номеров ячеек). Если символ ‘[‘, то проверяем текущую ячейку, и, если она 0, переходим в конец цикла.
Полный код интерпретатора brainfuck:
def block(code): opened = [] blocks = {} for i in range(len(code)): if code[i] == '[': opened.append(i) elif code[i] == ']': blocks[i] = opened[-1] blocks[opened.pop()] = i return blocks def parse(code): return ''.join(c for c in code if c in '><+-.,[]') def run(code): code = parse(code) x = i = 0 bf = {0: 0} blocks = block(code) l = len(code) while i < l: sym = code[i] if sym == '>': x += 1 bf.setdefault(x, 0) elif sym == '<': x -= 1 elif sym == '+': bf[x] += 1 elif sym == '-': bf[x] -= 1 elif sym == '.': print(chr(bf[x]), end='') elif sym == ',': bf[x] = int(input('Input: ')) elif sym == '[': if not bf[x]: i = blocks[i] elif sym == ']': if bf[x]: i = blocks[i] i += 1 code = input() run(code)
И напоследок, hello world на brainfuck.
++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.>.
Для вставки кода на Python в комментарий заключайте его в теги <pre><code>Ваш код</code></pre>
средства для программирования на Python
Если у вас на компьютере установлен язык программирования (компилятор или интерпретатор), можно писать код даже в Блокноте, а затем исполнять его через консоль. Но это неудобно. Разработчики пользуются редакторами кода или IDE — интегрированными средами разработки. Так называется комплекс программных средств для кодинга: в них можно писать, редактировать, исполнять и отлаживать код.
Мы поговорим о таких средствах для Python. Это популярный язык программирования, который применяется во множестве отраслей: от веба до прикладной математики.
Поэтому инструменты многочисленны и разнообразны.Узнать о нем больше можно в нашей статье Кому и для чего нужен Python?
Итак, существует два вида ПО для кодинга: IDE и редактор кода. Они похожи с первого взгляда, но сильно различаются возможностями.
- Редактор кода — это простая легковесная программа, которая похожа на текстовый редактор, только больше адаптированная под написание кода. Она сохраняет проекты в нужном расширении, подсвечивает синтаксис и автоматически проверяет отступы в коде.
- IDE — более масштабный инструмент, программный комплекс. Помимо редактора в нем есть собственная консоль, инструменты для запуска, тестирования и отладки кода. Через IDE можно создавать крупные проекты, подключать систему контроля версий (Git). Некоторые IDE позволяют устанавливать внутри себя новые фреймворки и библиотеки, не заходя в терминал системы.
Редактор кода — это или самостоятельная программа, или часть IDE. Он выглядит как окно, где можно набрать текст, но более адаптирован под код.
Подсветка синтаксиса. Это означает, что, например, служебные слова будут одного цвета, комментарии — другого, классы будут выделяться другим начертанием и так далее. Это помогает быстрее ориентироваться в коде и находить нужные места. Более того, большинство существующих инструментов используются для нескольких языков программирования, поэтому знают синтаксис не только Python. При создании файла можно выбрать, на какой язык будет ориентироваться подсветка. Также программа может понять это самостоятельно по расширению файла.
Форматирование и установка отступов. Отступы используются практически во всех языках программирования, но в Python они обязательны и являются частью синтаксиса. Редакторы обычно умеют поддерживать и ставить нужные отступы автоматически. Но это только малая часть. Хорошие IDE и редакторы поддерживают более масштабное автоформатирование. например, во многих редакторах есть спеллчекеры — они показывают, если что-то написано неправильно, и обращают внимание пользователя на ошибку. Также есть инструменты, которые автоматически дополняют команды и функции из кода.
Возможность запуска кода. Изначально запуск кода был прерогативой IDE, но в некоторых редакторах есть возможность запуска написанного кода в консоли непосредственно из него. Не нужно выходить из редактора и открывать терминал, все запустится автоматически нажатием соответствующей кнопки в редакторе.
Создание, редактирование и сохранение файлов. Большинство редакторов и практически все IDE могут показывать структуру файлов в папке. Обычно это нужно для проектов, которые включают больше одного файла. Прямо внутри среды можно переключаться между файлами, создавать новые в папках и подпапках, сохранять изменения. Более того, многие приложения поддерживают системы контроля версий вроде Git и дают возможность делать коммиты прямо из среды, причем это умеют не только IDE, но и некоторые редакторы.
Отладка. Это процесс нахождения и исправления ошибок. Чтобы это можно было сделать быстрее, существуют расширенные возможности: пошаговое выполнение кода, остановка исполнения в определенной точке, просмотр содержимого переменных в любой момент времени и многое другое. Все это входит в функционал инструментов отладки.
Кастомизация. Любую IDE и почти любой редактор можно настроить под себя. Это не только цветовая гамма и размеры шрифта, но и расположение окон и кода, панели под рукой, горячие клавиши и многое другое. Некоторые инструменты поддерживают дополнения — сторонние расширения, дополняющие функциональность. Их можно установить в IDE или даже в редактор. Например, браузерные расширения или возможность по-новому редактировать код или дополнять слова.
Читайте также: С чего начать учить Python?
- визуальный редактор для быстрого создания проектов из блоков и отдельных файлов;
- полная синхронизация с системой контроля версий;
- интерактивная консоль;
- дополнительные инструменты для того или иного направления IT;
- множество возможностей для наглядной отладки, тестирования, анализа кода, а также решения различных задач;
- возможность установить фреймворк или библиотеку через интерфейс среды;
- возможность работать с несколькими языками программирования, в том числе одновременно.
Кому-то будет удобнее работать с простым и не занимающим много памяти редактором, а кому-то — с масштабной IDE со множеством дополнительных возможностей.
Отличный вариант как для начинающих, так и для продвинутых программистов. У PyCharm понятный интерфейс, она изначально адаптирована под Python. Ее не придется долго донастраивать, чтобы код просто запустился, — можно установить IDE и сразу начать работать. Среда отлично поддерживает всевозможные дополнения и дает огромный простор действий. Но загружается и работает она все же медленнее, чем средний редактор.
PyCharm существует в платной коммерческой и бесплатной комьюнити-версии. Бесплатной хватает большинству начинающих программистов, а коммерческая нужна в основном компаниям и профессионалам, работающим с большими проектами.
Это бесплатная опенсорсная IDE для Python с важным нюансом: она рассчитана на разработку в сфере Data Science. В ней есть много инструментов и оптимизаций для работы с данными, но для других задач она подходит не так хорошо. Например, Spyder «из коробки» включает пакетный менеджер Anaconda, который используется в анализе данных и машинном обучении. Он хорошо и быстро работает с библиотеками для математики и ML. Кроме того, за него не надо платить, а основные функции IDE в нем есть.
Минус в том, что это специализированный инструмент — разработчикам вне науки о данных и машинного обучения он может показаться недостаточно удобным.
Эта среда по умолчанию поставляется с Python. Она написана на нем, имеет все возможности интегрированной среды разработки, проста и минималистична. С ней можно начать программировать, но для дальнейшей работы, скорее всего, будет удобнее другой, более масштабный инструмент.
Интересный факт: как язык Python был назван в честь комик-группы «Монти Пайтон», так и IDLE назвали в честь одного из участников этой группы — Эрика Айдла.
Еще один вариант для начинающих, простой, но функциональный. Эта IDE уже включает в себя нужную разработчику версию Python и не требует сложных дополнительных настроек. Ее называют Python IDE for beginners — это определение дали среде ее разработчики.
Для начинающих Thonny действительно подойдет: в ней легко разобраться, она бесплатная и понятная. Но для тех, кому нужна расширенная функциональность, ее будет недостаточно.
Существует как минимум две IDE, изначально созданные для других языков, но поддерживающие в данный момент и Python. Такие IDE будут полезны тем, кто работает с несколькими языками одновременно.
Мощная мультиязычная среда от Microsoft. Она гибко настраивается под задачи, включает инструменты для написания кода под множество платформ и направлений. VS поддерживает C/C++, Java, Python, JavaScript и TypeScript и пр. Ей пользуются для веба, для написания приложений под ПК и мобильные устройства, для создания программ под разные операционные системы. В ней есть все, что нужно любому разработчику, а дополнительные модули расширяют функциональность среды под конкретные задачи. В VS есть и инструменты для сборки интерфейсов, и отладка, и ПО для рефакторинга или дополнения слов.
Чтобы работать с Python в Visual Studio, понадобится расширение Python Tools for Visual Studio. Все расширения официальные и бесплатные, их можно скачать с сайта. Для различных конкретных задач существуют разные сборки VS. Есть и продвинутые платные версии среды, но для начинающих и любителей будет достаточно бесплатной Community-версии.
Изначально IDE использовалась для Java, но сейчас она позволяет работать и с Python — для этого понадобится установить расширение PyDev. По функциональности Eclipse сравнима с VS, но, в отличие от нее, опенсорсная и полностью бесплатная, разрабатывается при поддержке сообщества энтузиастов.
Обе среды очень масштабные. Они позволяют одновременно писать код на Python, создавать интерфейс, работать с SQL Server, создавать проекты на нескольких языках программирования и т. д., но у новичков могут вызвать затруднения. Большинство инструментов нужны или профессиональным разработчикам, или тем, кто пользуется не одним языком.
В теории это платный редактор, но на практике необходимость платить выражается только в баннере в интерфейсе — ПО работает и без оплаты. Sublime легкий, удобный и быстрый, подходит для большинства платформ, хорошо поддерживается сообществом. Для него есть множество пакетов, которые позволяют расширять и дополнять поддержку синтаксиса.
Но Sublime Text — только редактор. В отличие от других двух программ из списка, он не умеет запускать и отлаживать код. Это плата за легковесность и возможность быстро работать в любой ОС.
Как и Visual Studio, редактор разработал Microsoft. Но его идея совсем другая — это небольшой и емкий инструмент. Для него существует множество плагинов, написанных разными разработчиками, он полностью бесплатный. Visual Studio Code можно настроить под любой язык — нужно скачать расширения, доступные в маркетплейсе внутри самого редактора.
VS Code не такой легкий, как Sublime Text. Он более функционален, в нем есть инструменты для запуска и отладки и интеграция с системой контроля версий. Но он весит больше и медленнее работает.
VS Code написан на фреймворке Electron. Это инструмент, который позволяет создавать приложения под разные ОС с помощью HTML, CSS и JavaScript. Это удобно, но из-за этого любое Electron-приложение, по сути, работает внутри специального браузера. Оно взаимодействует с системой напрямую, поэтому сильнее нагружает мощности компьютера, чем нативное (которое оптимизировано под конкретную ОС, поэтому может работать корректнее и быстрее).
Как и VS Code, редактор написан на Electron, поэтому имеет те же плюсы и минусы. Плюсы — возможность работать в любой ОС, гибкость и хорошо проработанный интерфейс. Благодаря HTML и CSS с интерфейсом в Electron работать легко. Минусы — сильная нагрузка на мощности из-за встроенного браузера, внутри которого постоянно выполняется JavaScript-код.
Atom не поддерживает отладку и запуск кода «из коробки», для этого понадобится скачивать расширения. Еще одно расширение добавит в Atom поддержку Python. Скачать их можно из специального магазина внутри редактора.
VS Code и Atom функциональные, удобные и бесплатные. Выбирайте по своим предпочтениям.
- Новичкам, которые впервые работают в редакторе кода, можно посоветовать редакторы VS Code либо Atom. Если вам не требуются отладка и запуск, зато важна скорость, неплохим вариантом будет Sublime Text.
- Людям, которые уже работали с IDE и хотят большего, советуем обратить внимание на специализированные инструменты для конкретных задач вроде Spyder. А если нужна универсальная IDE, оптимальный вариант — PyCharm.
- Разработчикам на нескольких языках, которые работают над большими проектами, может подойти VS или Eclipse. Но если хотите что-то попроще и побыстрее, подойдут редакторы Atom и VS Code. Они могут поддерживать ряд языков одновременно, а дополнительные инструменты обеспечивают запуск и отладку.
Тестируйте разные инструменты, смотрите на их возможности и учитесь: так вы сами сможете найти среду для кодинга, которая вам ближе. А мы всегда готовы помочь вам в обучении.
Профессия Fullstack-разработчик на Python Получите навыки программирования, освойте backend на Python и frontend на JavaScript, чтобы стать востребованным специалистом в IT.Посмотреть программу
1 | ЭЛЕМЕНТЫ ПРОГРАММИРОВАНИЯ | ДАННЫЕ | |
---|---|---|---|
1. 1.1 | helloworld.py | Привет, Мир | – |
1.1.2 | useargument.py | с использованием аргумента командной строки | – |
1.2.1 | линейка.py | пример объединения строк | – |
1.2.2 | intops.py | целочисленные операторы | – |
1.2.3 | floatops.py | операторы с плавающей запятой | – |
1.2.4 | квадратичный.py | квадратичная формула | – |
1.2.5 | високосный год.py | високосный год | – |
1.3.1 | флип.py | подбрасывание честной монеты | – |
1. 3.2 | tenhellos.py | твой первый цикл | – |
1.3.3 | powersoftwo.py | вычислительные мощности двух | – |
1.3.4 | делительпаттерн.py | ваши первые вложенные циклы | – |
1.3.5 | гармоника.py | номера гармоник | – |
1.3.6 | sqrt.py | Метод Ньютона | – |
1.3.7 | двоичный.py | преобразование в двоичный код | – |
1.3.8 | игрок.py | симулятор разорения игрока | – |
1.3.9 | factor.py | факторинг целых чисел | – |
1. 4.1 | образец.py | отбор проб без замены | – |
1.4.2 | купонколлектор.py | Моделирование коллектора купонов | – |
1.4.3 | Primesieve.py | сито Эратосфена | – |
1.4.4 | selfavoid.py | самоизбегающих случайных блужданий | – |
1.5.1 | randomseq.py | генерирует случайную последовательность | – |
1.5.2 | двадцать вопросов.py | интерактивный пользовательский ввод | – |
1.5.3 | среднее.py | усреднение потока чисел | – |
1. 5.4 | rangefilter.py | простой фильтр | – |
1.5.5 | plotfilter.py | стандартный ввод для рисования фильтра | usa.txt |
1.5.6 | прыгающий мяч.py | прыгающий мяч | – |
1.5.7 | playthattune.py | цифровая обработка сигналов | elise.txt ascale.txt stairwaytoheaven.txt entertainer.txt firstcut.txt freebird.txt looney.txt |
1.6.1 | переход.py | вычисление матрицы перехода | маленький.txt средний.txt |
1.6.2 | randomsurfer.py | , имитирующий случайного серфера | – |
1.6.3 | марков.py | смешивание цепи Маркова | – |
2 | ФУНКЦИИ | ДАННЫЕ | |
2. 1.1 | гармоникаf.py | номера гармоник (повторно) | – |
2.1.2 | гаусс.py | Функции Гаусса | – |
2.1.3 | купон.py | сборщик купонов (пересмотренный) | – |
2.1.4 | playthattunedeluxe.py | сыграй эту мелодию (повторно) | elise.txt ascale.txt stairwaytoheaven.txt entertainer.txt firstcut.txt freebird.txt looney.txt |
2.2.1 | гауссов.py | Модуль функций Гаусса | – |
2.2.2 | gaussiantable.py | образец клиента Гаусса | – |
2.2.3 | sierpinski.py | Треугольник Серпинского | – |
2. 2.4 | ifs.py | повторяющиеся функциональные системы | |
2.2.5 | bernoulli.py | Испытания Бернулли | – |
2.3.1 | евклид.py | Алгоритм Евклида | – |
2.3.2 | башниsofhanoi.py | башни Ханоя | – |
2.3.3 | beckett.py | Серый код | – |
2.3.4 | htree.py | рекурсивная графика | – |
2.3.5 | коричневый.py | Броуновский мост | – |
2.4.1 | перколяцияv.py | обнаружение вертикальной перколяции | test5. txt test8.txt |
2.4.2 | percolationio.py | функции поддержки перколяции | – |
2.4.3 | visualizev.py | клиент визуализации вертикальной перколяции | – |
2.4.4 | оценкаv.py | оценка вероятности вертикальной перколяции | – |
2.4.5 | percolation.py | обнаружение просачивания | test5.txt test8.txt |
2.4.6 | визуализировать.py | клиент визуализации перколяции | – |
2.4.7 | оценка.py | оценка вероятности просачивания | – |
3 | ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ | ДАННЫЕ | |
3. 1.1 | потенциалгене.py | потенциальная идентификация генов | – |
3.1.2 | chargeclient.py | клиент заряженных частиц | – |
3.1.3 | alberssquares.py | Квадраты Альберса | – |
3.1.4 | яркость.py | библиотека яркости | – |
3.1.5 | оттенки серого.py | преобразование цвета в оттенки серого | mandrill.jpg mandrill.png darwin.jpg darwin.png |
3.1.6 | масштаб.py | масштабирование изображения | mandrill.jpg mandrill.png darwin.jpg darwin.png |
3.1.7 | исчезать.py | эффект затухания | mandrill. jpg mandrill.png darwin.jpg darwin.png |
3.1.8 | потенциал.py | визуализация электрического потенциала | charge.txt |
3.1.9 | кат.py | объединение файлов | in1.txt in2.txt |
3.1.10 | stockquote.py | очистка экрана для котировок акций | – |
3.1.11 | split.py | разделение файла | djia.csv |
3.2.1 | charge.py | тип данных заряженных частиц | – |
3.2.2 | секундомер.py | тип данных секундомера | – |
3.2.3 | гистограмма.py | тип данных гистограммы | – |
3. 2.4 | черепаха.py | тип графических данных черепахи | – |
3.2.5 | koch.py | Кривая Коха | – |
3.2.6 | спираль.py | Спира чудотворная | – |
3.2.7 | пьяный.py | пьяная черепаха | – |
3.2.8 | пьяницы.py | пьяные черепахи | – |
3.2.9 | комплекс.py | тип данных комплексного числа | – |
3.2.10 | mandelbrot.py | Множество Мандельброта | – |
3.2.11 | stockaccount.py | тип данных счета запасов | turing. txt |
3.3.1 | комплексpolar.py | комплексные числа (повторно) | – |
3.3.2 | counter.py | тип данных счетчика | – |
3.3.3 | вектор.py | тип пространственных векторных данных | – |
3.3.4 | скетч.py | тип данных эскиза | genome20.txt |
3.3.5 | comparedocuments.py | обнаружение сходства | document.txt constitution.txt tomsawyer.txt huckfinn.txt prejudice.txt djia.csv amazon.html actg.txt |
3.4.1 | body.py | тип данных гравитационного тела | – |
3. 4.2 | вселенная.py | Симуляция тела | 2body.txt 3body.txt 4body.txt 2bodytiny.txt |
4 | СТРУКТУРЫ ДАННЫХ | ДАННЫЕ | |
4.1.1 | threesum.py | Задача с тремя суммами | 8ints.txt 1kints.txt 2kints.txt 4kints.txt 8kints.txt 16kints.txt 32kints.txt 64kints.txt 128kints.txt |
4.1.2 | удвоение test.py | проверка гипотезы удвоения | – |
4.1.3 | timeops.py | временных операторов и функций | – |
4.1.4 | bigarray.py | обнаружение объема памяти | – |
4.2.1 | вопросов.py | бинарный поиск (20 вопросов) | – |
4. 2.2 | bisection.py | бинарный поиск (инвертирование функции) | – |
4.2.3 | двоичный поиск.py | бинарный поиск (отсортированный массив) | emails.txt белый.txt |
4.2.4 | вставка.py | сортировка вставками | крошечный.txt tomsawyer.txt |
4.2.5 | разсортировка.py | Тест на удвоение функций сортировки | – |
4.2.6 | слияние.py | сортировка слиянием | крошечный.txt tomsawyer.txt |
4.2.7 | частотный счетчик.py | подсчет частоты | leipzig100k.txt leipzig200k.txt leipzig1m.txt |
4.3.1 | arraystack. py | стек (реализация массива изменения размера) | tobe.txt |
4.3.2 | связанный стек.py | Стек(реализация связанного списка) | tobe.txt |
4.3.3 | оценка.py | оценка выражения | выражение1.txt выражение2.txt |
4.3.4 | связанная очередь.py | очередь(реализация связанного списка) | tobe.txt |
4.3.5 | mm1queue.py | Моделирование очереди M/M/1 | – |
4.3.6 | loadbalance.py | моделирование балансировки нагрузки | – |
4.4.1 | lookup.py | поиск по словарю | amino.csv djia. csv elements.csv ip.csv ip-by-country.csv morse.csv phone-na.csv |
4.4.2 | index.py | индексация | mobydick.txt tale.txt |
4.4.3 | hashst.py | тип данных таблицы хэш-символов | – |
4.4.4 | бст.py | Тип данных таблицы символов BST | – |
4.5.1 | граф.py | тип данных графика | тиниграф.txt |
4.5.2 | инвертировать.py | с использованием графика для инвертирования индекса | tinygraph.txt movies.txt |
4.5.3 | разделение.py | клиент кратчайших путей | route.txt movies.txt |
4. 5.4 | pathfinder.py | клиент кратчайших путей | – |
4.5.5 | smallworld.py | тест маленького мира | тиниграф.txt |
4.5.6 | исполнитель.py | исполнитель-исполнитель график | tinymovies.txt moviesg.txt |
Программы Python | CASIO
Калькуляторы
Калькуляторы
- Купить все калькуляторы
- Графические калькуляторы
- Научные калькуляторы
- Поддерживать
- Купить все калькуляторы
- Графические калькуляторы
- Научные калькуляторы
- Поддерживать
ВНИМАТЕЛЬНО ПРОЧИТАЙТЕ:
Загружая и используя эти примеры программ, вы признаете и соглашаетесь с ЛИЦЕНЗИОННЫМ СОГЛАШЕНИЕМ НА ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ и Стандартной общественной лицензией GNU. Если вы не согласны с этими условиями, не загружайте эти примеры программ.
Простая программа с квадратными формулами, которая находит корни любого уравнения с положительным дискриминантом.
Загрузка файла
line2pts.py Введите координаты любых двух точек. Программа выведет наклон, точку пересечения по оси Y и уравнение линии в форме точки пересечения с наклоном.
Загрузка файла
midend.py Учитывая конечную точку и среднюю точку, программа найдет другую конечную точку.
Загрузка файла
gcdlcm.py Найдите наибольший общий делитель и наименьшее общее кратное между любыми двумя числами с помощью итеративного поиска.
Загрузка файла
quadfrm2.py Эта программа найдет любые корни независимо от положительного или отрицательного дискриминанта.
Загрузка файла
midptype.py Эта программа дает пользователю выбор: найти среднюю точку по заданным конечным точкам или вторую конечную точку по заданным конечной точке и средней точке.
Загрузка файла
midpoint.py Найдите среднюю точку между любыми двумя точками на координатной плоскости.
Загрузка файла
primefac.py Эта программа находит все простые множители любого введенного числа, отображая их в виде списка.
Загрузка файла
reiman.py Эта программа представляет собой генератор сумм Реймана. Это даст значение под кривой с использованием левой, правой, средней точки и трапециевидной аппроксимации. Это полезная программа для студентов-первокурсников.
Загрузка файла
collatz.