Вопрос № 30940: Привет!помогите решить задачу:
дано нат число. Установить, является ли последовательность его цифр при просмотре их справа налево упорядоченной по возрастанию.Напримкр, для числа 5321 ответ положительный для 9663-отрицательный.Решить используя ци...Вопрос № 31008: Здраствуйте.
Помогите решить задачку:
Пусть дан текстовый файл. Создайте два выходных файла: в один перепишите из каждой строки первые p слов(p задается вводом), в другой - оставшиеся. Если в строке меньше чем p слов, то во втором файле соотв...Вопрос № 31015: Здраствуйте.
По поводу прошлого вопроса. Задачу я решил так сказать наполовину.
В общем во втором цикле while, выполняю пока не конец переменной s(#13 возврат каретки по-моему), затем ищу пробел - нашел значит первое слово закончилось, дальше...
Вопрос № 30.940
Привет!помогите решить задачу:
дано нат число. Установить, является ли последовательность его цифр при просмотре их справа налево упорядоченной по возрастанию.Напримкр, для числа 5321 ответ положительный для 9663-отрицательный.Решить используя цикл с постусловием
Отправлен: 06.12.2005, 22:28
Вопрос задал: Slim (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Romodos
Здравствуйте, Slim!
Пример в приложении
Просто идём циклом по цифрам числа
Приложение:
--------- FAQ me off!
Ответ отправил: Romodos (статус: Студент)
Отправлен: 07.12.2005, 06:05
Отвечает: sir henry
Здравствуйте, Slim!
Вы сначала сами попробуйте, а потом уже спрашивайте о том, что неполучилось. А на халяву никто Вам делать не будет. Лоботрясов не любят нигде.
Ответ отправил: sir henry (статус: Академик)
Отправлен: 07.12.2005, 09:52
Отвечает: Boriss
Здравствуйте, Slim!
Все гораздо проще можно решить: перевести в строку с помощью Str, а потом циклом сравнить символы. Коды символов следуют в том же порядке, что и цифры.
Str(i, s);
upor:=True;
i:=2;
repeat
if s[i] >= s[i-1] then
begin
upor:=False;
Break;
end;
inc(i)
until i>length(s);
--------- Вывод - то место в тексте, где вы устали думать
Ответ отправил: Boriss (статус: Профессор)
Отправлен: 07.12.2005, 10:34
Отвечает: Stamm
Здравствуйте, Slim!
i -Исходное число
n - считывает последнюю цифру числа
mod - Остаток от деления, 456 mod 10=6
div - Целочисленное деление, 456 mod 10=45
Например, дано число 654
1 шаг
n=4
i=65
4< 65 mod 10(5)
2 шаг
n=5
i=6
5< 6 mod 10(6)
3 шаг
n=6
i=0
Сдесь прекращается цикл
Если i=0(т е цикл прошёл все цифры), то выводим True
Если i<>0, то выводим False
Приложение:
Ответ отправил: Stamm (статус: 5-ый класс)
Отправлен: 07.12.2005, 22:54
Вопрос № 31.008
Здраствуйте.
Помогите решить задачку:
Пусть дан текстовый файл. Создайте два выходных файла: в один перепишите из каждой строки первые p слов(p задается вводом), в другой - оставшиеся. Если в строке меньше чем p слов, то во втором файле соответствующая строка должна быть пустой.
Отправлен: 07.12.2005, 19:55
Вопрос задал: korsar (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: sir henry
Здравствуйте, korsar!
Вам, лодырю, не стыдно? Сначала попробуйте сами что-то сделать, а потом спрашивайте о том, что не получилось. А Ваш вопрос звучит так:
"Сделайте за меня задачу...".
Ответ отправил: sir henry (статус: Академик)
Отправлен: 07.12.2005, 20:28
Отвечает: Маренич Владимир
Здравствуйте, korsar!
Абсолютно согласен с Сэром Генри :)
Подсказка:
1. Откройте исходный файл InputFile и файлы результата OutputFile1 и OutputFile2
2. Организуйте цикл while not Eof(InputFile) do begin ... end;
3. Читаете строку (допустим в переменную s)
4. Далее нужно разбивать строку на слова и считать сколко их... Здесь надо попотеть, но я помогу. Организуйте цикл:
i:=0; //кол-во слов
s1:=''; //строка для первого файла
while (i<p) and (s<>'') do begin
k:=Pos(' ', s); //ищем пробел
if k>0 then
begin
s1:=s1+Copy(s,1,k); //добавляем слово к сроке (вместе с пробелом)
Delete(s,1,k); //Удаляем это слово из исходной строки
inc(i); //тоже что i:=i+1;//кол-во слов для первого файла
end;
end;
5. Записываем результат:
Writeln(OutputFile1, s1); //полученные слова не более p
Writeln(OutputFile2, s); //всё что осталось
6. Не забудьте закрыть файлы. При закрытии программы они автоматически закрываются, но есть правила "хорошего тона" в программировании - в будущем пригодится. :) Удачи в сдаче лабы :)
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 08.12.2005, 00:49 Оценка за ответ: 5
Вопрос № 31.015
Здраствуйте.
По поводу прошлого вопроса. Задачу я решил так сказать наполовину.
В общем во втором цикле while, выполняю пока не конец переменной s(#13 возврат каретки по-моему), затем ищу пробел - нашел значит первое слово закончилось, дальше увеличиваю i, пока s[i]=' ',это если между словами несколько пробелов, затем пока s[i]<>пробелу сравниваю, пока не найду пробел - значит еще одно слово закончилось. Затем, если число p>=текущему числу слов(в данном случае пока нашли 2) то записываем эти два слова в первый файл, затем проверяем, если найденное число слов больше p, то записываем
все остальные в файл f2. Вроде все правильно, но в файле получается не то.
Задача:
Пусть дан текстовый файл. Создайте два выходных файла: в один перепишите из каждой строки первые p слов(p задается вводом), в другой - оставшиеся. Если в строке меньше чем p слов, то во втором файле соответствующая строка должна быть пустой.
Приложение:
Отправлен: 07.12.2005, 21:09
Вопрос задал: korsar (статус: Посетитель)
Всего ответов: 2 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Маренич Владимир
Здравствуйте, korsar!
Возьмите мой пример за основу (ответ на вопрос 31008). У Вас почти все получилось, только намудрили с пробелами :)
Ответ отправил: Маренич Владимир (статус: 9-ый класс)
Отправлен: 08.12.2005, 00:52
Отвечает: sir henry
Здравствуйте, korsar!
В принципе верно, только с концом строки Вы перемудрили.
Когда Вы считываете строку из файла с помощью ReadLn, Вам не надо искать в ней или проверять возврат каретки (#13#10). Цикл лучше сделать определенным, т.к. длина строки заранее известна. У Вас просто получится перебор строки по буквам пока не достигнут конец строки или не достигнуто нужное кол-во слов
Приложение:
Ответ отправил: sir henry (статус: Академик)
Отправлен: 08.12.2005, 05:08