Страница 1 из 1

Help!!!

Добавлено: 07 мар 2007, 16:27
Molot
Помогите пожалуйсто решить срочно две задачки.

1) На тему "Строковые переменные".

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


2) На тему "Процедуры и функции, рекурсии".

Составить программу «Мыльные пузыри» из К окружностей разного диаметра, разного цвета и появляющихся в произвольных местах экрана. Рисование одного мыльного пузыря оформить в виде процедуры, где координаты центра, радиус, цвет – входные параметры.

Зарание большое спасибо!

Re: Help!!!

Добавлено: 07 мар 2007, 20:46
Колядин Максим
1. Кратко - времени в обрез: создаёшь цикл по строке, делишь строку на слова, и если

Код: Выделить всё

coded:=false;
....
if length(slovo)=5 then
  if (ord(slovo[3]) mod 2 = 0) then coded:=true else coded:=false;
2. Здесь, наверное, на графике. Сразу опишу код:

Код: Выделить всё

uses crt,graph;
var r,c,x,y,k,k2,mx,my: integer; {r-радиус; с - цвет; x,y - координаты центра}
gd,gm: integer;

procedure paint_bubble;
begin
randomize;
x:=random(mx);
y:=random(my);
c:=random(15);
r:=random(50);      {например -);}
setcolor(c);
circle(x,y,r);
end;



begin
write('Введите число пузырей: '); readln(k);
k2:=0;
gd:=detect;
initgraph(gm,gd, '');
mx:=getmaxx;
my:=getmaxy;
setbkcolor(15);
while k2<>k do begin
paint_bubble;
inc(k2);
end;
readkey;
closegraph;
end.

Re: Help!!!

Добавлено: 08 мар 2007, 02:23
lACl
Могу помоч с программой. Стучись в аську. Вот номер: 367244151

Re: Help!!!

Добавлено: 09 мар 2007, 00:22
lACl
если нужна помощь - стусись в аську, помогу. вот номер: 367244151

Re: Help!!!

Добавлено: 09 мар 2007, 10:04
Хыиуду
Колядин Максим писал(а):

Код: Выделить всё

coded:=false;
....
if length(slovo)=5 then
  if (ord(slovo[3]) mod 2 = 0) then coded:=true else coded:=false;
То же можно и покороче

Код: Выделить всё

if length(slovo)=5 and not odd(ord(slovo[3])) then coded:=true else coded:=false;
Второе тоже можно сократить:

Код: Выделить всё

uses crt,graph;
var k,k2,gd,gm: integer;

procedure paint_bubble;
begin
setcolor(random(15));
circle(random(getmaxx),random(getmaxy),random(50));
end;

begin
randomize;
write('Введите число пузырей: '); readln(k);
gd:=detect;
initgraph(gm,gd, '');
for k2:=1 to k do paint_bubble
readkey;
closegraph;
end.
[/QUOTE]

Re: Help!!!

Добавлено: 09 мар 2007, 10:33
somewhere
&quot писал(а):if length(slovo)=5 and not odd(ord(slovo[3])) then coded:=true else coded:=false;
можно еще короче

Код: Выделить всё

coded := (length(slovo)=5 and not odd(ord(slovo[3])));

Re: Help!!!

Добавлено: 09 мар 2007, 14:01
Хыиуду
Согласен, только тогда length(slovo)=5 надо заключить в скобки, иначе сначала попытается выполниться 5 and not odd