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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.03.2009, 14:06   #1
katya36
Пользователь
 
Аватар для katya36
 
Регистрация: 19.12.2008
Сообщений: 51
Злость Ф-ции и процедуры. В чём ошибка??? Программа не работает!:(

{Пусть даны целые числа a1...an. Если в данной последовательности ни одно
четное число не расположено после нечетного, то получите все отрицательные
члены последовательности, иначе- все положительные. Порядок следования чмсел в
обоих случаях замените обратным.}
Код:
program p75ex39;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const
  n=100;
Type
  mass=array[1..n] of integer;



procedure InputMass(var A:mass);

var i:integer;

begin

for i:=1 to n do
  read(A[i]);
  readln
end;



procedure PrintNeg(A:mass);
var i:integer;
begin
  for i:=1 to n do
    begin
      if A[i]<0 then writeln(A[i]);

    end;
end;

procedure PrintPos(A:mass);
var i:integer;
begin
  for i:=1 to n do
    begin
      if A[i]>0 then writeln(A[i]);

    end;
end;



function proverka(A:mass):boolean;
var
  i:integer;

begin
  i:=0;
  repeat
    i:=i+1
  until
    (odd(A[i])=true) or (i=n);
  if i=n then proverka:=true
  else
    begin
      repeat i:=i+1 until (odd(A[i])=false) or (i=n);
      proverka:=true;
    end;

end;



Где ошибка?? исправьте меня пожалуйста!

Последний раз редактировалось Stilet; 03.03.2009 в 14:08.
katya36 вне форума Ответить с цитированием
Старый 03.03.2009, 14:09   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Добавь в конец
Код:
var m:mas;
Begin
 InputMass(mas);PrintNeg(mas);
End.
А что за проверка, я не знаю.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.03.2009, 14:34   #3
alex_fcsm
Участник клуба
 
Аватар для alex_fcsm
 
Регистрация: 10.11.2008
Сообщений: 1,502
По умолчанию

как я понял Вам нужно отслеживать есть ли после нечетных чисел хоть одно четное(1 13 5 17 9 21 ?????....), если есть то все числ делать отрицательными. При выводе менять порядок (for i:=n downto 1)


Функцию проверки я бы написал вот так: ищем первое нечетное число и проверяем есть ли после него четные
Код:
function proverka(A:mass):boolean;
var  i,j:integer;

begin
i:=0;
proverka:=true;
repeat
inc(i);
until (a[i] mod 2=1)or(i=n);
for j:=i+1 to n do
 if a[j] mod 2 =0 then proverka:=false;
end;
(4 14 12 6 7 3 5 1) - true
(3 1 2 6 8 9 12 13 14) - false ИМХО

А программа(Вы только выложили процедуры и функции) будет выглядеть так
Код:
var m:mass;
Begin
 InputMass(m);
 if Proverka(m) then PrintPos(m)
    else PrintNeg(m);
End.
Правильность PrintPos и PrintNeg на Вашей совести
Нормальное состояние техники - нерабочее, все остальное частный случай.

Последний раз редактировалось alex_fcsm; 03.03.2009 в 14:41.
alex_fcsm вне форума Ответить с цитированием
Старый 05.03.2009, 12:55   #4
katya36
Пользователь
 
Аватар для katya36
 
Регистрация: 19.12.2008
Сообщений: 51
По умолчанию

Alex, спасибо, Вы очень помогли мне! Теперь до меня окончательно всё дошло)))
katya36 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В чём ошибка? Roman Общие вопросы C/C++ 2 24.12.2008 01:42
В чём ошибка??? pasha_1 Общие вопросы C/C++ 11 25.11.2008 01:26
Не работает исходник. В чём проблемма? AngelOfDeath Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 13.11.2008 18:38
Не понимаю в чём ошибка Editor Общие вопросы Delphi 4 24.04.2008 08:00
Подскажите в чём ошибка! Irat Паскаль, Turbo Pascal, PascalABC.NET 3 18.02.2008 17:13