Форум программистов, компьютерный форум CyberForum.ru

Не могу справиться с задачей на BorlC++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Есть вопрос по сетевому программированию http://www.cyberforum.ru/cpp-beginners/thread1296.html
Пишу прогу для поиска файлов в сети по заданной маске. Можно ли использовать процедуры FindFirstFile, FindNextFile в асинхронном режиме? Или какими другими их можно заменить?
C++ Как узнать, что делается с файлами? Как узнать какие файлы сейчас использует операционная система Windows, в частности: читает, пишет, используются, перемещается, копируется, удаляется. Путь тотального анализа диска не подойдет. Неплохо так же узнать, какие процессы сейчас открыты (связка: процесс – файл на диске). Интересуют API функции, можно программные тексты на СИ. П.С. FileMon for Windows самая близкая к задаче. http://www.cyberforum.ru/cpp-beginners/thread1291.html
Надо сделать несколько курсоров мыши на экране C++
Подскажите, возможно ли реализовать такую задачу: Нужно сделать одновременно несколько курсоров мыши на экране. Расположены они к примеру на определённом расстоянии друг от друга и при движении мыши двигаются все одновременно, при нажатии на левую кнопку мыши, нажимаются сразу все курсоры мыши. Очень надо реализовать! Помогите!
Помогите с преобразованием строк C++
Помогите плиз. м.б. кто-нибудь знает функцию для преобразования AnsiString в char*
C++ Доделать программу http://www.cyberforum.ru/cpp-beginners/thread1184.html
Помогите плиз, доделать прогу. Ввести массив нецелых чисел. Те из них, которые положительны, копировать в другой массив. Затем отсортировать оба массива: один по возрастанию, другой по убыванию. Для каждого массива подсчитать сумму. Для каждого массива найти максимум и минимум. #include <iostream.h> #include <conio.h> #include <stdio.h> #include <string.h> void main(void){ double Mas;...
C++ Ошибки в программе Уважаемые, помогите найти ошибки в программе (задачка из института): Ниже приведен алгоритм «атомарной» функции, которая меняет местами верхние значения в двух стеках. Если один из стеков пуст, то второй не должен изменяться. В функцию никогда не передаются указатели на один и тот же стек. Void AtomicSwap(Stack *s1, Stack *s2) { Int v1, v2, rez; s1->lock.Acquire(); ... подробнее

Показать сообщение отдельно
Subzik
0 / 0 / 0
Регистрация: 16.02.2007
Сообщений: 4
16.02.2007, 23:42  [ТС]     Не могу справиться с задачей на BorlC++
Дерево Пифагора
Пифагор, доказывая свою знаменитую теорему, построил фигуру, где на сторонах прямоугольного треугольника расположены квадраты. В наш век эта фигура Пифагора выросла в целое дерево. Впервые дерево Пифагора построил А.Е. Босман (1891-1961) во время Второй Мировой войны, используя обычную чертежную линейку.
Как строится дерево Пифагора понятно из рисунка.


Приведу программу для построения, написанную на языке Pascal. Только она не запускается. Я ее скачал на сайте.
Program Pif;
Uses CRT, Graph;
Procedure Draw(x, y, l, a: Real);
Procedure Rect(x1, y1, l: Integer; a1: Real);
Begin
MoveTo(x1, y1);
LineTo(x1+Round(l*cos(a1)), y1-Round(l*sin(a1)));
LineTo(x1+Round(l*sqrt(2)*cos(a1+pi/4)),
y1-Round(l*sqrt(2)*sin(a1+pi/4)));
LineTo(x1+Round(l*cos(a1+pi/2)), y1-Round(l*sin(a1+pi/2)));
LineTo(x1, y1);
End;
Begin
If l>4 Then Begin
Rect(Round(x), Round(y), Round(l), a);
Draw(x-l*sin(a), y-l*cos(a), l/sqrt(2), a+pi/4);
Draw(x-l*sin(a)+l/sqrt(2)*cos(a+pi/4),
y-l*cos(a)-l/sqrt(2)*sin(a+pi/4), l/sqrt(2), a-pi/4);
End;
End;

Var
gd, gm: Integer;
Begin
gd:=detect;
InitGraph(gd, gm, 'c:\bp\bgi');
Draw(280, 460, 100, 0);
ReadKey;
CloseGraph;
End.



Как гласит учитель рекурсия будет происходить под углом. Для этого он посоветовал матрицу вращения. Вот формулы:



Вот что я смог на сегодняшний день соорудить на Borland C++

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
#include<math.h>
//void pifagor(int, int, int, int, int, int, int, int, int);
void main(void)
{
const int M=4, N=3, K=3;
int a[M][N], b[N][K], c[M][K];
clrscr(); // randomize();
int i,j,p;
int w=3.14/4, x0=340, y0=440, x1=300, y1=480, x2=300, y2=440,x3=340, y3=440, x4=340, y4=480;

int gd=DETECT, gm;
initgraph(&gd, &gm, "C:\\BC31\BGI");

// pifagor(300, 480, 300, 440, 340, 440, 340, 480,10);

a[0][0]=x1;
a[0][1]=y1;
a[0][2]=1;
a[1][0]=x2;
a[1][1]=y2;
a[1][2]=1;
a[2][0]=x3;
a[2][1]=y3;
a[2][2]=1;
a[3][0]=x4;
a[3][1]=y4;
a[3][2]=1;

b[0][0]=cos(w);
b[0][1]=sin(w);
b[0][2]=0;
b[1][0]=-sin(w);
b[1][1]=cos(w);
b[1][2]=0;
b[2][0]=-x0*(cos(w)-1)+y0*sin(w);
b[2][1]=-x0*sin(w)-y0*(cos(w)-1);
b[2][2]=1;



for(i=0; i<=M-1; i++)
{
for(j=0; j<=K-1; j++)
{
c[i][j]=0;
{
for(p=0; p<=N-1; p++);
{
c[i][j]=c[i][j]+a[i][j]*b[p][j];
cout<<c[i][j];
}
// cout<<'\t';
}
cout<<'\n';
}

}

getch();
closegraph();
}

Я думаю дальше надо составить функцию rotate от угла поворота w и от массива с[i][j]
rotate(w, c).
 
Текущее время: 04:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru