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

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

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

 
 Ответить  Открыть новую тему 
> Числовая последовательность, не получается
Lauri
сообщение 15.01.2006 14:10
Сообщение #1


Гость






Задача такая - определить, являются ли введённые числа возрастающей последовательностью?
Вот так я это сделал:
Код

program posled;
uses crt;
var a:string;
    i,j,k:integer;
    b:byte;
    begin
    clrscr;
    writeln('BBEDITE CTPOKY:');
    readln (a);
    j:=length (a);
    for i:=1 to j do
     begin
     if a[i]<a[i+1] then b:=1
     end;

     if b=1 then
     writeln ('DA') else writeln ('HET');
         readln;
     end.


Но не понимаю в чём ошибка - программа работает некорректно... Помогите плиз разобраться..
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2006 14:21
Сообщение #2


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

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

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


Зачем у тебя там строка ? И кстате я так думаю ты хотела использовать массив, ты уверена что он тут нужен ? можно и без него ...


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


Гость






А зачем же там массив использовать?... тем более я его там и не наблюдаю..) мне кажется со строкой там удобнее (можно длину определить) а в массиве так можно разве?
 К началу страницы 
+ Ответить 
Pola
сообщение 15.01.2006 14:30
Сообщение #4


Новичок
*

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

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


Тут либо надо искать противоречие:
Код
  b:=1; {предположение}
    for i:=1 to j-1 do {j-1!!!!}
     begin
       if a[i]>=a[i+1] then b:=0 {противоречие}
     end;


Либо
считать количетсво правильно расположенных пар
и если количество = j-1, то вся последовательность упорядочена
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2006 14:39
Сообщение #5


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

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

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


могу предложить такой вариант :

uses crt;
var
_pred,_succ,n,i : integer;
check : boolean;
begin

write('n = '); readln(n);

writeln('Введите последовательность');

i := 1; check := true;

readln(_pred);

while (i < n) and check do begin
readln(_succ);
check := (_pred < _succ);
_pred := _succ;
inc(i);
end;

writeln(check);

readln;
end.


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


Новичок
*

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

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


klem4, последовательность до конца не будет введена...
из файла было бы не страшно, а с клавы...


Хотя у Lauri скорее цифры сравниваются, чем числа...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2006 14:49
Сообщение #7


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

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

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


Можно сделать чтобы и до конца, какой только сысл ... представь сколько ты сэкономишь времени если у тебя в файле 100000 элементов а условие возрастания нарушается при первой проврке rolleyes.gif


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


Новичок
*

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

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


Я и говорю, что если бы был файл, то все ok,
а у нее с клавы...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2006 14:53
Сообщение #9


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

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

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


Ну и что ошибки то нету никакой, я имею в виду рпограмма завернаештся корректно .. можно убрать
and check
и все будет ок ...


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


Новичок
*

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

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


Есть такой выход
вместо readln поставить read в твоем варианте
и просить вввести все числа в одну строуку через пробел
тогда будет не заметно, что ты пользователя прервал на полуслове

Цитата(klem4 @ 15.01.2006 14:53) *

Ну и что ошибки то нету никакой, я имею в виду рпограмма завернаештся корректно .. можно убрать
and check
и все будет ок ...


если убрать
and checK
будет ошибка

Сообщение отредактировано: volvo - 5.11.2006 21:21
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2006 14:59
Сообщение #11


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

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

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


Точно, тогда можно сдеать вот так :

while (i < n)  do begin
readln(_succ);
if check then check := (_pred < _succ);
_pred := _succ;
inc(i);
end;


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


Гость






Pola, я не понял, ты умеешь только чужие решения критиковать? Свои шедевры ты считаешь зазорным выложить на форуме? dry.gif
 К началу страницы 
+ Ответить 
Pola
сообщение 15.01.2006 15:25
Сообщение #13


Новичок
*

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

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


volvo, зачем за других делать?
вот ошибку можно помочь найти

учаться на своих ошибках...
а у меня способности искать ошибки. smile.gif

У меня тоже есть такие способности - искать ошибки, так почему ты мне эти способности не даешь проявить на твоих программах? blum.gif Нехорошо...

Сообщение отредактировано: volvo - 15.01.2006 15:32
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lauri
сообщение 15.01.2006 16:09
Сообщение #14


Гость






Да это не выход, даже если read и через пробел, то всё равно некорректно... буду как-нибудь другим способом, благо способов сортировки предостаточно..) всё равно спасибо за помощь;)
 К началу страницы 
+ Ответить 
Pola
сообщение 15.01.2006 16:16
Сообщение #15


Новичок
*

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

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


volvo, а уменя пока по своим вопросов к тебе нет tong2.gif

а коды я давала... про стороны треугольника посмотри
и исправляй сколько хошь yes2.gif

Цитата(Lauri @ 15.01.2006 16:09) *

Да это не выход, даже если read и через пробел, то всё равно некорректно... буду как-нибудь другим способом, благо способов сортировки предостаточно..) всё равно спасибо за помощь;)


read и через пробел в проге klem4, а не в твоей

или цикл while в его же проге замени на последний им данный вариант (4 поста выше)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 15.01.2006 16:18
Сообщение #16


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

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

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


Чем не понравился вот этот вариант ? Это какраз ТО что тебе нужно, не используется массив и последовательность вводится ПОЛНОСТЬЮ

http://forum.pascalnet.ru/index.php?s=&sh...indpost&p=59065 - пост N11

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


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

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

 



- Текстовая версия 28.07.2025 7:12
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"