Форум
» Назад на решение задач по физике и термеху
Регистрация | Профиль | Войти | Забытый пароль | Присутствующие | Справка | Поиск

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на Pascal
Отметить все сообщения как прочитанные   [ Помощь ]
» Добро пожаловать на форум "Информационные технологии" «

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]
Модераторы: paradise, KMA
  

bairt


Удален

пробовал конечно просто с этой задачкой про радиус запарился и не знаю что с ней делать...

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 25 апр. 2006 12:40 | IP
miss_graffiti


Долгожитель

что именно делал? давай код.

Всего сообщений: 670 | Присоединился: сентябрь 2005 | Отправлено: 25 апр. 2006 19:23 | IP
bairt


Удален

uses crt;
type InfoSphere=record
    x,y,z,r:real;
end;

const n=10;
var InfoSp:InfoSphere;
   f:text;
   i:integer;
   Spheri: array[1..n] of InfoSphere;
   Rnew,Xnew,Ynew,Znew:real;

function Lenght(x0,y0,z0,x1,y1,z1:real):real;
begin
    Lenght:=sqrt(sqr(x0-x1)+sqr(y0-y1)+sqr(z0-z1));
end;


procedure SearchMinSpher(x0,y0,z0,r0,x1,y1,z1,r1:real);
var L:real;
begin
  L:=Lenght(x0,y0,z0,x1,y1,z1);
  if (L=0) then
  begin
     Xnew:=x0;
     Ynew:=y0;
     Znew:=z0;
     if (r1>r0) then
     begin
        Rnew:=r1;
     end
     else
     begin
        Rnew:=r0;
     end;
  end
  else
  begin
     if (r1>r0) and ((r1-r0)>=L) then
     begin
           Rnew:=r1;
           Xnew:=x1;
           Ynew:=y1;
           Znew:=z1;
     end;
     if (r0>r1) and ((r0-r1)>=L) then
     begin
           Rnew:=r0;
           Xnew:=x0;
           Ynew:=y0;
           Znew:=z0;
     end;
     Rnew:=(r0+r1+L)/2;
     Xnew:=(Rnew-r0)*(x1-x0)/L+x0;
     Ynew:=(Rnew-r0)*(y1-y0)/L+y0;
     Znew:=(Rnew-r0)*(z1-z0)/L+z0;

  end;
end;

