
01.04.2009, 19:05
|
|
Новичок
Регистрация: 23.03.2009
Сообщений: 11
С нами:
9018802
Репутация:
0
|
|
большое спс
|
|
|

01.04.2009, 19:11
|
|
Новичок
Регистрация: 21.12.2008
Сообщений: 4
С нами:
9150885
Репутация:
0
|
|
Ребята срочно, помогите пожалуйста с задачкой, надо написать игру на C# как вот здесь(аналогичную) http://ifolder.ru/11376454
если что вот моя аська: 396052292
Последний раз редактировалось Hammer94; 01.04.2009 в 23:38..
|
|
|
Пмогите еще раз плиз.Перевести прогу с Паскаля на С++ |

02.04.2009, 15:48
|
|
Новичок
Регистрация: 23.03.2009
Сообщений: 11
С нами:
9018802
Репутация:
0
|
|
Пмогите еще раз плиз.Перевести прогу с Паскаля на С++
Помогите перевести прогу с паскаля в с++ (полностью)с коментами если можно.
Прога вот:
Код:
Uses CRT;
type
real=extended;
const
matrixA: array[1..3,1..3] of real = ((-19/20,1/5, 3/5),
(-1 ,0.1, 0.5),
(-0.01 ,0 ,1/200));
One: array [1..3,1..3] of real = ((1,0,0),
(0,1,0),
(0,0,1));
U:array[1..3] of real = (1,1,1.1);
var
i,j,k,q:byte;
A,At,A1,A2,Ar,One1:array[1..3,1..3] of real;
delta,Det,S,alpha:real;
B,Z,U1:array[1..3] of real;
f:text;
Procedure TransA;
begin
for i:=1 to 3 do
for j:=1 to 3 do
At[i,j]:=A[j,i]
end;
Function Koef(par1,par2:byte):real;
var
Sum:byte;
Tmp:real;
begin
Sum:=par1+par2;
Tmp:=1;
for k:=1 to sum do
Tmp:=Tmp*(-1);
Koef:=Tmp;
end;
Function AlAdd(par1,par2:byte):real;
type
element=record
value:real;
flag:boolean;
end;
var
BB:array[1..2,1..2] of real;
AA:array[1..3,1..3] of element;
k,v,w:byte;
N:array[1..4] of real;
P1:real;
begin
for v:=1 to 3 do
for w:=1 to 3 do begin
AA[v,w].value:=A2[v,w];
AA[v,w].flag:=true
end;
for v:=1 to 3 do AA[par1,v].flag:=false;
for v:=1 to 3 do AA[v,par2].flag:=false;
{ for v:=1 to 3 do begin
for w:=1 to 3 do write(AA[i,j].value:2:3,' ');
writeln
end; }
k:=1;
for v:=1 to 3 do
for w:=1 to 3 do
begin
if AA[v,w].flag then
begin
N[k]:=AA[v,w].value;
{ writeln(N[k]);}
k:=k+1
end;
end;
BB[1,1]:=N[1]; BB[1,2]:=N[2];
BB[2,1]:=N[3]; BB[2,2]:=N[4];
{ writeln('alg dop',par1,par2,' ',BB[1,1]*BB[2,2]-BB[1,2]*BB[2,1]);}
AlAdd:=BB[1,1]*BB[2,2]-BB[1,2]*BB[2,1];
end;
Function DetCount:real;
var
S1:real;
z:byte;
begin
S1:=0;
for z:=1 to 3 do S1:=S1+A2[1,z]*Koef(1,z)*AlAdd(1,z);
DetCount:=S1;
end;
Procedure RevMatr;
begin
for i:=1 to 3 do
for j:=1 to 3 do
Ar[j,i]:=Koef(i,j)*AlAdd(i,j)/DetCount;
{ for i:=1 to 3 do begin
for j:=1 to 3 do write(Ar[i,j],' ');
writeln;
end;}
end;
Function AllRight:boolean;
begin
writeln(f,'*Ґўп§Є Ї® 1-¬г н«-вг',(abs(U[1]-U1[1])));
writeln(f,'*Ґўп§Є Ї® 2-¬г н«-вг',(abs(U[2]-U1[2])));
writeln(f,'*Ґўп§Є Ї® 3-¬г н«-вг',(abs(U[3]-U1[3])));
writeln(F);
if (abs(U[1]-U1[1])<0.001) and (abs(U[2]-U1[2])<0.001) and
(abs(U[3]-U1[3])<0.001) then AllRight:=true
else AllRight:=false
end;
Function Pow(par1:real;par2:byte):real;
var
S2:real;
z:byte;
begin
S2:=1;
if par2=0 then begin
Pow:=1;
exit
end
else
for z:=1 to par2 do S2:=S2*par1;
Pow:=S2;
end;
BEGIN
clrscr;
Assign(f,'c:\tikh.txt');
Rewrite(f);
for i:=1 to 3 do
for j:=1 to 3 do
A[i,j]:=matrixA[i,j];
TransA;
Det:=0.000125;
{----------------------------}
for i:=1 to 3 do begin
S:=0;
for j:=1 to 3 do begin
S:=S+At[i,j]*U[j];
B[i]:=S
end;
end;
{----------------------------}
for i:=1 to 3 do
for j:=1 to 3 do
begin
S:=0;
for k:=1 to 3 do begin
S:=S+At[i,k]*A[k,j];
A1[i,j]:=S
end
end;
{-----------------------------}
q:=1;
repeat
alpha:=q/pow(4,q);
for i:=1 to 3 do
for j:=1 to 3 do
One1[i,j]:=One[i,j]*alpha;
for i:=1 to 3 do
for j:=1 to 3 do
A2[i,j]:=One1[i,j]+A1[i,j];
RevMatr;
{------------------------------}
for i:=1 to 3 do begin
S:=0;
for j:=1 to 3 do begin
S:=S+Ar[i,j]*B[j];
Z[i]:=S
end;
end;
for i:=1 to 3 do begin
S:=0;
for j:=1 to 3 do begin
S:=S+A[i,j]*Z[j];
U1[i]:=S
end
end;
q:=q+1;
until AllRight;
{------------------------------}
clrscr;
writeln('ЏаЁЎ«Ё¦Ґ*ЁҐ Є *®а¬ «м*®¬г аҐиҐ*Ёо');
for i:=1 to 3 do writeln('Z(',i,')=',z[i]);
writeln;
writeln('‡* зҐ*ЁҐ Їа ў®© з бвЁ ЇаЁ Ї®¤бв *®ўЄҐ ЇаЁЎ«. аҐиҐ*Ёп');
for i:=1 to 3 do writeln('U1(',i,')=',U1[i]);
writeln;
writeln('‡* зҐ*ЁҐ Ї а ¬Ґва ॣг«паЁ§ жЁЁ:');
writeln(alpha);
Close(f);
readln;
END.
сама задача и решение тут: http://letitbit.net/download/fedbf28...-----.doc.html
|
|
|

