Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
1

Подсчитать количество отрицательных частиц "не" и "ни"

11.12.2009, 15:46. Показов 1616. Ответов 12
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В некотором тексте(например:Ни одна система не остается неизменной)определить отрицательные частицы не и ни.То есть вывести эти частицы на экран.Помогите пожалуйста написать программу
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.12.2009, 15:46
Ответы с готовыми решениями:

Подсчитать число отрицательных частиц не и ни
В некотором тексте (например Ни одна система не остается неизменной) определить отрицательные...

Подсчитать количество частиц «не», пишущихся раздельно, в предложении
Подсчитать количество частиц «не», пишущийся раздельно в предложении. В с++

Нужно подсчитать количество отрицательных, сумму отрицательных и их произведение
Я сделал половину программы, которая создаёт рандомный массив, но по заданию мне нужно подсчитать...

Подсчитать количество положительных, произведение отрицательных нечетных чисел и количество нулей
Подсчитать количество положительных, произведение отрицательных нечетных чисел и количество нулей.

12
1856 / 1178 / 190
Регистрация: 27.03.2009
Сообщений: 4,558
11.12.2009, 15:48 2
ччто иеммно надо вывести? если они встречаются в тексте и колько раз, или слова с ними?
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
11.12.2009, 15:53 3
unick12345,
Цитата Сообщение от маришkа Посмотреть сообщение
То есть вывести эти частицы на экран
Вот вариант решения
Pascal
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
uses
  crt;
const
  dividers=[' ',',','.',';',':','-','=','+'];{дописать нужные}
var
  s,temp:string;
  i:integer;
begin
  clrscr;
  writeln('Введите строку:');
  readln(s);
  temp:='';
  {пробегаем всю строку посимвольно}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
      if temp<>'' then
      begin
        if (temp='Не') or(temp='НЕ') or(temp='нЕ') or(temp='не') or(temp='Ни') or(temp='НИ') or (temp='нИ') or(temp='ни') then
          write(temp,' ');
        temp:='';
      end;
  end
end.
Дополнение: Если у Вас не Turbo Pascal, то данную строку
Цитата Сообщение от Inadequate Посмотреть сообщение
Pascal
1
if (temp='Не') or(temp='НЕ') or(temp='нЕ') or(temp='не') or(temp='Ни') or(temp='НИ') or (temp='нИ') or(temp='ни') then
можно заменить на вот такую
Pascal
1
if (LowerCase(temp)='не') or (LowerCase(temp)='ни') then
1
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
11.12.2009, 15:53  [ТС] 4
Встречаются в тексте и сколько раз
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
11.12.2009, 16:02 5
Встречаются в тексте и сколько раз
Вы совершенно не цените чужой труд...
Pascal
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
uses
  crt;
const
  dividers=[' ',',','.',';',':','-','=','+'];{дописать нужные}
var
  s,temp:string;
  i,c:integer;
begin
  clrscr;
  writeln('Введите строку:');
  readln(s);
  temp:='';
  c:=0;
  {пробегаем всю строку посимвольно}
  for i:=1 to length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if (s[i] in dividers) or (i=length(s)) then
      if temp<>'' then
      begin
        if (LowerCase(temp)='не') or (LowerCase(temp)='ни') then
          inc(c);
        temp:='';
      end;
  end;
  if c<>0 then
    writeln('Встречаются ',c,' раз(а).')
  else
    writeln('В заданном тексте эти частицы не встречаются!')
end.
1
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
11.12.2009, 16:04  [ТС] 6
Спасибо большое!!!!!
0
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
22.12.2009, 13:52  [ТС] 7
Извините вы не могли бы объяснить,что такое dividers и что значат эти знаки препинания в [ ] после dividers!!!!!Как вообще можно назвать то что стоит в скобках(меня преподователь сегодня спросил,а я не смогла объяснить)Спасибо заранее!!!!
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
22.12.2009, 13:57 8
маришkа, dividers это множество типа char; Вот Вам справка по данному вопросу из хэлпа
Множества
Множество представляет собой набор элементов одного порядкового типа. Элементы множества считаются неупорядоченными; каждый элемент может входить во множество не более одного раза. Тип множества описывается следующим образом:

set of базовый тип

В качестве базового может быть любой порядковый тип с элементами, для которых функция Ord возвращает значения в диапазоне от 0 до 255. Например:

type
ByteSet = set of byte;
CharSet = set of char;
Digits = set of '0'..'9';
SeasonSet = set of (Winter,Spring,Summer,Autumn);

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