begin
  assign(f,'3_input.txt');
  reset(f); {otkrivaem file}
  with InfoSp do
  begin
     for i:=0 to 4*n do
     begin
        read(f,Spheri[i div 4].x);
        read(f,Spheri[i div 4].y);
        read(f,Spheri[i div 4].z);
        read(f,Spheri[i div 4].r);
     end;
     Rnew:=Spheri[1].r;
     Xnew:=Spheri[1].x;
     Ynew:=Spheri[1].y;
     Znew:=Spheri[1].z;
     for i:=2 to n do
     begin
        SearchMinSpher(Xnew,Ynew,Znew,Rnew,Spheri{{i].x,Spheri{{i].x,Spheri{{i].x,Spheri{{i].x);
     end;

  end;
  close(f);
end.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 26 апр. 2006 9:01 | IP
bairt


Удален

если что можете подправить...

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 26 апр. 2006 9:03 | IP
brood


Удален

Тут возникла проблема: когда начинаю пользоваться видеостраницами изображение дёргается, похоже на то что в видеопамяти "сбилась развёртка" и отображается часть первой страници и часть второй. А хотелось бы плавной анимации движения. Ниже есть упрощённый вариант моей программы. Если кто-нибудь в этом разбирается помогите пожалуйста, а то игру написал а анимация хромает!

Uses Graph;
Var x,y,GrDr,GrMd,i,Buffer,Activ,Visible:integer;
   key:char;

Procedure Krug(X:integer);{Рисуем две окружности используя  заданную координату по оси Х }
   Var y:integer;
   Begin

   y:=getmaxy div 2;
   SetFillStyle(1,6);
   Setcolor(10);
   Ellipse(X+15,y-14,360,0,5,25);
   Ellipse(X+15,y-14,360,0,25,5);
   FloodFill(X+14,y-13,10);
   End;

Begin
Activ:=1; Visible:=0; {Задаём номера активной и видимой страниц}
GrDr:=Detect;
Initgraph(GrDr,GrMd,'h:\FMF\students\student\125\TP\BGI');

Repeat
  SetActivePage(Activ); {Устанавливаем активную страницу}
  SetVisualPage(Visible); {Устанавливаем видимую страницу}
  Buffer:=Activ; Activ:=Visible; Visible:=buffer; {Меняем номера активоной и видимой страници, далее мы

рисуем на неотображаемой странице}
  Cleardevice;

   If X<GetMaxX then X:=X+2 else X:=0; {Задаём координату Х и рисуем фигуру}
   Krug(X);
   Delay(1000) ;

  If keypressed Then key:=readkey; {Если нажата клавиша Esc то выходим из программы}
Until key=#27;

End.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 26 апр. 2006 9:26 | IP
KMA



Долгожитель

brood ты знаешь у меня была похожая ситуация, но только я нашел более простое решение своей задачи, а так эта ошибка устраняется путем определения драйвера, и точного разрешения. Хотя может это помогло только мне, короче, надо прописать один из стандартных драйверов для своей машины... И у меня еще один вопрос, ты случаем на Live пишешь, ну это так называемая умная игра с жителями, где они размножаются и гибнут по определенным правилам???

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 26 апр. 2006 22:23 | IP
KMA



Долгожитель

biart
смотри внешняя ссылка удалена я там все расписал, все недочеты, а так, на мой взгляд задача решена верна, если принять все условия... поэтому смотри сам... над второй, обещаю подумать

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 27 апр. 2006 22:17 | IP
VF



Administrator

Вопрос из другой темы (ее закрыл):

Цитата: 4elove4ek написал 30 апр. 2006 14:51
Взял себе курсовую работу - "создание вируса в turbo pascal". А сейчас не могу найти ничего простого и ясного для меня в инет  по этой теме... Вирус может быть совсем не злым... я просто не знаю вообще что он должен делать и как его написать... Паскаль учу уже 3 года.. но с таким раньше не сталкивался... Нахожу вирусы написаные с помощью assembler'а и прочих хитростей... но для меня всё это далёко и не нужно в использовании.
Помогите пожалуйста, может быть каким-нибудь исходником, или просто советом, или ссылкой.
Заранее благодарен!


В чем отличие вирусов от других программ - они сами распространяются. Так что нужно придумать алгорим, по которому вирус будет передаваться с зараженного на другие компьютеры.

Поисковики на фразу "virus pascal" (в т.ч. и по русски) выдают достаточно много информации. Например:
внешняя ссылка удалена
внешняя ссылка удалена
внешняя ссылка удалена
внешняя ссылка удалена
внешняя ссылка удалена

Всего сообщений: 3110 | Присоединился: май 2002 | Отправлено: 30 апр. 2006 14:38 | IP
Guest



Новичок

Кто нибудь поможет решить пару задачек:

1) Дана матрица A(n,m). Определить k - количество "особых" элементов массива А, считая элемент особым, если в его строке слева от него находиться элементы меньше его, а справа - больше.

2) В одномерном массиве A(n) все элементы не равные нулю, переписать (сохраняя их порядок) в начало массива, а нулевые элементы - в конец массива (новый массив не задавать).

Заранее благодарен. )))

Всего сообщений: Нет | Присоединился: Never | Отправлено: 2 мая 2006 20:20 | IP
KMA



Долгожитель

Помогу, но не более того... Давай, излагай мысли...  Решим однозначно, но хотя бы сам попытайся... Вдруг получиться.  Надеюсь наши понимания слова "помочь" сходяться, помочь -- значит рассказать где ошибка, или недочет, или почему не работает прога, а не решить...


(Сообщение отредактировал KMA 2 мая 2006 20:40)

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 2 мая 2006 20:39 | IP

Эта тема закрыта, новые ответы не принимаются

Переход к теме
<< Назад Вперед >>
Несколько страниц [ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 ]

Форум работает на скрипте © Ikonboard.com