Введение

Книга третья.

Инженер конструктор отдела гл.механика Гаврилов Сергей Фёдорович написал эту книгу для начинающих программистов, желающих начать программировать на языке Python 3. Книга будет полезна для студентов механиков и для конструкторов механиков. Данная книга содержит листинги – набор небольших рабочих программ облегчающих расчеты встречающиеся в практической работе цехового конструктора. Листинги выполнены как есть, без сокращений, и после копирования готовы к работе. Предлагаемые в книге расчеты существенно экономят время и уменьшают вероятность ошибок. Все программы проверены и постоянно используются в работе конструктора механика. Листинги программ снабжены пояснениями. Листинги удобно использовать в качестве готовых блоков для вновь разрабатываемых программ. Для практического применения листингов программ проверьте – установлен ли на вашем компьютере Python 3.4. или более старшая версия Python 3.8..Python 3.4 распространяется свободно и бесплатно – например на сайте Перед скачиванием исходника Python 3.4 проверьте разрядность вашей ЭВМ. Посмотрите вкладку – Компьютер – Свойства системы. Бывают 32 разрядные и 64 разрядные системы. Для каждой системы свой Python 3.4..

Примечание

Программы написаны для Python 3.4 и более новых версий. На Python 2 программы работать не будут, так как в Python 3.4 написание команд отличается от Python 2.

В программе на любом языке очень важен синтаксис – порядок написания символов в строке.

Малейшая ошибка, которую человек даже не заметит, – ЭВМ замечает и отказывается исполнять программу. Поэтому проще копировать блоки уже работающих программ в свою программу, при необходимости, подправить готовые блоки легче, чем писать блок заново – так будет меньше ошибок в программе и экономится время.

Программа в Python состоит из строк, написанных в простом текстовом редакторе.

Текстовый редактор должен быть именно простым, к примеру Блокнот. Редактор Microsoft Word не годится потому, что он вставляет в строку невидимые служебные символы, которые, искажают команды Python и программа отказывается работать. Если листинг программы вы скачали в формате «.doc » или подобном – следует создать пустой текстовый файл в программе « Блокнот » – выделить и скопировать листинг из файла «.doc » и вставить в пустой текстовый файл « Блокнота » с расширением «.txt » и сохранить его с именем программы. Затем открыть этот файл и сохранить уже с расширением «.py ». Вам будут нужны оба этих файла.

Важно, строки программы должны начинаться без пробела точно с начала строки.

Если в программе имеются логические операторы, например while или for, то за таким оператором следуют строки одного или нескольких блоков. Блоки выполняются программой, или пропускаются без исполнения, в зависимости от условия в логическом операторе.

Блоки отделяются от основной программы пробелами в начале строки. Обычно в начале строки блока ставят четыре пробела. Число пробелов в начале строки – важная величина.

Сама программа начинается со стороки « # -*– coding: cp1251 -*– » и заканчивается строкой « # .... Конец листинга программы ..... ». Копируя листинг в файл .txt – надо копировать только программу, любой текст до тела программы и после тела программы даст сбой в работе.

Если в компьютере Python 3.4 установлен правильно, то при двойном клике мышью на файле с расширением “.py ”. программа начнет исполнятся. Если программа стопорится или вылетает – Запускаем файл редактора программы « IDLE( Python GUI) » в этом редакторе щелкаем левой кнопкой мыши на – File – затем Open. В выпавшем меню находим свой файл, выделяем его – щелкаем – Открыть. На экран выводится листинг вашего файла с выделением цветом элементов команд. Находим колонку – Run- щелкнув – открываем выпадающее меню и щелкаем на – Run Module F5 – Ваша программа начинает выполняться и останавливается на месте ошибки. Иногда она останавливается на следующей за ошибкой команде. Выводится комментарий к ошибке на английском.

В некоторых случаях помогает удаление строки в начале программы

« # -*– coding: cp1251 -*– » и программа заработает. Иногда помогает удалить конфликтную строку и забить ее вновь в текстовом редакторе.

« Программа редактор « IDLE( Python GUI) » идет в комплекте с программой Python 3.4.. и служит для нахождения ошибок в разрабатываемой программе.

При верстке книги к печати « умные программы » что-то убирают, а что-то добавляют, искажая оригинал. Для программы маленькие буквы и большие буквы – это разные буквы, а « умные программы » при верстке в начале строки бывает, что заменяют маленькую букву большой или меняет форму ковычек – программа вылетает.

