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

» Добро пожаловать, Гость: Войти | Регистрация
    Форум
    Информационные технологии
        Турбо Паскаль. Программирование на 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
  

Lucian


Удален

Где взять библиотеки Dos, WinDos?

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



Долгожитель


Определить является ли заданный текст зашифрованной телеграммой – т.е. она состоит из слов, каждое из которых представляет набор из пяти символов, каждый из которых является буквой русского алфавита, причем средняя буква в каждом слове имеет четное значение кода.


Дело нехитрое. Я уже предполагаю, что ты заранее удалил лишение пробелы, а так же в конце добавил 1. Тогда весь смысл сводиться к тривиальным вещам.

if length (s) mod 6=0
  then flag:=true
  else flag:=false;
{понятно, что если длина каждого слова +1 пробел, то длина всей строки должна быть кратна 6}
i:=0;
while flag or (j<length(s)) do
begin
  inc (j);
  if (s[j]=' ') and (j mod 6<>0) {если какой-то  не 6 символ пробел, то не шифровка}
     then flag:=false;
  if (j mod 3 =0) and (ord (s[j]) mod 2<>0) {если средний символ не четен}
  if (j mod 6 = 0) and (s[j]<>' ') {если шестой символ не пробел, т. е. слово больше чем 5 символов, то выходим}
    then flag:=false  
     then flag:=false;
end;  

Ну и в итоге во flag будет храниться истинность высказывания о том, что данное предложение шифровка.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 9 марта 2007 22:48 | IP
Guest



Новичок

Помогите пожалуйста!!!
Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотреть методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов с получением нового объекта-многочлена, вывод на экран (в файл) описания многочлена. Мне желательно на делфи.
Плиииззз

Всего сообщений: Нет | Присоединился: Never | Отправлено: 9 марта 2007 22:54 | IP
KMA



Долгожитель


Привет! Помогите дописать игру, пожалуйста. Не могу сделать, чтобы шарик двигался самостоятельно(т. е. ничего не нажимая) одновременно с платформой(движение стрелочками). И чтобы при нажатии Esc игра завершалась. У меня получается движение только по отдельности.


В общем ты бы сделал еще одну процедурку типа start_dvigenie. Я так понял, что тебе надо чтобы они двигались вначале одинаково, а по нажатию клавиши пробел мячик улитал. Вот мои идеи:
1) Загружаем в единый образ сразу мяч и платформу, т. е. это одно большое изображение (ведь они же не разлучны, до нажатия клавиши). Соответственно с ним (с таким большим прямоугольником в котором и загружено сразу мяч и платформа) и работаем, когда нажата нужная клавиша, ты просто стираешь этот образ, выводишь образ мяча и платформы уже по отдельности.
2) Работать сразу с мячом и платформой, в принципе тоже можно, но тогда тебе придется писать в два раза больше.

Ты бы по подробнее написал откуда и что ты загружаешь, а то честное слово как в пустоте плаваешь.  

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 9 марта 2007 23:07 | IP
Speedy


Удален

Еще разочек попробую объяснить. Мне нужно, чтобы при запуске программы шарик автоматически начал движение, и чтобы при этом можно было бы стрелочками двигать платформу(т. е. шарик не должен останавливаться).

Вот весь код программы:

Uses crt,Graph;
Var Driver,Mode:integer;
   SizeP,SizeC,x1,y1,x2,y2,x3,y3,R,x4,y4,x5,y5:integer;
   p,pp:pointer;
   key,key2:char;


procedure charik(x3,y3,R:integer);
Begin
  x3:=30; y3:=20; R:=5;
  SetColor(blue);
  SetFillStyle(1,blue);
  Circle(x3,y3,R);
End;



