
17.04.2009, 00:24
|
|
Новичок
Регистрация: 22.03.2009
Сообщений: 3
С нами:
9021264
Репутация:
0
|
|
Люди помогите перевести из turbo pascal в pascalABC:
uses crt,graph;
var a,b,bb,x,y,i,jx,jy:integer;
xx,yy:array[1..1000] of integer;
c:char;
n:boolean;
begin
initgraph(a,b,'');
randomize;
a:=1;
i:=1;
n:=false;
x:=100;
y:=240;
rectangle(0,0,639,479);
repeat
jx:=random(640);
jy:=random(480);
if getpixel(jx,jy)=0 then begin
for i:=-3 to 3 do begin
putpixel(jx+i, jy, 14);
putpixel(jx,jy+i,14);
end;
a:=1; end else a:=0;
until a=1;
i:=1;
repeat
a:=a+1;
if a=150*i+1 then a:=1;
if n=false then x:=x+1;
if ord(c)=72 then y:=y-1;
if ord(c)=75 then x:=x-1;
if ord(c)=77 then x:=x+1;
if ord(c)=80 then y:=y+1;
if getpixel(x,y)=15 then c:='x';
if getpixel(x,y)=14 then begin
for b:=y-10 to y+10 do begin
for bb:=x-10 to x+10 do
if getpixel(bb,b)=14 then putpixel(bb,b,0);
end;
repeat
jx:=random(640);
jy:=random(480);
if getpixel(jx,jy)=0 then begin
for b:=-3 to 3 do begin
putpixel(jx+b, jy, 14);
putpixel(jx,jy+b,14);
end;
b:=1; end else b:=0;
until b=1;
i:=i+1;
end;
putpixel(x,y,15);
delay(15);
putpixel(xx[a],yy[a],0);
xx[a]:=x;
yy[a]:=y;
if keypressed then n:=true;
if keypressed then c:=readkey;
until (c='x') or (i=10);
if c='x' then begin
settextstyle(1,0,8);
setcolor(9);
outtextxy(150,200,'THE END...');
end;
if i=10 then begin
setcolor(10);
settextstyle(3,0,8);
outtextxy(150,200,'CONGRATS!');
end;
delay(500);
readkey;
closegraph;
end.
|
|
|

17.04.2009, 19:24
|
|
Новичок
Регистрация: 01.11.2008
Сообщений: 10
С нами:
9223248
Репутация:
0
|
|
Подскажите пжлст,где можно взять исходник самых примитивных пазлов под C++ builder???
|
|
|

18.04.2009, 11:20
|
|
Новичок
Регистрация: 17.04.2009
Сообщений: 2
С нами:
8982525
Репутация:
0
|
|
помогите плиз!!! нужна прога на С++ которая складывает, умножает, обращает, транспонирует матрицы
|
|
|

18.04.2009, 20:19
|
|
Познающий
Регистрация: 09.03.2009
Сообщений: 43
С нами:
9039367
Репутация:
53
|
|
кто-нибудь может переписать задачу под задачу в которой из одной вершины может быть несколько ребер?
Нужно добавить еще один цикл в функцию, в котором будет перебираться количество ветвей из текущей вершины. Идти будет от 1 до некоего T, которое будет изменяться (это количество оставшихся вершин).
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
// структура "точка"
struct Scoord
{
double x;
double y;
};
const int LMAX=0, RMAX=30, TMAX=24, BMAX=0;
int N;
double Smin; // сюда запишем минимальную сумму
int *minPath; // здесь будет минимальный путь
double **matr; // матрица, где будем хранить длины ребер
Scoord *mas; // массив точек
// рекурсивная функция для поиска пути.
// принимает указатель на текущий путь (который формируется с каждым вызовом)
// порядковый номер текущей вершины и текущую сумму ребер
void getMinPath(int *tekPath, int tek, double tekS)
{
if(tek==N) // если перебрали все вершины
{
if(tekS<Smin || Smin==0) // и если текущая сумма меньше той, которую запомнили
{
Smin = tekS; // запоминаем
for(int j=0; j<N; j++)
minPath[j] = tekPath[j]; // и запоминаем путь
}
return;
}
// иначе...
bool b;
for(int i=0; i<N; i++) // перебираем все вершины
{
b = false;
for(int j=0; j<tek; j++) // смотрим, нет ли текущей вершины в уже сформировавшемся пути
if(tekPath[j]==i) b=true; // если есть, ставим флаг
if(b) continue; // если флаг установлен, пропускаем вершину и берем следующую
tekPath[tek] = i; // добавляем вершину к пути
getMinPath(tekPath, tek+1, tekS+matr[tekPath[tek-1]][i]); // и ищем следующую вершину
}
}
//-----------
// функция для заполнения матрицы
// принимает указатель на матрицу
void fillMatr(double **matr)
{
int i,j;
double dlina;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
if(j==i) continue;
else
{ // для двух разных вершин считаем длину ребра
dlina = sqrt(pow(mas[i].x-mas[j].x,2)+pow(mas[i].y-mas[j].y,2));
if(dlina<matr[i][j] || matr[i][j]==0)
matr[i][j] = dlina;
}
}
//----------------------
int main()
{
int i,j;
int *tekPath;
srand(time(NULL));
printf("Vvedite kolichestvo vershyn: ");
scanf("%d",&N);
// выделяем память под массив вершин
mas = new Scoord[N];
for(i=0;i<N;i++)
{
// разбрасываем точки
mas[i].x = rand()*(RMAX-LMAX)/(double)RAND_MAX+LMAX;
mas[i].y = rand()*(BMAX-TMAX)/(double)RAND_MAX+TMAX;
printf("To4ka %d: %5.3lf %5.3lf\n",i,mas[i].x,mas[i].y);
}
printf("\n");
//==================
// выделяем память под матрицу
matr = new double*[N];
for(i=0;i<N;i++)
matr[i] = new double[N];
// память под минимальный и текущий пути
tekPath = new int[N];
minPath = new int[N];
Smin = 0;
for(i=0; i<N;i++)
for(j=0;j<N;j++)
matr[i][j] = 0;
fillMatr(matr); // заполняем матрицу
// ищем минимальный путь
for(i=0; i<N; i++) // в цикле перебираем стартовые вершины
{
tekPath[0] = i;
getMinPath(tekPath, 1, 0);
}
printf("\n Minimalnaya summa = %5.3lf\n\n",Smin);
printf("derevo:\n");
printf("%d",minPath[0]);
for(i=1;i<N;i++)
printf(" -> %d",minPath[i]);
printf("\n");
for(i=0;i<N;i++)
delete[] matr[i];
delete[] matr;
delete mas;
delete[] minPath;
delete[] tekPath;
getch();
return 0;
}
|
|
|

