![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Командор Норрингтон |
![]()
Сообщение
#1
|
Madman ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 477 Регистрация: 28-August 06 Из: Planet Earth Пользователь №: 4,052 ![]() |
Я на VB6, и Delphi...
А вы на чём? |
![]() ![]() |
Bogdan |
![]()
Сообщение
#2
|
капитан ![]() ![]() ![]() ![]() ![]() Группа: форумчанин Сообщений: 312 Регистрация: 3-September 05 Из: Россия, Краснодар Пользователь №: 1,192 ![]() |
Piroman'ищще! А вот такой вариант работать будет?
DIM X(100) DIM Y(100) INPUT N INPUT M FOR I = 1 TO N FOR J = 1 TO M INPUT X(I) INPUT Y(J) NEXT J NEXT I K=0 FOR I = 1 TO N FOR J = 1 TO M FOR Z = 1 TO N FOR L = 1 TO M FOR F = 1 TO N FOR C = 1 TO M FOR K = 1 TO N FOR R = 1 TO M IF SQRT(SQR(X(Z) - X(F)) + SQR(Y(L)-Y©))*SQRT(SQR(X(Z) - X(F)) + SQR(Y(L)-Y©)) + SQRT(SQR(X(F) - X(Z)) + SQR(Y(J) + Y©))*SQRT(SQR(X(F) - X(Z)) + SQR(Y(J) + Y©)) = = SQRT(SQR(X(Z) - X(I)) + SQR(Y(L) - Y©))*SQRT(SQR(X(Z) - X(I)) + SQR(Y(L) - Y©)) THEN IF SQRT(SQR(X(Z) - X(F)) + SQR(Y(L)-Y©))*SQRT(SQR(X(Z) - X(F)) + SQR(Y(L)-Y©)) + SQRT(SQR(X(K) - X(F)) + SQR(Y® - Y©))*SQRT(SQR(X(K) - X(F)) + SQR(Y® - Y©)) = = SQRT(SQR(X(Z) - X(K)) + SQR(Y(L) - Y®))*SQRT(SQR(X(Z) - X(K)) + SQR(Y(L) - Y®)) THEN IF SQRT(2) < SQRT(SQR(X(Z) - X(F)) + SQR(Y(L) - Y©)) / SQRT(SQR(X(Z) - X(I)) + SQR(Y(L) - Y(J))) + SQRT(SQR(X(Z) - X(F)) + SQR(Y(L) - Y©)) / SQRT(SQR(X(Z) - X(K)) + SQR(Y(L) - Y®)) THEN K=K+1 END IF END IF END IF NEXT R NEXT K NEXT C NEXT F NEXT L NEXT Z NEXT J NEXT I PRINT "В ЗАДАННОМ МНОЖЕСТВЕ ТОЧЕК МОЖНО ПОСТРОИТЬ ";K;" ОСТРОУГОЛЬНЫХ ТРЕУГОЛЬНИКОВ" END. Проверь, пожалуйста, своим профессиональным взглядом ![]() PS Просто учительница хочет максимально простой вар. ЗЫЫ Некоторые переменные почему-то получились в кружках, когда я текст вставил в сообщение. Это означает, к примеру: Y ( R ) |
Piroman |
![]() ![]()
Сообщение
#3
|
-СракоборецЪ- ![]() Группа: 1-е место на турнире 0601 Сообщений: 1,507 Регистрация: 18-November 04 Из: роддома Пользователь №: 100 ![]() |
Цитата PRINT "В ЗАДАННОМ МНОЖЕСТВЕ ТОЧЕК МОЖНО ПОСТРОИТЬ ";K;" ОСТРОУГОЛЬНЫХ ТРЕУГОЛЬНИКОВ" Дык вапрос то какой? Зачем тебе количество?.. И нифига сибе прастой вариант... ![]() ![]() Я ж моск сломал (С) ![]() И штота мине падсказываит шо не будит это работать ![]() Начнём разбор ![]() Цитата DIM X(100) DIM Y(100) Маладец, правильна ![]() (это ты объявил массивы) Тока, паскольку координаты точек не обязательна целые числа - апосля X и Y стоит писать "#" ![]() Тоисть: Код DIM X#(100) DIM Y#(100) Цитата INPUT N INPUT M FOR I = 1 TO N FOR J = 1 TO M INPUT X(I) INPUT Y(J) NEXT J NEXT I Вот это действие ваще нипанятное ![]() Падумай - тебе надо ввести какоето кол-во точек (дапустим N), ты задаёшь вапрос - "Скока точек нада?" и число введённое юзером должно пойти в переменную N. Что такое M? Нивижу логики ![]() Нада так: Код input "Сколько точек"; N Патом ты должен папросить юзера ввести координаты для каждой из N точек... (нужен один цикл! не два!). Пишешь: Код for i=1 to N input X#(i) input Y#(i) next i Цитата K=0 Правильно, занулили счётчик треугольникофф ![]() ![]() При прачтении дальнейшего я тихо матерился в платочек ![]() ![]() ![]() Ты издеваишсо? ![]() Воопщем, чтобы проверить будет ли треугольник остроугольным, да и ваапще чтоб не палучился треугольник со сторонами 3,1,1 нам достаточно чтобы выполнялась савокупность условий: (A^2 + B^2 > C^2) & (A^2 + C^2 > B^2) & (B^2 + C^2 > A^2). Это уже знания из геометрии ![]() ("^2" - это значит "в квадрате"). Тоисть нам осталось перебрать все возможные комбинации треугольничкофф. А это осуществляется тремя! циклами, не 8!! Пример: у нас исть 5 точек... первый цикл - красный (i), второй зилёный (j), третий галубой (L) ![]() 01) * * * * * 02) * * * * * 03) * * * * * 04) * * * * * 05) * * * * * 06) * * * * * 07) * * * * * 08) * * * * * 09) * * * * * 10) * * * * * Как видишь, всего 10 треугольникоф... Их перебор (в общем виде естессно) реализуется вот так: Код for i=1 to N-2 for j=i+1 to N-1 for L=j+1 to N *** Код next L next j next i а вот там где *** мы будем делать проверку на вшивасть ![]() Это выглядит так: if ((X#(j)-X#(i))^2+(Y#(j)-Y#(i))^2 + (X#(L)-X#(i))^2+(Y#(L)-Y#(i))^2) > ((X#(L)-X#(j))^2+(Y#(L)-Y#(j))^2) and ((X#(j)-X#(i))^2+(Y#(j)-Y#(i))^2 + (X#(L)-X#(j))^2+(Y#(L)-Y#(j))^2) > ((X#(L)-X#(i))^2+(Y#(L)-Y#(i))^2) and ((X#(L)-X#(i))^2+(Y#(L)-Y#(i))^2 + (X#(L)-X#(j))^2+(Y#(L)-Y#(j))^2) > (X#(j)-X#(i))^2+(Y#(j)-Y#(i))^2 then увеличаваем счётчик треугольников, тоисть: Код k=k+1 и закрываим блок if: Код end if Ну и наконец: Цитата PRINT "В ЗАДАННОМ МНОЖЕСТВЕ ТОЧЕК МОЖНО ПОСТРОИТЬ ";K;" ОСТРОУГОЛЬНЫХ ТРЕУГОЛЬНИКОВ" END. Тока точку после end нинада ![]() Фсё ![]() ![]() В файле всё то же самое, что и в посте... ![]() Цитата Проверь, пожалуйста, своим профессиональным взглядом ![]() Зараза ![]() ![]() ![]() ![]() ![]() И больше ка мне ниабращайси! ![]() ![]() ![]() Цитата ЗЫЫ Некоторые переменные почему-то получились в кружках, когда я текст вставил в сообщение. Это означает, к примеру: Y ( R ) А вот штоп такого не случалось юзай тег "[code]" ![]() ЗЫ: ты в каком классе ![]() |
![]() ![]() |
Текстовая версия | Сейчас: 13th September 2025 - 01:40 |