29.10.2011, 15:23 | #1 (permalink) |
Member
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строка
Дана строка, состоящая из символов. Определить сколько в ней символов '*',';',':' Со строкой надо работать как с единым объектом: использовать строковые процедуры и функции. Заранее большое спасибо!!! |
29.10.2011, 15:23 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Возможно, что проблема уже решена кем то из пользователей Командная строка Bash Призрак - бегущая строка Бегущая строка в воздухе. Призрак |
29.10.2011, 15:57 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Ильгиза, я, конечно, догадываюсь, что подразумевается (по всей вероятности) Паскаль, однако ЯП следует указывать. Особенно размещая запросы в этом разделе. Впрочем, я могу и ошибаться - недавно вот тоже решил, что нужен Паскаль, сочинил программку, а выяснилось, что требуется, видите ли, С++. А об сообщить эту информацию - ну никак! Имейте хоть толику уважения к тем, кто старается помочь.
|
29.10.2011, 16:43 | #3 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Вычислительная часть программы на языке Pascal:
Код:
n:=0; for i:=1 to length(s) do if (s[i] in ['*',':',';']) then inc(n); writeln(n); |
06.11.2011, 17:05 | #4 (permalink) |
Member
Регистрация: 08.10.2011
Сообщений: 49
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строка, паскаль
Здравствуйте! Не можете ли вы предложить иной вариант решения данной задачи, кроме этой:
n:=0; for i:=1 to length(s) do if (s[i] in ['*',':',';']) then inc(n); writeln(n); Дана строка, состоящая из символов. Определить сколько в ней символов '*',';',':' Со строкой надо работать как с единым объектом: использовать строковые процедуры и функции. |
06.11.2011, 17:41 | #5 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,794
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
А чем вам не понравилось это решение? В нем используются строковые функции length(s) - определение длины строки, и s[i] - обращение к i-ому символу строки. Если i-тый символ строки равен одному из символов, принадлежащих указанному в условии множеству, то счетчик числа символов увеличивается на 1. Полный вариант решения следующий:
Код:
var i,n:integer; s:string; begin writeln('Enter string'); readln(s); n:=0; for i:=1 to length(s) do if (s[i] in ['*',':',';']) then inc(n); writeln('Char *,:,; in string ', n); readln end. Код:
var i,n:integer; s:string; begin writeln('Enter string'); readln(s); n:=0; for i:=1 to length(s) do if (s[i]='*') or (s[i]=';') or (s[i]=':') then inc(n); writeln('Chars *:; in string ', n); readln end. P.S. А что вы имеете в виду под: ??? С точки зрения программирования, строка это своего рода массив символов, каждый из которых имеет свой порядковый номер. Строка уже по своему определению никак не может быть единым объектом. И еще, допустим, что есть возможность работать со строкой как с единым объектом, тогда возникает парадокс: разбивать строку на символы по условию мы не имеем права, а в задании нужно подсчитать количество именно символов, это взаимно исключающие действия. Как тогда, по вашему, должна решаться эта задача? |
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Опции темы | |
Опции просмотра | |
|
|