Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.11.2007, 18:14   #1
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
Печаль Паскаль. Сравнение на подобность треугольников. Координаты вершин в матрице.

Помгите пожалуйста записать программу в двумерном массиве! Заданы, распределённые на N пар, 2N треугольников длинами их сторон: A1,B1,C1 (1-й треугольник каждой пары) и A2,B2,C2 (2-й треугольник), причём A1<B1<C1 и A2<B2<C2. Определить число случаев подобия треуг.,входящих в одну пару, и вывести длины сторон таких треугольников.
КОД
Код:
Program Zad;
uses crt
var
     j,n,kol,i: integer;
     a1,a2,b1,b2,c1,c2:real;
begin
writeln ('введите длины сторон');
readln(a1,a2,b1,b2,c1,c2);
if ((a1/a2)=(b1/b2)) and ((b1/b2)=(c1/c2)) then
kol:=kol+1;
end;
readln
end.
Оформляем код используя кнопку #.
Название темы должно отображать смысл вопроса. Модератор.

Последний раз редактировалось AlDelta; 06.11.2007 в 19:05.
Jondeer вне форума Ответить с цитированием
Старый 06.11.2007, 20:24   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Для начала тебе не мешало бы что-нибудь прочитать про массивы.
В твоей задаче действительно нужно использовать двумерный массив размерностью n*6, где n - количество строк, 6 - количество столбцов.
Вводить в массив нужно не a1,a2 и т. д., а n*6 чисел. В первую строку стороны первой пары треугольников, соблюдая заданные условия, во вторую строку - вторую пару и т.д. Периодически нужно вводить пропорциональные числа, что бы иметь несколько положительных результатов.
Затем построчно выполняется твой алгоритм
Цитата:
if ((a1/a2)=(b1/b2)) and ((b1/b2)=(c1/c2)) then
kol:=kol+1;
Только вместо а1 и а2 будут a[i,1] и a[i,2] и т.д.
Короче, разбирайся. Будут вопросы, пиши.
puporev вне форума Ответить с цитированием
Старый 06.11.2007, 21:26   #3
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
Восклицание Паскаль

Спасибо за информацию! Я вроде немного разобрался! Но посмотри пожалуйста код, наверняка я где нибудь ошибок нагородил!!!
Код:
program cx;
var
    dl:array [1..n,1..6] of integer;
    i,j,kol,a,b,c:integer;
    N:real;
begin
writeln ('введите N');
readln(N);
for i:=1 to n do
begin
writeln ('введите длины');
readln(a[i,1],a[i,2],b[i,1],b[i,2],c[i,1],c[i,2]);
if ((a[i,1]/a[i,2])=(b[i,1]/b[i,2])) and ((b[i,1]/b[i,2])=(c[i,1]/c[i,2])) and 
(a[i,1]<b[i,1]<c[i,1])and(a[i,2]<b[i,2]<c[i,2]) then
kol:=kol+1;
dl[j]:=a[i,1];
dl[j+1]:=b[i,1];
dl[j+2]:=c[i,1];
dl[j+3]:=a[i,2];
dl[j+4]:=b[i,2];
dl[j+5]:=c[i,2];
readln(a,b,c);
end;
i:=1;
for i:=1 to kol do
writeln(dl[j],dl[j+1],dl[j+2],dl[j+3],dl[j+4],dl[j+5]);
j:=j+6;
readln;
end.
Замечание не учтено.... Повторяю: Заключаем код в тэги - кнопка . SupVis.

Последний раз редактировалось SuperVisor; 07.11.2007 в 08:47.
Jondeer вне форума Ответить с цитированием
Старый 07.11.2007, 07:31   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

То, что можно отнести к ошибкам.:
1. Неправильно задана размерность массива.
Если ты пишешь dl:array [1..n,1..6] of integer; ,то n должна быть определена в разделе констант, т.е. перед var. Const n=10;. Если ты хочешь в процессе отладки вводить разные n, то массив нужно задать например так: dl:array [1..100,1..6] of integer; n определить в разделе переменных и вводить его в текст программы при условии, что n<=100. При работе с большими массивами нужно пользоваться динамическими массивами.
2. Количество элементов массива N не может быть вещественным числом (real). Программе все равно что n что N, но лучше писать везде одинаково.
Все, что написано дальше, это не ошибки, а, извини конечно, бред. Посмотри где-нибудь про двухмерные массивы. Как вводятся данные, как осуществляются преобразования и вычисления в массивах, как выводятся результаты.
puporev вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск разделяющих вершин в произвольном графе... Agnazar Помощь студентам 4 29.05.2008 22:51
Построить треугольник по координатам его вершин и описать около него окружность. Lion Помощь студентам 22 01.04.2008 23:37
Фрактал. Посчитать количество треугольников. Marsik Помощь студентам 2 22.11.2007 08:19