К примеру при верстке удаляются все « лишние» пробелы. Скопировав листинг программы в «Блокноте» в формате «.txt» необходимо восстановить утраченные пробелы. Перед знаком # расположенным после команды надо добавить два пробела. Строка коментариев после значка # не должна переносится на следующую строку. В блоках- там, где блок выделяется пробелами, перед строками блока будет написана фраза: # Далее Cдвиг – четыре пробела в начале каждой строки. Соответственно в листинг ставим четыре пробела в начало каждой строки. Там, где блок закончился, написано: # Далее Конец Cдвига – четыре пробела в начале каждой строки – и строки начинаются без пробелов в начале строки. Иногда меняется вид ковычек – это тоже не дает работать программе – искать такие ошибки лучше в «IDLE( Python GUI)». Часть програм из книги первой и из книги второй в этой книге повторяются – это программы, часто применяемые в работе.

Написание чисел с дробной десятичной частью

При вводе числа с дробной частью, необходимо отделять дробную часть от целой части числа точкой. Если части числа разделить запятой – программа вылетает без предупреждения.

Величины углов для расчета в программе необходимо задавать в радианах. Если программа в результат расчета выводит величину угла – то он выводится в радианах. Для человека ответ на экран удобнее выводить в градусах – при выводе на экран радианы програмно переводят в градусы. При вводе угловых величин- их обычно вводят в градусах и, перед подачей в расчетную часть программы, переводят програмно в радианы.

Написание комментариев

Значок # предваряет начало комментариев. То, что следует за значком программа просто пропускает, переходя на следующую строку. Комментарий программист пишет себе для справки,чтобы потом ему или другому программисту было легче разобраться в работе программы.

Линейная интерполяция



Линейную интерполяцию применяем для определения значения коэффициента находящегося между двемя табличными значениями.

Листинг программы.

# -*– coding: cp1251 -*-

import math # Подключили математич модуль

# Эти первые две строки листинга определяют таблицу кодировки символов

# и подключают библиотеку для математических расчетов.

# Эти две строки, точно без изменения, применяют во всех листингах программ.

uu=” “ # Далее идет вывод на экран заголовка программы.

print (uu)

print (uu)

u=" Расчет линейной интерполяции "

print (u)

print (uu)

# Далее вводим в программу исходные данные для расчета.

print (uu)

u=" Введите X1 "

print (u)

print (uu)

x1=0.00000000

x1=input( ) # Вводим число

x1=float(x1) # Принудительно в вещественное число

print (uu)

u=" Введите X2 "

print (u)

print (uu)

x2=0.00000000

x2=input( ) # Вводим число

x2=float(x2) # Принудительно в вещественное число

print (uu)

u=" Введите Xx "

print (u)

print (uu)

xx=0.00000000

xx=input( ) # Вводим число

xx=float(xx) # Принудительно в вещественное число

print (uu)

u=" ........................................................................ "

print (u)

print (uu)

u=" Введите Y1 "

print (u)

print (uu)

y1=0.00000000

y1=input( ) # Вводим число

y1=float(y1) # Принудительно в вещественное число

print (uu)

u=" Введите Y2 "

print (u)

print (uu)

y2=0.00000000

y2=input( ) # Вводим число

y2=float(y2) # Принудительно в вещественное число

# Далее идет расчет по формуле..

yx=(((y2-y1)*(xx-x1))/(x2-x1))+y1

# Далее выводится на экран результат расчета

u=" ........................................................................ "

print (u)

print (u)

print (uu)

print (uu)

u=" X1 = ", x1," Y1 = ",y1," "

print (u)

print (uu)

u=" X2 = ", x2," Y2 = ",y2," "

print (u)

print (uu)

u=" Xx = ", xx," Yx = ",yx," "

print (u)

print (uu)

u=" ..... ..... ..... ..... ..... ...... ...... "

print (u)

print (u)

print (uu)

print (uu)

input( ) # Ожидание нажима Ентер

# Далее делаем еще один расчет на тех же исходных данных и выводим результаты.

Pii=math.pi # Вытащили число " Пи " и поместили в переменную Pii …

cc=((x2-x1)*(x2-x1))+((y2-y1)*(y2-y1))

c=math.sqrt(cc) # Квадратный корень из " cc "

cs=str(c) # Преобразуем число в строку

u=" Длина линии x1;y1 – x2;y2 = "+cs

print (uu)

print (u)

a=(y2-y1)/(x2-x1)

aur=math.atan(a) # Угол aur в радианах через арс тангенс

au=aur*180/Pii # Угол au в градусах ( переводим ).

aus=str(au) # Преобразуем число в строку

u=" Угол линии x1;y1 – x2;y2 с осью Х = "+aus+" градус "

print (uu) # Выводим пустую строку

print (u) # Выводим результат – угол в градусах

print (uu)

print (uu)

input( ) # Ожидание нажима Ентер что бы можно было прочитать результаты.