procedure dvigenie_charika;
Const ch:set of char=[#27,#077,#075];
Begin
  x4:=25; y4:=15;
  x5:=35; y5:=25;
  SizeC:=ImageSize(x4,y4,x5,y5);
  GetMem(pp,SizeC);
  GetImage(x4,y4,x5,y5,pp^);
  repeat
        begin
           PutImage(x4,y4,pp^,XorPut);
              begin
                 x4:=x4+random(10);
                 y4:=y4+random(50);
                 PutImage(x4,y4,pp^,XorPut);
              end;
              delay(20000); {pauza}
              if y4>=GetMaxY then
                 begin
                    y4:=0;
                    PutImage(x4,y4,pp^,XorPut);
                 end;
              if x4>=GetMaxX then
                 begin
                    x4:=random(500);
                    PutImage(x4,y4,pp^,XorPut);
                 end;
        end;
  until keypressed;
  FreeMem(pp,SizeC);
End;



procedure platform(x1,y1,x2,y2:integer);
Begin
  x1:=GetMaxX div 2; y1:=GetMaxY-50;
  x2:=(GetMaxX div 2)+70; y2:=(GetMaxY-50)+20;
  SetColor(blue);
  SetFillStyle(1,blue);
  rectangle(x1,y1,x2,y2);
End;

procedure dvigenie_platformi;
Const ChValid:set of char=[#27,#077,#075];
Begin
  x1:=GetMaxX div 2; y1:=GetMaxY-50;
  x2:=(GetMaxX div 2)+70; y2:=(GetMaxY-50)+20;
     SizeP:=ImageSize(x1,y1,x2,y2);
     GetMem(p,SizeP);
  {dvigenie myacha}
     GetImage(x1,y1,x2,y2,p^);
     repeat
        repeat key:=readkey until key in ChValid;
           case key of
           #077:
              begin
                 PutImage(x1,y1,p^,XorPut);
                    begin
                       x1:=x1+20;
                       PutImage(x1,y1,p^,XorPut);
                    end;
                    delay(30000); {pauza}
                    if x1>GetMaxX then
                       begin
                          x1:=0;
                          PutImage(x1,y1,p^,XorPut);
                       end;
              end;
           #075:
              begin
                 PutImage(x1,y1,p^,XorPut);
                    begin
                       x1:=x1-20;
                       PutImage(x1,y1,p^,XorPut);
                    end;
                    delay(30000); {pauza}
                    if x1<0 then
                       begin
                          x1:=GetMaxX;
                          PutImage(x1,y1,p^,XorPut);
                       end;
              end;
           end;
     until key=#27;
FreeMem(p,SizeP);
End;



BEGIN
clrscr;
  {naxodim modul Graph}
  Driver:=Detect;
  InitGraph(Driver,Mode,'C:\pascal\pascal\minimal');
  if GraphResult<>0 then
     begin
        writeln('!!!ne udalos nayti modul graph!!!');
        exit;
     end
  else
  SetbkColor(green);
  OutTextXY(260,20,'IGRA');
  charik(x3,y3,R);
  platform(x1,y1,x2,y2);
  dvigenie_platformi;
  dvigenie_charika;
CloseGraph;
END.

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 10 марта 2007 10:21 | IP
Speedy


Удален

Ну чего, никто не знает как задать движение???

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 11 марта 2007 11:57 | IP
KMA



Долгожитель

Speedy, у меня вопрос, а шариком ты по смыслу должен управлять или нет?  

Самый простой вариант, это запихай свое движение шарика в процедуру движения платформы, а то так у тебя получается, что выполняется вначале движение платформы, а потом шарика.  

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 11 марта 2007 18:25 | IP
Speedy


Удален

Нет шарик должен двигаться самостоятельно.

И я уже пробовал запихивать движение шарика в процедуру движение платформы, но чего-то не получается

Всего сообщений: N/A | Присоединился: N/A | Отправлено: 11 марта 2007 19:44 | IP
pivovar


Новичок

Помогите пожалуйста! Вводится текст, мне надо преобразовать заглавную гласную букву русского алфавита в малую. Как это правильно написать на Pascale.
Я вот что хочу, допустим s='Ананас' после мреобразования чтобы стало s='ананас'



Всего сообщений: 10 | Присоединился: декабрь 2006 | Отправлено: 12 марта 2007 19:45 | IP
KMA



Долгожитель


Вводится текст, мне надо преобразовать заглавную гласную букву русского алфавита в малую. Как это правильно написать на Pascale.



Это делается так:

if ord (s[1])<144
  then s[1]:=chr (ord(s[1])+32)
  else s[1]:=chr (ord(s[1])+80);

Это для первого символа, соответственно для Ё и ё работать не будет, но если очень надо могу написать. Я использовал ASCII таблицу символов, соответственно функции ord и chr возвращает номер заданного символа, вторая же возвращает символ по заданному номеру.

Всего сообщений: 940 | Присоединился: декабрь 2005 | Отправлено: 12 марта 2007 23:22 | 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