Поделитесь своими знаниями, ответьте на вопрос:
У меня нет компа. Поожжж. создания базы данных «Горные породы». Исходные файлы: 1)Горные породы(Imgrocks.txt): 178.02;амфиболит;amphibolite;0;2;0; 178.025;андезит;andesite;0;3;0; 178.03;анортозит;anorthosite;0;3;0; 178.044;базальт;basalt;0;1;0; 178.074;габбро;gabbro;0;3;0; 178.079;гарцбургит;harzburgite;0;3;0; 178.095;гнейс;gneiss;0;1;0; 178.097;гранит_порфир;porphyry granite;0;3;0; 178.098;гранит_рапакиви;granite rapakivi;0;3;0; 178.099;гранит;granite;0;1;0; 178.1;гранодиорит;granodiorite;0;3;0; 178.105;дацит;dacite;0;1;0; 178.111;диорит_порфирит;diorite porphyrite;0;3;0; 178.112;диорит;diorite;0;2;0; 178.113;долерит;dolerite;0;2;0; 178.129;карбонатит;carbonatite;0;3;0; 178.134;кварцит;quartzite;0;1;0; 178.146;кремень;flint;0;1;0; 178.148;кристаллический_сланец;schist;0;3;0; 178.159;лерцолит;lherzolite;0;3;0; 178.16;липарит;liparite;0;3;0; 178.178;монцонит_порфир;monzonite-porphyry;0;3;0; 178.179;мрамор;marble;0;1;0; 178.184;нефелиновый_сиенит;nepheline syenite;0;2;0; 178.185;нефелиновый_фонолит;nepheline phonolite;0;2;0; 178.188;обсидиан;obsidian;0;1;0; 178.197;пегматит;pegmatite;0;3;0; 178.198;перидотит;peridotite;0;3;0; 178.2;песчаник;sandstone;0;1;0; 178.217;риолит;rhyolite;0;3;0; 178.23;серпентинит;serpentinite;0;2;0; 178.232;сиенит;syenite;0;2;0; 178.238;сланец;shale;0;1;0; 178.239;слюдяной_сланец;mica slate;0;2;0; 178.256;трахит;trachyte;0;1;0; 178.263;филлит;phyllite;0;3;0; 178.274;хлоритовый_сланец;chlorite shale;0;2;0; 178.302;янтарь;amber;0;1;0; 2)Состав физических характеристик(Ierphysic.txt): 3)Физические характеристики горных пород (Rocksphys.txt 4)Состав химических характеристик (Rocksierchem.txt) 5)Химические характеристики горных пород (Rockschem.txt). 6)Состав классов горных пород (Rocksierinter.txt). 7)Классификация горных пород (Rocksinter.txt). Создайте файл базы данных db.sqlite3 и создайте в нем 7 таблиц согласно схемам: from django.db import models class Imgrocks(models.Model): #таблица иллюстраций горных пород RId = models.FloatField(unique=True) Name = models.CharField(max_length=50) Enname = models.CharField(max_length=50) class Chemical(models.Model): #таблица химических свойств горных пород Name = models.CharField(max_length=50) Inier = models.IntegerField() Val = models.FloatField() class Ierchem(models.Model): #таблица иерархии химических свойств Type = models.IntegerField() Minmax = models.CharField(max_length=50) Name = models.CharField(max_length=150) Abbr = models.CharField(max_length=50) Razm = models.CharField(max_length=10, blank=True) EnMinmax = models.CharField(max_length=50) EnName = models.CharField(max_length=150) class Ierin(models.Model): #таблица иерархии классификаций Type = models.FloatField() Name = models.CharField(max_length=150) EnName = models.CharField(max_length=150) class Ierphy(models.Model): #таблица иерархии физических свойств Type = models.FloatField() Name = models.CharField(max_length=150) Razm = models.CharField(max_length=50) EnName = models.CharField(max_length=150) class Interface(models.Model): #таблица классификаций горных пород Name = models.CharField(max_length=50) Val = models.FloatField() class Physic(models.Model): #таблица физических свойств горных пород Name = models.CharField(max_length=50) Ier = models.FloatField() Val = models.FloatField(null=True)
Поскольку задача школьная, то вариант совпадения точек не рассматривается
Алгоритмического языка не знаю, но поскольку это вариант псевдокода, то думаю алгоритм вполне понятен
алг Круг_по_двум_точкам_и_радиусу(арг действ Ax, арг действ Ay, арг действ Bx, арг действ By, арг действ r)
дано | A,B,r
надо | нарисовать окружность
нач
ввод Ax, Ay, Bx, By, r
действ dAB = ((Ax - Bx)^2 + (Ay - By)^2)^(0.5) // длина АВ
действ h = (r^2-dAB^2/4)^(0.5) // высота и длина вектора ОМ
// М середина АВ
действ Mx = (Ax + Bx) / 2
действ My = (Ay + By) / 2
//первый круг
действ Ox = Mx + (Ay - By) * h/dAB
действ Oy = My - (Ax - Bx) * h/dAB
нарисовать_круг(Ox, Oy, r)
//второй круг
Ox = Mx - (Ay - By) * h/dAB
Oy = My + (Ax - Bx) * h/dAB
нарисовать_круг(Ox, Oy, r)
кон