ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1351  
Старый 28.04.2009, 08:16
sebay
Познающий
Регистрация: 09.03.2009
Сообщений: 43
Провел на форуме:
549532

Репутация: 53
По умолчанию

подскажите пожалуйста как расположить эти вершины(точки) в окружнсть
Код:
#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 = x*sin(pi*i/n);
  mas[i].y = y*cos(pi*i/n);
  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;
}
 
Ответить с цитированием

  #1352  
Старый 28.04.2009, 13:17
SHAXID
Познающий
Регистрация: 13.12.2007
Сообщений: 56
Провел на форуме:
469345

Репутация: 51
Отправить сообщение для SHAXID с помощью ICQ
По умолчанию

Помогите, пожалуйста, разработать программу нахождения значения определенного интеграла методом Симпсона (на паскале).
Вот, собственно, функция для интегрирования:

y=log3(внизу)х (х+х^2)^-1 .


Исходные данные: интервал интегрирования, количество разбиений отрезка.
Результат нужно получить такой: значение интеграла, график заданной функции.

Решение интерпретировать графически (автоматическое масштабирование, название графика, метки на осях и обозначение осей).
Также нужно предусмотреть переключение между графическим и текстовым окнами для ввода исходной информации и вывода результатов интегрирования и графической интерпретации. И предусмотреть проверку корректности данных.

Последний раз редактировалось SHAXID; 29.04.2009 в 13:01..
 
Ответить с цитированием

  #1353  
Старый 28.04.2009, 13:31
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме:
1740746

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Взятие интеграла методом Симпсона

A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.
Возвращаемое значение - значение интеграла


PS: сделано на Delphi (указывайте среду программирования)

PHP код:
type
  TFunction 
= function(XExtendedArgPointer): Extended;

function 
Simpson(ABExtendedNCardinalFuncTFunctionArgPointer):
  
Extended;
var
  
hExtended;
  
XExtended;
  
KExtended;
  
IInteger;
begin
  Assert
(0);
  
:= 0.5 * (A) / N;
  
Result := Func(AArg);
  
:= h;
  for 
:= 1 to 2 do
  
begin
    
if I mod 2 0 then
      K 
:= 2
    
else
      
:= 4;
    
Result := Result Func(XArg);
    
:= h;
  
end;
  
Result := Result Func(BArg);
  
Result := Result 3;
end
 
Ответить с цитированием

  #1354  
Старый 28.04.2009, 13:53
Micr0b
Участник форума
Регистрация: 14.01.2006
Сообщений: 242
Провел на форуме:
2630617

Репутация: 245
Отправить сообщение для Micr0b с помощью ICQ
По умолчанию

На уроке с системного програмирования мне задали зделать лабу. Задание Розроботать програму для передачи сообщения через локальную сеть с интерфейсом. Лаба должна усуществляца на
Borland C++.
Могу сказать что нужно только строка для ввода айпи строка для сообщения и кнопка отправки.
Буду очень рад.
 
Ответить с цитированием

  #1355  
Старый 28.04.2009, 14:15
razb
Постоянный
Регистрация: 24.03.2009
Сообщений: 670
Провел на форуме:
2868783

Репутация: 414


Отправить сообщение для razb с помощью ICQ
По умолчанию

Цитата:
На уроке с системного програмирования мне задали зделать лабу. Задание Розроботать програму для передачи сообщения через локальную сеть с интерфейсом. Лаба должна усуществляца на
Borland C++.
Могу сказать что нужно только строка для ввода айпи строка для сообщения и кнопка отправки.
Буду очень рад.
когда уже научитесь гуглом пользоватся?
копай в сторону winsock api
 
Ответить с цитированием

  #1356  
Старый 28.04.2009, 20:52
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


Отправить сообщение для KaZ@NoVa с помощью ICQ Отправить сообщение для KaZ@NoVa с помощью AIM Отправить сообщение для KaZ@NoVa с помощью Yahoo
По умолчанию

Цитата:
Сообщение от ViP-K1LLeR  
Сегодня дали такую задачу(pascal):


P.S: Требования выносят мозг. Помогите пожалуйста
Цитата:
program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

type
vector_type = record
x,y,scal:extended;
end;
vector_array=array[1..100] of vector_type;

var
a,b:extended;
vectors:vector_array;

function Scalar(x1,y1,x2,y2: extended):extended;
begin
Scalar:=x1*x2+y1*y2;
end;

procedure ReadFromFile(var res:vector_array);
var
i:byte;
begin
i:=1;
reset(input,'points.dat');
while (i<=100) and (not Eof(input)) do begin
read(res[i].x);
readln(res[i].y);
inc(i);
end;
close(input);
end;

