Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2009, 13:14   #1
Fatality
Пользователь
 
Регистрация: 03.12.2008
Сообщений: 37
По умолчанию помогите пожалуйста найти ошибку в задаче!

Народ, пожалуйста выручайте! Задача: составить программу подсчета числа различных гласных букв в словах X и Y.
Вот что у меня получилось, но прога подсчитывает только буквы в первом слове, а во втором нет... помогите плиз..
program d8;
var i,n,z:integer; gl,l,sol:set of char; x,y:string;
begin
write('Vvedite slovo x ');
readln(x);
write('Vvedite slovo y ');
readln(y);
z:=0;
gl:=['e','i','o','a','y','u'];
for i:=1 to length(x) do
if (x[i] in gl) and not(x[i] in l) then include(l,x[i]);
for i:=1 to length(y) do
if (y[i] in gl) and not(y[i] in l) then begin
z:=z+1;
include(l,y[i]);
end;
writeln(z);
readln
end.
Fatality вне форума Ответить с цитированием
Старый 15.01.2009, 13:49   #2
MalexG
Форумчанин
 
Регистрация: 06.11.2008
Сообщений: 100
По умолчанию

Если хотите, чтобы прога подсчитывала по отдельности количество различных гласных букв в каждом из слов по отдельности, для второго слова нужно использовать отдельное множество вхождения гласных и для каждого из слов необходимо вести свой счетчик.
Код:
program d8;
var
  i, n, z: integer;
  gl, L1, L2: set of char;
  x, y: string;
begin
  write('Vvedite slovo x ');
  readln(x);
  write('Vvedite slovo y ');
  readln(y);
  n  := 0;
  z  := 0;
  gl := ['e','i','o','a','y','u'];
  for i := 1 to length(x) do
    if (x[i] in gl) and not(x[i] in L1) then
    begin
      n := n + 1;
      include(L1, x[i]);
    end;
  for i:=1 to length(y) do
    if (y[i] in gl) and not(y[i] in L2) then
    begin
      z := z + 1;
      include(L2, y[i]);
    end;
  writeln('n=', n);
  writeln('z=', z);
  readln
end.
MalexG вне форума Ответить с цитированием
Старый 15.01.2009, 16:22   #3
capta1n
Форумчанин
 
Аватар для capta1n
 
Регистрация: 06.12.2008
Сообщений: 613
По умолчанию

Код:
program capta1n;
const
 m = ['A','E','I','O','U'];
var
 let : set of char;
 n : string;
 k,i : byte;
begin
  write ('X= ');
  readln(n);
  let:=m;
  k:=0;
  for i:=1 to length(n) do
   if upcase(n[i]) in let then
   begin
    inc(k);
    exclude(let,upcase(n[i]))
   end;

  writeln ('first word: ',k);

  write ('Y= ');
  readln(n);
  let:=m;
  k:=0;
  for i:=1 to length(n) do
   if upcase(n[i]) in let then
   begin
    inc(k);
    exclude(let,upcase(n[i]))
   end;


  writeln ('second word: ',k);

  readln;

end.
capta1n вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите найти ошибку в задаче. Wia Помощь студентам 1 16.12.2008 19:15
помогите найти ошибку в задаче. Wia Помощь студентам 1 14.12.2008 17:19
Помогите найти ошибку в задаче Filosofijka Паскаль, Turbo Pascal, PascalABC.NET 34 04.12.2008 13:36
Помогите найти ошибку в коде, пожалуйста Gobl1n Паскаль, Turbo Pascal, PascalABC.NET 3 30.11.2008 17:44