Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.06.2011, 16:48   #1
Liam_
Пользователь
 
Аватар для Liam_
 
Регистрация: 16.12.2010
Сообщений: 29
Стрелка Паскаль, ошибка в модуле

Вот задание: Составить модуль, который меняет знак у всех элементов целочисленного массива, не являющихся числами из ряда Фибоначчи.
Решение о том, является ли элемент массива числом Фибоначчи, производить в подпрограмме функции логического типа. Числами Фибоначчи называется ряд целых чисел, каждое из которых равно сумме двух предыдущих: 1, 2, 3 (=1+2), 5 (=2+3), 8 (=3+5), и так далее.

То есть например вводим: 1,2,3,4,5,6,7,8,9 должно получиться: 1,2,3,-4,5,-6,-7,8,-9


Код:
program fibonachi;
uses MODYL;
var n,i,k:integer;
    a:mas;
Function fib(AA:integer):integer;
var x:mas;
    j,c:integer;
begin
     X[1]:=1;	
     X[2]:=1;	
     For j:= 3 To 45 Do	
     X[j]:=X[j-1]+X[j-2];
     c:=0;
     for j:=2 to 45 do if AA=x[j] then c:=c+1;
     fib:=c;
end;
Begin
     writeln;
     write('n='); readln(n);
     for i:=1 to n do
     begin
          write ('a[',i,']=');read (a[i]);
     end;
     per(i,n,k,fib,a);
     for i:=1 to n do writeln ('a[',i,']=',a[i]);
end.


Код:
unit MODYL;
interface
     type mas=array [1..45] of integer;
          fun=function(b:integer):integer;
     Procedure per(i,n,k:integer; fib:fun; var a:mas);
implementation
     Procedure per(i,n,k:integer; fib:fun; var a:mas);
begin
     for i:=1 to n do
     begin
          k:=fib(a[i]);
          if k=0 then a[i]:=-a[i];
     end;
end;
begin
     writeln('AU-10d')
end.
Пишет Invalid procedure or function reference, но помимо этого по моему есть пара косяков, помогите правильно доделать
I wear the fez now. Fezes are cool..)

Последний раз редактировалось Liam_; 12.06.2011 в 16:48. Причина: Поправки
Liam_ вне форума Ответить с цитированием
Старый 13.06.2011, 10:29   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Модуль
Код:
Unit Modul_fib;
Interface
Function IzFib(Ch:Integer):Boolean;
Implementation
Function IzFib(ch:Integer):Boolean;
Var
  x1,x2,buf:Integer;
Begin
  IzFib:=False;
  x1:=1;
  x2:=1;
  While x2 < Ch do
  Begin
    buf:=x2;
    x2:=x1+x2;
    x1:=Buf
  End;
  IzFib:=x2=Ch
End;
End.
Основная программа
Код:
Program Fibb_with_Modul;
Uses CRT, Modul_fib;
Var
  Mas:array[1..10] of Integer;
  i:Integer;
Begin
  ClrScr;
  Randomize;
  For i:=1 to 10 do
  Begin
    Mas[i]:=Random(50);
    Write(Mas[i]:3)
  End;
  Writeln;
  For i:=1 to 10 do
  If Not IzFib(Mas[i]) then Mas[i]:=Mas[i]*(-1);
  For i:=1 to 10 do Write(Mas[i]:4);
  Readln
End.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ошибка в модуле (отсутствует определение процедуры). паскаль. semenova Помощь студентам 7 23.12.2010 23:35
InputQuery в модуле QDialogs _SERGEYX_ Общие вопросы Delphi 2 03.12.2010 17:44
движение в рисунке в модуле grapf kvas91 Паскаль, Turbo Pascal, PascalABC.NET 4 15.08.2010 13:41
Процедуры в модуле Pascal n0rma1 Помощь студентам 3 01.05.2010 11:10
MidletPascal Модуль в модуле Kn793 Помощь студентам 4 25.09.2008 22:45