procedure FindScalar(a,b:extended; var res:vector_array);
var
i:byte;
begin
for i:=1 to 100 do begin
res[i].scal:=Scalar(a,b,res[i].x,res[i].y);
end;
end;

procedure Sort(var res:vector_array);
var
i,l:byte;
tmp:extended;
begin
for i := 99 downto 1 do begin
for l := 1 to i do
if res[l].scal>res[l+1].scal then begin
tmp:= res[l].scal;
res[l].scal:= res[l+1].scal;
res[l+1].scal:= tmp;
tmp:= res[l].x;
res[l].x:= res[l+1].x;
res[l+1].x:= tmp;
tmp:= res[l].y;
res[l].y:= res[l+1].y;
res[l+1].y:= tmp;
end;

end;
end;

procedure WriteToFile(res:vector_array);
var
i:byte;
begin
rewrite(output,'points1.dat');
for i := 1 to 100 do begin
writeln(res[i].x,' ',res[i].y);
end;
close(output);
end;

begin
writeln('Enter A component value...');
readln(a);
writeln('Enter B component value...');
readln(b);
ReadFromFile(vectors);
FindScalar(a,b,vectors);
Sort(vectors);
WriteToFile(vectors);
{ TODO -oUser -cConsole Main : Insert code here }
end.
Это на дельфи,
тебе придётся слегка подправить запись и чтение из файла, просто вроде в паскале нельзя так обращаться легко как в дельфи, но это буквально вроде минут на 5 должно быть

Последний раз редактировалось KaZ@NoVa; 28.04.2009 в 20:54..
 
Ответить с цитированием

  #1357  
Старый 29.04.2009, 09:51
KaZ@NoVa
Постоянный
Регистрация: 05.07.2008
Сообщений: 555
Провел на форуме:
3134311

Репутация: 1467


Отправить сообщение для KaZ@NoVa с помощью ICQ Отправить сообщение для KaZ@NoVa с помощью AIM Отправить сообщение для KaZ@NoVa с помощью Yahoo
По умолчанию

Цитата:
Сообщение от Micr0b  
На уроке с системного програмирования мне задали зделать лабу. Задание Розроботать програму для передачи сообщения через локальную сеть с интерфейсом. Лаба должна усуществляца на
Borland C++.
Могу сказать что нужно только строка для ввода айпи строка для сообщения и кнопка отправки.
Буду очень рад.
На Borland C++ её делать это несколько неправильно на Buildere еще можно договориться. на делфе есть такая же готовая!!!!!
 
Ответить с цитированием

  #1358  
Старый 29.04.2009, 13:01
SHAXID
Познающий
Регистрация: 13.12.2007
Сообщений: 56
Провел на форуме:
469345

Репутация: 51
Отправить сообщение для SHAXID с помощью ICQ
По умолчанию

Цитата:
Сообщение от Flame of Soul  
Взятие интеграла методом Симпсона

A, B - интервал интегрирования
N - число точек на интервале
Func - функция, от которой берется интеграл.
Возвращаемое значение - значение интеграла


PS: сделано на Delphi (указывайте среду программирования)
оу, ссори, на паскале нужн
 
Ответить с цитированием

  #1359  
Старый 29.04.2009, 13:40
ZorGan
Новичок
Регистрация: 28.04.2009
Сообщений: 4
Провел на форуме:
13469

Репутация: 0
По умолчанию

Добрый день, вот задали 2 задачки
Условие
Найти значение переменной у после выполнения программы на языке Pascal.


и еще вот эту:
Цитата:
Найти значение выражение Fun(6), вычисленное при обращении к функциям в программе,написанной на языке Pascal
function fun(n: integer): integer;
begin
if n=0 then fun:=1
else fun:=n*fun(n-1)-2
end;
Пожалуста объясните как решать,очень нужно
 
Ответить с цитированием

  #1360  
Старый 29.04.2009, 13:52
fker
Участник форума
Регистрация: 26.11.2008
Сообщений: 158
Провел на форуме:
2816163

Репутация: 158
По умолчанию

Самое простое это скомпилировать код и посмотреть на результат.
В первом примере смысл такой:
в цикле проверяем строку х(БАРАН), если встречаем символ 'A' то заносим в строку у 0А, иначе в у заносим символ содерж в х на i-ом месте.
В результате выполнения у='БОАРОАН'
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сюда выкладываем все проги для фрикринга мобильников, которых знаем! nigger Сотовый фрикинг 5 11.04.2009 11:15
Американским студентам запретили пользоваться Skype KPOT_f!nd Мировые новости 1 28.09.2006 03:47
Любителям квестов сюда!! FoX's Болталка 10 25.01.2005 20:42



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