Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Паскаль алярм
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
Necronix
Товарсчи, в связи с форс мажорными обстоятельствами я как был дурак так и остался дурак rolleyes.gif
И ежели я к завтрашнему дню не сдам 5ю лабу( а я ее не сдам,бо как я выяснил недавно,оказался слишком туп biggrin.gif ) Требуется срочная помощь,бо завтра в 13:00 уже пора будет идти сдаваццо в плен. ЗадачкО простая,но не для меня spiteful.gif ЕЛси кто нибудь умный и милосердный окажет экстренную помощь. Буду премного благодарен ( +Ы не заставят себя ждать). А вот собственно и эта злобная кочГа апкатарайу я спотыкнулсО:
Дан текст, содержащий 100 символов. Определить в нем число слов и предложений. (Предложения отделены точкой или точкой и пробелом ).

В упор не знаю я как эти пробелы и точки проверятьsad.gif Бо в связи с вышеупомянутыми форсмажорными обстоятельствами( а именно смерть препода по програмингу) у нас образовалась такая существенная разница во времени между практикой програминга и теорией. Вышло так,что мы уже сдеалаи 3 работы,а нам только начали рассказывать про операторы.
Berserker
Если текст хранится в виде строки, то трудностей особыйх быть не должно. Пробел - #32, а точка - '.'

Код
words:=0;
sent:=0;
sym:=0;
for i:=1 to length(OurText) do
 begin
 if (OurText[i] = '.') then
   begin
   sent:=sent+1;
   sym:=0;
   Continue;
   end;
 if ((OurText[i] = #32) and (sym>0)) then
   begin
   sym:=0;
   words:=words+1;
   Continue;
   end;
 if (OurText[i] <> #32) then
   sym:=sym+1;
 end;
gamecreator
Забыл в условии с точкой words:=words+1;
Berserker
Нет, там предложения, а не слова считаются.
Д'якон
Хорошо тогда подсчитай кол-во слов и предложений в этом тексте при помощи проги:
Код
Добрый день.Как дела.


Я думаю слов у тебя получится 3.
Berserker
Тут вы неправы. Мы не пишем слово сразу после точки! Разве что в конце можно добавить:

if (sym>0) word:=word+1;
gamecreator
Это неважно, не засчитается же слово перед точкой потому что мы не пишем пробел перед точкой.
Berserker
Ну да smile.gif Что-то я стормозил. Действительно, слово нужно добавлятьи при проверке точки.
izrukvruki
Мне никто не может подсказать алгоритм сравнения двух текстовых списков (на Паскале-Делфи или Бейсике)?

Список "ДОЛЖНОЕ" (то что должно быть) - название и коментарий:
А1 комментарии
А2 комментарии
...
Аn комментарии

Список "Фактическое" (то что есть в действительности - он может быть дополнен некоторыми новыми элементами В, но может не содержать некоторые элементы А - вот эти элементы и надо отследить) - содержит только название элемента:
A1
A2
...
A(i-1)
A(i+1)
...
An
B1
...
Bm

Должно выдать близкое:
"Нехватает элементов:
Ai коментарий

Добавлены элементы:
B1
...
Bm"
Avaddon
Цитата(gamecreator @ 21 Nov 2007, 22:07)
Это неважно, не засчитается же слово перед точкой потому что мы не пишем пробел перед точкой.


А как насчет других знаков препинания? Запятые, точки с запятыми, тире?

Весь вопрос в том, на что направлена лаба. По уму надо строить специальную
грамматику для конкретного задания и при помощи нее разбирать строку.
Ессно при помощи какого-нить конечного автомата, который можно написать и на паскале. А в функции сверток по грамматике вставлять счетчики слов и предложений yes.gif
Night Hunter
здравствуйте уважаемые форумчане!
Всвязи с форсможорными обстоятельствами (а именно отсутствием паскаля на компе) неможу выполнить следующий примерчег:

Ежели найдуццо добрые и отзывчивые люди (с паскалем smile.gif) выложите плиз файлик с паскалевским расширением...
Благодарность моя будет безмерна happy.gif
зы. нужно очень срочно
hippocamus
Код
function Calc(a, y: Single): Single;
begin
 Result:=sqr(sqr(a/(a+25))+y)+(sqr(a)/y);
end;


Добавлено ([mergetime]1204619252[/mergetime]):
Хотя, если у тебя старая версия Паскаля, то лучше писать наверное
Код
function Calc(a, y: Real): Real;
begin
 Calc:=sqr(sqr(a/(a+25))+y)+(sqr(a)/y);
end;
izrukvruki
a в чем сложность то???

program XXX;
var a,y: real;
begin
readln ("a=", a);
readln ("y=", y);
if ((a+25)<>0) and (y<>0) then writeln (((a/(a+25))^2+y)^2+(a^2)/y);
else writeln ("Деление на ноль");
end
hippocamus
biggrin.gif
О том, что "деление на ноль" прога сама напишет.
izrukvruki
Компилятор напишет, а прога вылетит... Так она более верно работает
Night Hunter
Сложность в том, что паскаля нету...а надо файлик с расширением паскалевским...
izrukvruki
СКОПИРУЙ мой пост в текстовый файл и замени расширение на .pas и тебе будет счастье
Night Hunter
и было мне счастье...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2025 IPS, Inc.