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

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

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

> Множества, не могу понять
сообщение
Сообщение #1





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

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


Дано условие:
Вводится последовательность слов. Определите, какое количество слов потребуется, чтобы задействовать все буквы английского (русского) алфавита. Ввод слов оканчивается, когда задействованы все буквы.

Я только не могу понять - Вводится последовательность слов - это кем должно вводиться последовательность, мной в самом коде или пользователем? Помогите разобраться
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
переменной alph не присваивается значений
Вот тебе еще одна причина не пользоваться грязным хаком smile.gif

При работе со строками никогда не прикасайся к нулевому символу !!! В FPC, например, такая программа откажется компилироваться...

Покажи мне в своей программе, где ты заполняешь строку alph значениями? Вот это:
alph[j]:=s[i];
- не в счет, здесь ты меняешь какой-то определенный символ, а это не совсем корректно (с учетом того, КАК ты в начале изменил длину строки)...

Насколько я вижу, правильным вариантом будет такой:
uses crt;
var
alph:string; s:string;
i,j,n:byte;
f: set of 'a'..'z';
begin
clrscr;
f:=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
n:=0;
alph:='';
j:=0;
writeln('Enter the words');
s:='';
// alph[0]:=chr(26);
repeat
readln(s);
for i:=1 to length(s) do begin
if (s[i] in f) and (pos(s[i],alph)=0) then begin
// inc(j);
// alph[j]:=s[i];
alph := alph + s[i]; // Эквивалентная замена, но корректная !!!
end;
end;
inc(n);
until j>=26;
writeln('Number : ',n);
readln;
end.


(Не тестировал, но по-моему, должно работать)
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 6.05.2024 9:01
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name