03.04.2009, 14:18
|
|
Новичок
Регистрация: 28.03.2009
Сообщений: 1
С нами:
9011344
Репутация:
0
|
|
Спасибо большое 
Последний раз редактировалось Danke; 03.04.2009 в 15:37..
|
|
|

03.04.2009, 14:41
|
|
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
С нами:
9017461
Репутация:
414
|
|
Код:
cur_lvl, new_lvl: integer;
skills, abilitys: integer;
cur_lvl := StrToInt(Edit1.Text);
new_lvl := StrToInt(Edit2.Text);
abilitys := (cur_lvl - new_lvl) * -1;
skills := abilitys * 8;
Думаю разберешся))
|
|
|

03.04.2009, 15:29
|
|
Новичок
Регистрация: 13.03.2009
Сообщений: 4
С нами:
9033519
Репутация:
0
|
|
Помогите пожалуйста!
- Дано число К и массив размером N. Найти два различный элемента массива сумма которых наиболее близка к числу К и вывестит эти элементы в порядке возрастания их индексов
- Дан целочисленный массив размером N. Увеличить все четные числа содержащиеся в массиве на исходное значение первого четного числа.
- Дан массив A, размером N и целое число k(1<=k<=4, k<N) осуществить циклический сдвиг элементов массива влево на k позиций при этом An перейдет в An-k; An-1 ->An-k-1; A1->An-k-1
Допускается использовать вспомогательный массив из 4 элементов.
Зарание буду очень благодарен!
|
|
|

