Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 2
1

Программа с процедурами не проходит тесты

30.11.2015, 08:53. Показов 631. Ответов 1

Добрый день
Пишу сюда, так как не могу найти ошибку самостоятельно.

Код программы с процедурами(Первый раз использую) по синтаксису программа принимает всё, но на тестах вырубается(Без процедур всё работало). Цель найти значение в строке такое, что :
1.Оно расположено после первого положительного(np1 - номер)
2.Меньше U(npU - номе последнего меньше U)

U мы вводим сами


Вот код

Delphi
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
97
98
99
100
101
102
103
104
105
106
program Project2;
 
{$APPTYPE CONSOLE}
uses
  SysUtils;
type mas=array[1..20] of integer;
var
n,i,npU,np1,U, K : integer;
A : mas;
 
Inf,Res : text;
 
procedure vvod(out A:mas; var Inf,Res:textfile; out n,U :integer);
var i:integer;
begin
Readln(Inf,n);
Readln(Inf,U);
for i:=1 to n do Read(Inf,A[i]);
Writeln(Res,'Kol-vo elementov =',n);
Writeln(Res,'Chislo U =',U);
Write(Res,'Massiv A:=');
for i:=1 to n do
begin
  Write(Res,A[i],' ');
  end;
  Writeln(Res);
end;
 
 
    Procedure Poisknp1(const A:mas; var n:integer;out np1:integer);
var
i:integer;
     begin
np1:=0; i:=1;
while (np1=0) and (i<=n) do
begin
  if A[i]>0 then np1:=i;
  inc(i);
  {Writeln(Res,'Nomer pervogo>0:= ',np1);{Пошаговый  вывод}
end;
end;
 
    Procedure PoisknpU(var A:mas; var n:integer;out npU:integer);
var
i: integer;
       begin
npU:=0;
i:=n;
while (npU=0) and (i>0) do
begin
  if A[i]<U then
  Begin
    npU:=i;
    {Writeln(Res,'Nomer poslednego <U:= ',npU);{Пошаговый  вывод}
  end;
i:=i-1;
end;
      end;
     Procedure PoiskK(var A:mas; var npU,np1: integer;out K:integer);
var
i : integer;
         begin
 
  K:= A[np1];
for i :=(np1+1) to npU do
  If (A[i]>K) and ( A[i]<U) then
  Begin
    K:=A[i];
  end;
        end;
 
Begin
assign(Inf, paramstr(1));reset(Inf);
assign(Res,paramstr(2));rewrite(Res);
 
vvod(A,Inf,Res,n,U);
Poisknp1(A,n,np1);
PoisknpU(A,n,npU);
PoiskK(A,npU,np1,K);
 
 
 
 
 
 
 
   {АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ} If np1=0  then
   Begin
Writeln(Res,'Net Elementov > 0');Close(Res);Exit;
   end;
    {АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ}If npU=0 then
      Begin
   Writeln(Res,'Net elementov <U');Close(Res);Exit;
      end;
  {АЛЬТЕРНАТИВНОЕ РЕШЕНИЕ} If np1>npU  then
   Begin
   Writeln(Res,'Nevozmojno nachat poisk - np1 > npU, net zoni poiska');Close(Res);Exit;
   end;
 
 
 
 Writeln(Res,'Max Element < U =',K);
 
 Close(Inf);Close(Res);
  { TODO -oUser -cConsole Main : Insert code here }
end.

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

Надеюсь, что вы сможете помочь!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.11.2015, 08:53
Ответы с готовыми решениями:

Программа не проходит тесты
Здравствуйте, решаю задачу: Имеется список людей с указанием их фамилии, имени и даты рождения....

Программа не проходит некоторые тесты
Доброго времени суток, друзья! Решаю задачу: вывод стандартный вывод Дана строка, состоящая...

Программа не проходит определённые тесты
Вот такой вот вышел код для данной задачи но он почему-то не проходит выше второй группы хотя если...

Программа не проходит все тесты на тестовой системе
Дано число K. Дальше следуют K блоков. В каждом блоке есть 4 числа a,b и c,d . Числа натуральные и...

1
0 / 0 / 0
Регистрация: 31.10.2015
Сообщений: 2
03.12.2015, 16:24  [ТС] 2
Переустановил Делфи и немного перебрал код - нет проблемы)
Спасибо за внимание))
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.12.2015, 16:24

Программа не проходит тесты по времени, посоветуйте как исправить
Добрый день, не могли бы вы подсказать по задаче. Имеется круг с целыми числами от 1 до n. Числа...

Не проходит тесты
Программа не проходит почему-то тесты, хотя вроде работает, подскажите пожалуйста на счёт EOF, мне...

Не проходит все тесты
#include &lt;iostream&gt; #include &lt;cmath&gt; int main() { long long m, n; std::cin &gt;&gt; m &gt;&gt; n; ...

Не проходит тесты по времени
Здравствуйте. Вот сижу перебираю олимпиадные задачи, и столкнулся с такой проблемой: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.