Вопрос № 84066: Эх хорошо что отвечают на вопросы хоть по 2 эксперта)) а то прошлый раз ошибочка у одного была, не скажу у кого ;)
И так подойдем ближе к делу. Помогите пожалуйста;) ЗАдали очередную лабораторную и как всегда 2 задачки, которые я даж понятия не и...
Вопрос № 84.066
Эх хорошо что отвечают на вопросы хоть по 2 эксперта)) а то прошлый раз ошибочка у одного была, не скажу у кого ;)
И так подойдем ближе к делу. Помогите пожалуйста;) ЗАдали очередную лабораторную и как всегда 2 задачки, которые я даж понятия не имею, как делать(((...
№1
Посчитать периметр треугольников, которые заданные координатами их вершин в массивах
XA[3], XB[3], XC[3]
YA[3], YB[3], YC[3]
Длину сторон треугольника высчитать с помошью функции.
{Здесь просто,я вообще ничего не понял...}
№2
Высчитать значение уравнения А=В+С+D, используя процедуру складывания матриц, если В,С,D - матрицы 3*5. Выходные значения вводить с клавиатуры.
{мне здесь не понятно зачем вводить "Выходные" значения и вообще как это... может "очапятка)" может имели в виду "Ввод с клавиатуры... в общем не знаю я " ?(( }
Помогите нюбу... выросту буду Вам помогать)))
Заранее всем Спасибо, ведь Вы же поможете мне... правда? ;)
Отправлен: 25.04.2007, 01:14
Вопрос задал: Grizlik (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 2)
Отвечает: Verena
Здравствуйте, Grizlik!
В первой задаче смущает способ ввода координат - вводить 6 массивов не слишком рационально... Логичней было бы ввести максимум две или даже одну матрицу, но раз в задании указано так, менять не буду:
const n=3;
var xa, xb, xc, ya, yb, yc: array [1..n] of integer;
i: integer;
function Dlina (x, y, x1, y1: integer): real;
var
begin
Dlina := sqrt (sqr(x1-x)+sqr(y1-y)); {формула вычисления длины отрезка по координатам концов}
end;
function Perimetr (ac, bc, ab: real): real;
begin
Perimetr:= ac+bc+ab;
end;
begin
..... {ввод массивов кооринат}
for i:=1 to n do {в цикле вычисляем периметр для каждого из треугольников}
writeln ('Периметр ', i, '-го: ', Perimetr (Dlina(xa[i], ya[i], xc[i], yc[i]), Dlina(xb[i], yb[i], xc[i], yc[i]), Dlina(xa[i], ya[i], xb[i], yb[i]))); {выводим на экран}
end.
Вторая задача - сложно ответить, если даже Вы не уверены в условии. Если надо просто посчитать матрицу-сумму трёх введённых матриц, то это делать так:
const m=3;
const n=5;
type matr = array [1..m, 1..n] of integer;
var a, b, c, d: matr;
i, j: integer;
procedure Sum (var a, b, s: matr);
var i, j: integer;
begin
for i:=1 to m do
for j:=1 to n do
s[i,j]:= a[i,j]+b[i,j]; {считаем поэлементную сумму}
end;
begin
.....{ввод матриц}
Sum (b, c, a);
Sum (a, d, a);
for i:=1 to m do
begin
for j:=1 to n do
write (a[i, j];
writeln;
end;
end.
Если что не так - пишите)
--------- Эта история - не для истории, понимаешь?
Ответ отправила: Verena (статус: 10-ый класс)
Ответ отправлен: 25.04.2007, 01:47
Отвечает: Mailusr
Здравствуйте, Grizlik!
на 1 вопрос:
длина отрезка, соединяющего две точки равна квадратному корню из суммы квадратов разности координат
Посчитать три длины и сложить - периметр
т.е. см. приложение
и по аналогии для треугольников b,c
Приложение:
Ответ отправил: Mailusr (статус: 2-ой класс)
Ответ отправлен: 25.04.2007, 14:09