В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
oksana1111156970
oksana1111156970
17.02.2021 05:19 •  Информатика

Ненажера Стецько пробрався перед обідом у шкільну їдальню, де вже були накриті столи, і почав швиденько з'їдати ще тепленькі булочки, що стояли на столах. З першого столу він

з'їв х1 булочок, з другого - х2 булочок, і, відповідно, з останнього - хn, булочок. Але за ним

стежив черговий по їдальні Андрійко і ретельно все фіксував на своєму калькуляторі: до

булочок, з'їдених з першого столу, додав кількість булочок, що зникла з другого столу і т.

д. До іть покроково відтворити інформацію, яку отримував Андрійко на своєму

калькуляторі.​

Показать ответ
Ответ:
ГолубойРо
ГолубойРо
10.08.2020 20:52

Так, ну смотри... Я не стал запариваться и вручную записывать список с этими координатами... Это очень долго и муторно, я воспользовался модулями pickle и random, чтоб ускорить этот процесс... (____ - потом убери - это я табуляцию обозначил, чтоб было видно синтаксис нормально)

import random, pickle, math

xy = dict()

for i in range(1, random.randrange(1,50)):

____xy[i] = [random.randrange(-104,104),random.randrange(-104,104)]

print(xy)

f = open('INPUT.TXT', 'wb')

pickle.dump(xy, f)

f.close()

Я кусками объясню, потом выложу просто сами файлы...

Запись в файл идет бинарная, поэтому когда файл откроешь, там можешь увидеть страшные символы... Я подумал, что все равно в файле с координатами смотреть не на что. В любом случае я в самом конце использовал нормальную запись в файл тоже, можешь по аналогии и тут убрать модуль pickle. Но как по мне он удобнее.

Я сделал словарь, потому что изначально была идея обозвать каждую точку буквами А, В, С... и т.д., но это долго и муторно, поэтому когда вызовешь словарь, увидишь что там такой вид (ключ: 1; [x,y]). Тоже думаю вполне себе неплохо выглядит... Рандом тут просто для того, чтоб самому ничего не выдумывать, а быстро записать разные значения, не более... Ну и так же рандом тут определяет количество точек.

f = open('INPUT.TXT', 'rb')

xy = pickle.load(f)

Тут идет все тот же pickle, но мы уже присваиваем переменной xy значение из файла. Тут все просто.

for i in xy:

___arr1.append(xy[i])

Цикл, который координаты из словаря переносит в список. Мне так просто проще работать со списками. (Вообще, моя идея с НАЗВАНИЕ:КООРДИНАТЫ оказалось провальной, поэтому чтоб избежать двух лишних строчек, можешь в самом начале изменить словарь на список =D)

while len(arr1) > 0:

___for i in arr1:

______arr1.pop(arr1.index(i))

______for z in arr1:

_________arr2.append(math.sqrt(math.pow(z[0]-i[0],2)+math.pow(z[1]-i[1],2)))

arr2.sort()

Тут происходит основной процесс программы. Цикл while работает до тех пор ПОКА длина списка arr1 больше 0. (сейчас к этому еще вернемся)

Цикл for перебирает значения списка arr1 (в котором у нас в виде списков координаты точек [x,y]) Удаляет первый элемент дабы избежать повторений и запускает второй цикл который уже без первой координаты... Получается что-то типа координата подается и со всеми остальными образует отрезок, потом вторая, третья и т.п...

И я думаю ты понял, зачем нам условие в цикле while len(arr1) > 0

Список закончился = он весь обработался...

Для следующей строки нам нужен модуль math, для упрощения жизни. тут просто формула, которая считает длины отрезков. Обычная формула из математики S = sqrt((x2 - x1)^2 + (y2 - y1)^2)

Ну думаю объяснять что за методы pow и sqrt - нет смысла...

За циклом к списку вызывается метод sort, который по порядку расставляет длины, которые мы насчитали. (т.к. у тебя в условии это требуется... бесполезное действие вообще как по мне =D)