# ..... ..... ..... Конец листинга программы ..... ....

Координаты точек на радиусной кривой

Программа бывает необходима при построении сегмента с радиусом

большой величины – который построить непосредственной разметкой

сложно или невозможно из за мешающих препятствий.

Результаты расчета записываются в файл 'Rezult.txt'.



Листинг программы.

# -*– coding: cp1251 -*-

import math # Подключили математический модуль

import sys # Подключили основные библиотеки

# ....... ....... ....... ...... ...... ....... ....... ......

Pii=math.pi # Вытащили число " Пи "

f = open('Rezult.txt', 'w') # Открыли файл для записи результатов

# Записываем числа в текстовом виде

uu=" "

u=uu+"\n" # Добавим код перевода строки

f.write(u)

u1=" Расчет координат точек на радиусной кривой "

u=u1+"\n"

f.write(u)

uu=" "+"\n"

f.write(uu)

uuu=" ,,,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, ,,,,,,,, "+"\n"

f.write(uuu)

f.write(uu)

print (uu)

u=" Построение большого радиуса методом подьема "

print (u)

print (uu)

u=" Размер по горизонтали отсчитывается от центра хорды "

print (u)

u=" от точки Х2 на хорде проводим перпендикуляр Нм расчитанной величины. "

print (u)

u=" При вводе размера по горизонту = нулю – выход из программы "

print (u)

print (uu)

input( ) # Ожидание нажима Ентер

print (uu)

a=0.00000000

y=0.00000000

ug=0.00000000

ugg=0.00000000

R=0.00000000

hm=0.00000000

ht= 0.0000000

u=" Введите радиус "

print (u)

print (uu)

R=input( ) # Вводим число

R=float(R) # Принудительно в вещественное число

u=" Радиус заданной кривой = "

ss=str(R) # Преобразуем число в строку

Rad=u+ss

u=Rad+"\n"

f.write(u)

u=" Введите Хорду L "

print (u)

print (uu)

a=input( ) # Вводим число

a=float(a) # Принудительно в вещественное число

u=" Хорда максимальная заданная L = "

ss=str(a) # Преобразуем число в строку

Xord=u+ss

u=Xord+"\n"

f.write(u)

# Находим значения максимального прогиба при X2 = 0....

x=((R*R)-(a*a/4))

b=R-(math.sqrt(x)) # Квадратный корень из " x "

# b – максимальный прогиб…

u=" Подъем максимальный в центре хорды = "

ss=str(b) # Преобразуем число в строку

Progi=u+ss

u=Progi+"\n"

f.write(u)

x=(a/2)/R

y=math.asin(x)

v=math.cos(y)

aur=2*y

au=aur*180/Pii # Угол А в градусах

Lx= 0.0000001 # <Начальное значение>

while Lx>0: # Далее идет циклический расчет

# Далее Cдвиг – четыре пробела в начале каждой строки

print (uu)

u=" Введите растояние от центра хорды до перпендикуляра X2 "

print (u)

print (uu)

Lx=input( ) # Вводим число

Lx=float(Lx)

u=" От центра хорды до точки X2 по оси Х-Х = "

ss=str(Lx) # Преобразуем число в строку

Xord=u+ss

u=Xord+"\n"

f.write(uu)

f.write(u)

x=(R*R)-(Lx*Lx)

z=math.sqrt(x)

y=R-z # Прогиб при хорде = Lx*2

ht=b-y # Расчитали величину подьема

Gsf = 461030/2725231222..

u=" На растоянии от центра = "

ss=str(Lx) # Преобразуем число в строку

u=u+ss

print (u)

print (uu)

u=" Величина подьема ( перпендикуляра ) Hm = "

ss=str(ht) # Преобразуем число в строку

u=u+ss

print (u)

f.write(u)

f.write(uu)

print (uu)

u=" =================================== "

print (u)

f.write(u)

print (uu)

input( ) # Ожидание нажима Ентер

# Далее Конец Cдвига – четыре пробела в начале каждой строки

print (uu)

input( ) # Ожидание нажима Ентер

print (uu)

# ....... ....... ....... ...... ...... ....... ....... ......

f.write(uu)

f.write(uuu)

f.close() # закрыли файл

# ....... ....... ....... ...... ...... ....... ....... ....... ........ ........ ........

u=" ...... ...... ...... Конец программы ...... ...... ...... "

print (u)

print (uu)

input( ) # Ожидание нажима Ентер –

# Позволяет рассмотреть результаты расчета

# ..... Конец листинга программы ..... ..

Читать фрагменты других книг
Читать фрагмент
Читать фрагмент
Читать фрагмент
Читать фрагмент
СкороКнижный режим