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

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

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

 
 Ответить  Открыть новую тему 
> строки
qweds
сообщение 10.04.2007 8:58
Сообщение #1





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

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


Задана строка s
задан массив букв m
----------------------
Найти номера букв в строке s которых нет в массиве m (пробелы не в счет).

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Renbo
сообщение 10.04.2007 9:24
Сообщение #2


Пионер
**

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

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


а в чём проблемы? или ты думал за тебя всю прогу напишут?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
qweds
сообщение 10.04.2007 9:42
Сообщение #3





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

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


Код


        for j:=1 to length(s) do begin
        if  s[j]=' ' then    else begin
        for i:=1 to v do begin
        if    m[i]=s[j]  then  else writeln('nedopustimyi symvol ',s[j], ' na pozicii' , j);

      end;
      end;
      end;

соответственно проверяю по 1 символу из массива каждый символ в строке, но из кода видно, что это неправильный подход т.к. результат будет выводиться 3 раза (для случая если все символы недопустимые)
или почти 3 раза unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 10.04.2007 9:51
Сообщение #4


Гость






Цитата
из кода видно, что это неправильный подход
Конечно, неправильный... Надо же было додуматься, работать только по ветке Else... Вот так не пробовал:

for j:=1 to length(s) do begin
if s[j] <> ' ' then begin
found := false; { <--- Надо запоминать, было ли найдено что-то в массиве или нет }
for i:=1 to v do begin
found := false or (m[i] = s[i]);

if not found then
writeln('nedopustimyi symvol ',s[j], ' na pozicii' , j);
end;

?
 К началу страницы 
+ Ответить 
hiv
сообщение 10.04.2007 10:12
Сообщение #5


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

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


Цитата(qweds @ 10.04.2007 10:42) *
соответственно проверяю по 1 символу из массива каждый символ в строке, но из кода видно, что это неправильный подход т.к. результат будет выводиться 3 раза (для случая если все символы недопустимые)
или почти 3 раза unsure.gif

Не три раза, а v-раз будет выводить сообщение о недопустимом символе, если он не имеется в массиве M, а если имеется - v-1 раз.
По заданию нужно наоборот:

var ....
ns :boolean; {вводим логическую переменную}
....

for j:=1 to length(s) do
if s[j]<>' ' then begin {так нагляднее}
i:=1;
ns:=false;
while (not ns) and (i<v) do begin {ищем первое совпадение символа в массиве}
inc(i);
ns:=(m[i]=s[j]); {если символы совпали, то ns=true правда}
end;
if not ns then writeln('nedopustimyi symvol ',s[j], ' na pozicii' , j);

end;
ЗЫ: Код не проверял и не компилил...
Volvo как всегда меня опередил smile.gif

Сообщение отредактировано: hiv - 10.04.2007 10:16


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
qweds
сообщение 10.04.2007 10:28
Сообщение #6





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

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


СПАСИБО, все работает good.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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