[список значений]

где в списке могут перечисляться через запятую либо выражения базового типа, либо их диапазоны в виде a..b, где a и b - выражения базового типа. Например:

var
bs: ByteSet;
bestdays: (Mon,Tue,Wed,Thi,Thr,Sat,Sun);
...
bs:=[1,3,5,20..25];
bestdays:=[Wed,Thr..Sun];

Значения в списке могут отсутствовать, тогда множество является пустым:

bs:=[];

Операция in проверяет принадлежность элемента множеству:

if Wed in bestdays then ...

Для множеств определены операции + (объединение), - (разность), * (пересечение), = (равенство), <> (неравенство), <= (вложено) и и >= (содержит). Примеры этих операций приведены в пункте Выражения и операции.

Множества с совместимыми базовыми типами неявно преобразуются одно к другому (см. пункт Неявное приведение типов). При присваивании множеству при необходимости происходит усечение его элементов до значений базового типа. Например:

var st: set of 3..9;
...
st:=[1..5,8,10,12]; // в st попадут значения [3..5,8]

Чтобы вывести значения элементов множества, необходимо перебрать всевозможные значения в цикле и проверить их на принадлежность множеству с помощью операции in:

for i:=0 to 255 do
if i in st then write(i,' ');
1
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
22.12.2009, 14:03  [ТС] 9
Спасибо большое
0
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
23.12.2009, 15:35  [ТС] 10
Извините за глупый вопрос,но вы не могли бы объяснить,что такое if(s[i]in dividers)or(i=length(s))
then if temp<>'' then......и для чего мы здесь это применяем!!!
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
23.12.2009, 15:44 11
Цитата Сообщение от маришkа Посмотреть сообщение
что такое if(s[i]in dividers)or(i=length(s))
это проверка на то, что если(if) символ(s[i]) входит в множество или это последний символ тогда(then)
Цитата Сообщение от маришkа Посмотреть сообщение
if temp<>'' then
а это проверка на пустое слово. Давайте возьмем для примера такую строку: "кар ыва"
Между этими словами 6 пробелов. И пробегая строку посимвольно, чтобы каждый раз начиная с 4 символа не проверрять вот это условие и не опустошать и без того пустую переменную
Цитата Сообщение от Inadequate Посмотреть сообщение
if (LowerCase(temp)='не') or (LowerCase(temp)='ни') then
inc(c);
мы делаем всего одну проверку на слово. Т.е. по сути можно это убрать и работать будет правильно, НО появятся лишние действия, что не есть гуд.
1
2 / 2 / 0
Регистрация: 09.11.2009
Сообщений: 49
23.12.2009, 16:01  [ТС] 12
СпасибоИзвините если надоела со своими вопросами
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
23.12.2009, 16:02 13
Цитата Сообщение от маришkа Посмотреть сообщение
Извините если надоела со своими вопросами
Ничего страшного, это хорошо, что Вы интересуетесь, а не тупо списываете. На будущее: половина ответов есть в хэлпе. Юзайте F1
1
23.12.2009, 16:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.12.2009, 16:02
Помогаю со студенческими работами здесь

Подсчитать количество нулевых, сумму и количество положительных и отрицательных элементов вектора
Дан Вещественный векторX(x0,x1,...x30). Подсчитать количество нулевых, сумму и количество...

Подсчитать количество положительных и отрицательных чисел и количество нулей в массиве
Имеется массив А из N произвольных чисел. Используя, операторы цикла составить программу.Подсчитать...

Подсчитать количество положительных и отрицательных чисел и количество нулей в массиве
1)Имеется массив А из N произвольных чисел - А(N), среди которых есть положительные, отрицательные...

Подсчитать количество положительных и количество отрицательных элементов целочисленного массива
Доброго времени суток)Есть у меня парочка задачек которые нужно написать в паскале.Очень нужна ваша...

В массиве X(n) подсчитать количество положительных k1 и количество отрицательных k2 элементов. Если k=|k1-k2|>1 , то изменить знаки стольких
В массиве X(n) подсчитать количество положительных k1 и количество отрицательных k2 элементов....

В массиве подсчитать количество положительных и количество отрицательных элементов и изменить знаки по заданному принципу.
В массиве x(n) подсчитать количество положительных k1 и количество отрица-тельных k2 элементов....

Подсчитать количество положительных и количество отрицательных элементов матрицы
Ввод данных выполнить с помощью оператора For. Для реализации циклических процедур использовать...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru