IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Рекурсия и графика
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Знаяит вопрос такой, а точнее задача:
Составить рекурсивное определение функции(процедуры) сформировывающую матрицу вида
*****
***
*
Как обычно она решается я знаю,но как рекурсивно?
Код
uses
crt;
var
i:byte;
n,x:integer;
begin
writeln('Vvesti znachok');
readln(n);
ClrScr;
i:=3;
if i=3 then writeln(n,n,n,n,n);
i:=i-1;
if i=2 then writeln(' ',n,n,n );
i:=i-1;
if i=1 then writeln(' ',n);
if i=0 then writeln ;
readkey;
end.


И ещё если нетрудно какие мысли по задаче:
Составить программу вывода на экран окружности.При нажатии клавиши КУРСОР вправо окружность вращается вокруг своего диаметра слева направо,при нажатии клавиши КУРСОР влево - справа налево.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


Код

Procedure GoGo(ii : Integer);
var j : Byte;
Begin
  If ii>0 then
  Begin
    For j:=1 to ii do Write('*');
                Writeln;
    GoGo(ii-2);
  End;
End;


Что значит "вращается вокруг диаметра"? Может вокруг оси Y?

Сообщение отредактировано: APAL -


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


ну во первых твой вариант тоже странновытый какой-то

вот обычный не рукурсивный вариант, щас сделаем с рекурсией :

Код

uses crt;

type
   TMx = array[1..10, 1..10] of integer;
var
   mx : TMx;
   t : integer;

procedure Input(var x : TMx; n : integer);
var
   i,j : integer;
begin
   randomize;
   for i := 1 to n do begin
      writeln;
      for j := 1 to n-i+1 do begin
         x[i,j] := random(10);
         write(x[i,j]:2,' ');
      end;
   end;

end;
begin
   clrscr;
   Input(mx,10);
   readln
end.


а вот и Apal с рекурсией подоспел ;)
опоздал)

Сообщение отредактировано: klem4 -


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






procedure print(count: integer; ch: char);
var i: integer;
begin
if count >= 1 then begin

for i := 1 to count do write(ch);
writeln;

print(count - 2, ch);

end;
end;

begin
print(5, '*');
end.



P.S. При чем здесь графика? blink.gif
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Смотрю...
*****

Группа: Пользователи
Сообщений: 1 055
Пол: Мужской
Реальное имя: Пшеничный Алексей Анатольевич

Репутация: -  6  +


По моему я поторопился... rolleyes.gif

klem4 : И я ... зато у автора теперь куча вариантов разных smile.gif)

Сообщение отредактировано: klem4 -


--------------------
Если что-то не делает того, что вы запланировали ему делать - это еще не означает, что оно бесполезно.
--------------------
Прежде, чем задать вопрос - Правила :: FAQ :: Поиск
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Да но в данных случаях получается
*****
***
*
а надо(см в прикреплённом файле)


Прикрепленные изображения
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Perl. Just code it!
******

Группа: Пользователи
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


получается так, как ты дал в первоначальном задании mad.gif


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






var
n: integer;

procedure print(count: integer; ch: char);
var i: integer;
begin
if count >= 1 then begin

for i := 1 to (n - count) div 2 do write(' ');
for i := 1 to count do write(ch);
writeln;

print(count - 2, ch);

end;
end;

begin
n := 5;
print(n, '*');
end.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 17.12.2025 22:49
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name