19.04.2009, 20:12
|
|
Участник форума
Регистрация: 26.02.2009
Сообщений: 227
С нами:
9054515
Репутация:
208
|
|
1) Заполнить масив A(n,m) единицами по главной диагонали остальные элементы произвольные числа. Заполнить массив по второй диагонали значением суммы элементов по 2 стровек массив распечатать.
|
|
|

19.04.2009, 22:40
|
|
Новичок
Регистрация: 01.03.2009
Сообщений: 5
С нами:
9050727
Репутация:
5
|
|
Доброго времени уважаемые! Помогите пожалуйста сделать програмку для курсовика.
1) Выполнить дискретизацию расчетной области в виде четырехугольника заданного координатами вершин:
A(-3;0) B(0;5) C(4;3) D(4;-2).
2) Найти узловые неизвестные T(Xi,Yi) по заданному распределению температуры вдоль границы области T(X,Y)=3x^2+xy+5x+2y-3y^2. Вычислить максимальную относительную погрешность полученных результатов.
3) Построить семейство изотерм.
Очень желательно на C++
|
|
|

19.04.2009, 22:41
|
|
Новичок
Регистрация: 01.03.2009
Сообщений: 5
С нами:
9050727
Репутация:
5
|
|
Второй вота вот курсовик.
Написать программу «Моя записная книжка».
Предусмотреть возможность работы с произвольным числом записей, поиска за¬писи по какому-либо признаку (например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям.
Хранение данных организовать с применением контейнерного класса шар или multimap
|
|
|

19.04.2009, 22:45
|
|
Новичок
Регистрация: 01.03.2009
Сообщений: 5
С нами:
9050727
Репутация:
5
|
|
Пара лаб:
ИНТЕРПОЛЯЦИЯ ФУНКЦИЙ МНОГОЧЛЕНАМИ
1)Для заданной функции y(x) вычислить ее значения на отрезке [0,4] при x(икс итое(i)) = i, где i=0,1,2,3,4. Используя кусочно-линейную интерполяцию и интерполяционный многочлен Лагранжа L(x), вычислить значения функции в середине каждого локального интервала интерполяции. Сравнить полученные результаты с точными значениями. Построить в одной системе координат графики функций y=y(x) и y= L(x)
y=1+xsinx
2). АППРОКСИМАЦИЯ ТАБЛИЧНЫХ ЗАВИСИМОСТЕЙ
Аппроксимировать заданную табличную зависимость функцией вида g(x,a,b) и сравнить с аппроксимацией многочленом первой степени. Для всех вариантов заданы значения функции y(игрек житое(j)) при x j= i (i=1,2,...8). Дать графическую иллюстрацию полученных результатов.
g(x)=ax+b/x (4,8; 5,7; 6,8; 8,9; 10,4; 12,7; 14,2; 16,6)
|
|
|

20.04.2009, 13:30
|
|
Новичок
Регистрация: 13.09.2006
Сообщений: 15
С нами:
10346468
Репутация:
7
|
|
Помогите пожалуйста !!!
допустим, что есть программа ( по решению транспортных задач )
можно ли эту прогу открыть ввиде кода???, и чем, если возможно ?? очень нужно несколько действий выдернуть...
|
|
|

20.04.2009, 13:48
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
можно ли эту прогу открыть ввиде кода???
не более чем получить дизасемблерный код
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|