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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2012, 18:14   #1
Rebelition
Пользователь
 
Аватар для Rebelition
 
Регистрация: 03.06.2011
Сообщений: 33
Восклицание Найдите ошибку в задаче

Я в отчаяние, пожалуйся посмотрите на мой код и скажите, что не так...
Саму задачу я в txt вложу, она большая.
Опишу некоторые переменные: S - сумма всех чисел, KolPod - кол-во чисел в подъеме, FinalKolPod - окончательное кол-во чисел в подъеме, Pev - первое число подъема, Pos - последнее число подъема.
Цитата:
program c4;
uses crt;
var a,s,g,KolPod,FinalKolPod,Pev,Pos,Fi nalPev,FinalPos:integer;

BEGIN
clrscr;
S:=0; g:=0; KolPod:=0; FinalKolPod:=0; Pev:=0; Pos:=0;
repeat
writeln(введите число);readln(a);
S:=S+1;
IF (a>g) then
begin
KolPod:=KolPod+1;
if (Pev=0) then Pev:=a else
Pos:=a;
end;
ELSE
if (FinalKolPod<KolPod) then
begin
FinalKolPod:=KolPod;
FinalPev:=Pev;
FinalPos:=Pos;
Pev:=0;Pos:=0;
end;
g:=a;
until(a=0);
writeln(S);
writeln(FinalPev+FinalPos-FinalKolPod);
readln;
END.
Вложения
Тип файла: txt Текст задачи.txt (1.1 Кб, 120 просмотров)
Rebelition вне форума Ответить с цитированием
Старый 15.03.2012, 20:09   #2
whatever
a.k.a. Skull
Форумчанин
 
Регистрация: 17.11.2009
Сообщений: 963
По умолчанию

Цитата:
Высотой подъема называется разность XT+N-XT
Судя по входным/выходным данным это "элемент [XT+N] - элемент [XT]"

А вообще, код что-то сильно мудреный.

Код:
 var
 a,s,g,Pev,Posl:integer;//POS - стандартная функция, лучше не переобозначать
 hight:integer;
 BEGIN
 clrscr;
 S:=0;
 g:=0;
 Pev:=0;
 hight:=0;
repeat
  writeln('введите число');
  readln(a);
  if a<>0 then
    S:=S+1;
  IF (a>g) then
    begin
      if (Pev=0) then
        Pev:=a
      else
        Posl:=a;
    end
  ELSE
    if (Posl-Pev)>hight then
      begin
        hight:=Posl-Pev;
        pev:=a;
      end
    else
      pev:=a;
  g:=a;
until(a=0);
writeln(S);
writeln(hight);
readln;
END.
И еще, мне всегда интересно было, как можно писать программы с такими ошибками:
Код:
writeln(введите число)
Код:
 end;
 ELSE
Это ведь ошибки не в алгоритме, тупо синтаксис. Неужели сам даже не запускал?
Все тривиальное просто

Последний раз редактировалось whatever; 15.03.2012 в 20:13.
whatever вне форума Ответить с цитированием
Старый 17.03.2012, 12:23   #3
Rebelition
Пользователь
 
Аватар для Rebelition
 
Регистрация: 03.06.2011
Сообщений: 33
По умолчанию

Цитата:
Сообщение от whatever Посмотреть сообщение
Это ведь ошибки не в алгоритме, тупо синтаксис. Неужели сам даже не запускал?
Спасибо большое. Я тупо точку с запятой не увидел. Всё моя невнимательность(
Rebelition вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найдите ошибку в задаче Npwas Помощь студентам 5 05.12.2011 02:11
найдите ошибку Славик__077 Общие вопросы C/C++ 10 31.01.2011 15:15
найдите ошибку в задаче!!!! Ketrin29 Помощь студентам 1 09.01.2011 23:53
Найдите, пожалуйта,ошибки в задаче!очень срочно! Wia Помощь студентам 2 06.12.2008 20:02