f = open('OUTPUT.TXT', 'w')

f.write(str(len(arr2))+'\n')

for i in arr2:

___text = str(i) + '\n'

___f.write(text)

f.close()

А тут обычная запись уже в файл output. Ничего сложного. Первой строкой выводится количество отрезков, которое у нас получилось. На 26 точек, которые сгенерировались, у нас получилось 325 отрезков. Ну и из списка печатаются сами длины с отступом.

Весь код целиком:

import random, pickle, math

arr1 = []

arr2 = []

text = ''

'''xy = dict()

for i in range(1, random.randrange(1,50)):

___xy[i] = [random.randrange(-104,104),random.randrange(-104,104)]

print(xy)

f = open('INPUT.TXT', 'wb')

pickle.dump(xy, f)

f.close()

Данный код использовался для составления списка с случайным количеством координат и случайными его координатами.

'''

f = open('INPUT.TXT', 'rb')

xy = pickle.load(f)  

for i in xy:

___arr1.append(xy[i])

while len(arr1) > 0:

___for i in arr1:

______arr1.pop(arr1.index(i))

______for z in arr1:

_________arr2.append(math.sqrt(math.pow(z[0]-i[0],2)+math.pow(z[1]-i[1],2)))

arr2.sort()

f = open('OUTPUT.TXT', 'w')

f.write(str(len(arr2))+'\n')

for i in arr2:

___text = str(i) + '\n'

___f.write(text)

f.close()

P.S. А, да... Чуть не забыл. У меня тут начало закомментировано как видишь... Тебе чтоб сгенерировать список, нужно сначала тройные кавычки убрать и желательно закомментировать оставшуюся часть кода... Когда у тебя будет уже файл input с значениями, можешь обратно поставить кавычки, чтоб у тебя вечно разные значения не генерировались :)

И я не смог загрузить файл с расширением .py, так что смотри на скрине, там синтаксис выделен, я думаю разберешься.


решить Python Развлечения с измерителем(Время: 1 сек. Память: 16 Мб)Дима обнаружил у папы на столе с
0,0(0 оценок)
Ответ:
StasSav06
StasSav06
07.05.2020 16:18

Объяснение:

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

Количество и качество выплавляемого металла во многом определяет экономическую мощь государства.

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

Металлургия сильно загрязняет воздух, воду, и экологический фактор становится главным для ее размещения.

Для производства 1 т стали нужно 7 т руды и кокса, поэтому на размещение отрасли влияют также сырьевой и топливный факторы. Новые производства не требуют кокса, но требуют много электроэнергии, т. е. энергетический фактор тоже важен для отрасли.

Главные базы цветной металлургии — Центральная (вокруг КМА) , Уральская и Сибирская (на юге ЗападнойДля руд тяжелых цветных металлов характерно низкое содержание металла в руде (для выплавки 1 т меди надо 100 т руды, 1 т олова — 300 т) , т. е. главным фактором размещения является сырьевой. Легкие цветные металлы получают методом электролиза. Поэтому их производство очень энергоемко (для производства 1 т алюминия требуется 17 тыс. кВт • ч электроэнергии, а 1 т титана — до 60 тыс. кВт • ч) . Следовательно, главный фактор размещения этого производства — энергетический.

Поэтому производство тяжелых цветных металлов размещается в районах добычи их руд (Урал, Норильск, Кольский полуостров) , а производство легких металлов — у источников дешевой электроэнергии — у крупных ГЭС в Братске, Красноярске.

Важнейшие задачи, которые должны быть решены в отрасли — это освоение новых богатых месторождений меди в Забайкалье, более полное извлечение из руд всех полезных элементов, решение задач охраны природы на предприятиях отрасли.

В современных условиях важно повышение качества металла, увеличение ассортимента проката. Путь решения — создание мини-заводов с современными технологиями, использующих металлолом и не оказывающих сильного отрицательного воздействия на природу.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота