лаб.работы на Pascal

Ответить

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

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: лаб.работы на Pascal

Re: лаб.работы на Pascal

BBB » 18 сен 2007, 10:46

Хыиуду писал(а):2. sqrt(sqr(x2-x1)+sqr(y2-y1))>2*R - если выполняется это условие, то пересекаются. В каких точках - надо копать в направлении матана и начал анализа, уравнений перпендикулярных прямых.
Все-таки, равенство там будет в другую сторону :)

sqrt(sqr(x2-x1)+sqr(y2-y1))<=2*R - если выполняется это условие, то пересекаются

somewhere писал(а):Окружности пересекуццо, если расстояние D между центрами <=2R. Точки пересечения будут расположены на линии, перпендикулярной той, которая соединяет два центра. Более того, перпендикуляр будет делить соединяющий центры отрезок O1O2 пополам. Отсюда по теореме Пифагора считаем расстояние от центра отрезка до точек пересечения окружностей p = Sqrt(R^2 - (D^2)/4).
А если пойти другим путем? Собственно, точки (или одна точка, если окружности касаются) пересечения, это точки(а), принадлежащие(ая) обеим окружностям.
Зная координаты точек центра и радиусы (кстати, для общего случая можно и не считать их равными), можно составить уравнение окружностей:

sqr(x - X1) + sqr(y - Y1) = sqr(R1)
sqr(x - X2) + sqr(y - Y2) = sqr(R2)

То есть, задача нахождения нахождения точек пересечения сводится к решению системы двух уравнений второй степени.

Re: лаб.работы на Pascal

somewhere » 17 сен 2007, 17:08

№3, №4, №5 - все можно найти в этом разделе

Re: лаб.работы на Pascal

somewhere » 17 сен 2007, 13:36

&quot писал(а):№2. Даны две окружности одинакового радиуса R, заданные координатами их центров (X1,Y1),(X2,Y2) – целыми числами. Определить, пересекаются ли они, в этом случае вычислить координаты (вещественные числа) точек их пересечения.
Окружности пересекуццо, если расстояние D между центрами <=2R. Точки пересечения будут расположены на линии, перпендикулярной той, которая соединяет два центра. Более того, перпендикуляр будет делить соединяющий центры отрезок O1O2 пополам. Отсюда по теореме Пифагора считаем расстояние от центра отрезка до точек пересечения окружностей p = Sqrt(R^2 - (D^2)/4).
Координаты середины O1O2:
Xp = (X2-X1)/2
Yp = (Y2-Y1)/2
Далее считаем угол под каким O1O2 расположен к оси OX:
sin(a) = (X2 - X1)/D
поскольку имеем дело с перпендикуляром, то относительно середины O1O2
Xp1 = Xp + p * cos(a)
Yp1 = Yp + p * sin(a)
координаты второй точки
Xp2 = Xp - p * cos(a)
Yp2 = Yp - p * sin(a)
при D = 2R середина O1O2 совпадает с точкой пересечения, p = 0 по формуле, p1 и p2 совпадают.

Re: лаб.работы на Pascal

Хыиуду » 17 сен 2007, 13:11

2. sqrt(sqr(x2-x1)+sqr(y2-y1))>2*R - если выполняется это условие, то пересекаются. В каких точках - надо копать в направлении матана и начал анализа, уравнений перпендикулярных прямых.
3. Разбиение строки на слова - см. раздел "Алгоритмы". Далее для каждого найденного слова s
for i:=1 to length(s):
if not ((s in ['a'..'z']) or (s in ['A'..'Z']))
then break; {Это слово состоит не только из латинских букв, она отбрасывается}
Дальше - непонятно, что подразумевается под повторяющимися буквами: две одинаковые буквы подряд или в пределах слова.

Re: лаб.работы на Pascal

somewhere » 17 сен 2007, 11:17

&quot писал(а):№1. (Все вычисления производить только посредством арифметических операций, процедур и функций для работы с целыми и вещественными типами данных.) Даны целые числа N и M. Найти на интервале <от меньшего из них до большего из них> все целые числа, модули которых являются кубами целых чисел.
Найти минимальное и максимальное. Из обоих извлекаем корень кубический, т.е. возводим в степень 1/3, получим два числа А и В. Меньшее округляем в большую сторону до целого числа, большее - наоборот. В цикле от А до В включительно перебираем числа и возводим их в куб. Они и будут являтся ответом.

лаб.работы на Pascal

nika|tin » 15 сен 2007, 20:35

Здравствуйте, помогите пожалуйста сделать лабораторные работы на Pascal. Всему буду рада, любому совету.

№1. (Все вычисления производить только посредством арифметических операций, процедур и функций для работы с целыми и вещественными типами данных.) Даны целые числа N и M. Найти на интервале <от меньшего из них до большего из них> все целые числа, модули которых являются кубами целых чисел.
№2. Даны две окружности одинакового радиуса R, заданные координатами их центров (X1,Y1),(X2,Y2) – целыми числами. Определить, пересекаются ли они, в этом случае вычислить координаты (вещественные числа) точек их пересечения.
№3. ( Написать программу, которая читает с клавиатуры произвольную строку символов, преобразует ее и выводит результат на дисплей в виде строки. Длина строки заранее не вводится, а определяется после окончания ввода с клавиатуры.
) Группы символов, состоящие только из латинских букв, если в них есть повторяющиеся буквы.
№4. (Ввести произвольную размерность квадратной матрицы в интервале 1..10.
Предложить ввод данных (чисел целого типа) двумя способами: 1. Через датчик случайных чисел на интервале -100..100. 2. С клавиатуры в виде «Х,[j]=», где i и j – числа, соответствующие номеру строки и столбца. После окончания ввода данных вывести на экран матрицу в отформатированном виде по строкам и столбцам) Найти среднее арифметическое из всех положительных элементов этой матрицы, если они кратны 3.
№5. (Ввести с клавиатуры произвольное имя текстового файла. Найти на жестком диске компьютера все файлы с заданным именем, поочередно вывести на экран их содержимое. Если ни одного файла не найдено, выдать сообщение. Выполнить обработку каждого найденного файла в соответствии с заданием в варианте. Создать текстовый файл с именем программы, в который записать результаты выполнения программы, т.е. продублировать вывод информации на экран и в текстовый файл. Этот файл перезаписывать при каждом запуске программы.) Подсчитать количество строк в файле.

Вернуться к началу