05.04.2009, 12:30
|
|
Участник форума
Регистрация: 06.02.2006
Сообщений: 177
С нами:
10661593
Репутация:
88
|
|
- Дан массив A, размером N и целое число k(1<=k<=4, k<N) осуществить циклический сдвиг элементов массива влево на k позиций при этом An перейдет в An-k; An-1 ->An-k-1; A1->An-k-1
Допускается использовать вспомогательный массив из 4 элементов.
#include <iostream>
using namespace std;
int main()
{
int n,temp;
int* a;
cin>>n;
a=new int [n];
for (int i=0;i<n;i++)
cin>>a[i];
cin>>k;
for (int i=0;i<k;i++)
for (int j=0;j<(n-1);j++)
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
};
for (int i=0;i<n;i++)
cout<<a[i]<<" ";
return 0;
};
|
|
|

04.04.2009, 12:48
|
|
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
С нами:
9187097
Репутация:
158
|
|
2 ne2pi
>>- Дан целочисленный массив размером N. Увеличить все четные числа содержащиеся в массиве на исходное значение первого четного числа
Код:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
randomize();
int arr[100],n,f_ch;
printf("Size of array : ");
scanf("%d",&n);
//заполнение массива случ числами, вывод
printf("UcxogHbli MaccuB: \n");
for(int i=0; i<n; i++){
arr[i]=rand()%10;
printf("%d ",arr[i]);
}
for(i=0; i<n; i++){
if(arr[i]%2==0&&arr[i]!=0){ //поиск 1-ого четного
f_ch=arr[i];
printf("\n1 4eTHbli element - %d\n",f_ch);
for( ; i<n; i++)//увелич всех четных чисел
if(arr[i]%2==0)
arr[i]+=f_ch;
}
}
//вывод результата
for(i=0; i<n; i++)
printf("%d ",arr[i]);
getch();
}
|
|
|

04.04.2009, 13:47
|
|
Новичок
Регистрация: 13.03.2009
Сообщений: 4
С нами:
9033519
Репутация:
0
|
|
спасибо большое а 2 других можешь сделать?!
|
|
|

04.04.2009, 19:49
|
|
Познающий
Регистрация: 09.03.2009
Сообщений: 43
С нами:
9039367
Репутация:
53
|
|
Кто может перепишите пожалуйста программу без структур а массивами
Код:
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <math.h>
#include <stdlib.h>
// объявим структуру "точка"
struct Scoord
{
double x;
double y;
};
//------------------
int main()
{
const int N = 10; // количество точек
const double LMAX=-10, RMAX=10; // левая и правая границы для генерации координат
const double TMAX=-10, BMAX=10; // верхняя и нижняя
Scoord mas[N]; // массив точек
int i,j,K;
double S,Smin;
srand(time(NULL));
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");
//==================
K = 0; // считаем, что вершина K - то, что нам нужно
Smin = -1;
for(i=0;i<N;i++) // перебираем все возможные "корни куста"
{
S = 0; // изначально сумма равна 0
for(j=0;j<N;j++) // перебираем вершины куста
{
if(j==i) continue; // если текущая вершина - корень, пропускаем
S += pow( pow(mas[j].x-mas[i].x,2) + pow(mas[j].y-mas[i].y,2),0.5);
}
if(Smin==-1) // если мы еще пока ничего не запомнили...
{
Smin = S; // то запоминаем эту сумму
K = i; // и номер вершины-корня
}
else
{
if(S<Smin) // иначе, если текущая сумма меньше
{
Smin = S; // запоминаем ее
K = i;
}
}
}
//=======
printf("Vershina kusta: %5.3lf %5.3lf\n", mas[K].x,mas[K].y);
printf("Summa reber = %5.3lf\n", Smin);
//---------
getch();
return 0;
}
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|