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

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

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

Восстановить пароль

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 08.06.2010, 14:50   #1
OKSANO4KA
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 24
По умолчанию Delphi

Программа. Дана непустая последовательность слов из строчных латинских букв; между соседними словами - запятая, за последним словом - точка. Напечатать в алфавитном по-рядке все гласные буквы, которые входят в каждое слово.

я написала так:
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
var
 s: set of 'a'..'z';
 c: char;
begin
writeln ('vvedite clova');
read (c);
s:=[];
 while c <> '.' do
  begin
    if c <>',' then
    s:=s+[c];
    read (c);
    end;
    for c:='a' to 'z' do
     if c in s  then
      write(c);
    readln;
    readln;
    readln;
   { TODO -oUser -cConsole Main : Insert code here }
end.


прога выводит буквы использованные во всем предложении по порядку. как это исправить?

Последний раз редактировалось Stilet; 08.06.2010 в 16:34.
OKSANO4KA вне форума
Старый 08.06.2010, 15:07   #2
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Цитата:
s: set of 'a'..'z';
ты объявила множество всех строчных букв. где множество гласных?

Цитата:
if c <>',' then
s:=s+[c];
read (c);
этой записью ты сформировала строку без запятых из всех слов предложения "стык в стык". Теперь программа не знает и, главное, не имеет возможности определить, где заканчивается одно слово и начинается следующее

программа делает именно то. что ты ей задала

Цитата:
не вижу ошибку, он выводит буквы использованные во всем предложении по порядку. как это исправить?
для начала исправить множество, перечислив в нем перебором все гласные.
Затем оргазизовать цикл в духе
while(c<>'.') do
s:=[];
read(c);
begin
while(c<>',') do
begin
s:=s+c;
read(c);
end;
//здесь вывод всех гласных ОДНОГО слова
end;

Т.е. каждое слово записывается в s, анализируется, затем s обнуляется и считывается следующее слово
Snejnaya вне форума
Старый 08.06.2010, 15:29   #3
OKSANO4KA
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Snejnaya Посмотреть сообщение
ты объявила множество всех строчных букв. где множество гласных?
...
Т.е. каждое слово записывается в s, анализируется, затем s обнуляется и считывается следующее слово

можно пожалуйста поподробней задание множества гласных? вот так?
s:set of 'a'..'y';
или я не знаю как(
OKSANO4KA вне форума
Старый 08.06.2010, 15:31   #4
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
s:set of char;
а потом s:=['a', 'e' и так далее все гласные];
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума
Старый 08.06.2010, 15:40   #5
OKSANO4KA
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Код:
s:set of char;
а потом s:=['a', 'e' и так далее все гласные];
это надо писать в type или var ?
OKSANO4KA вне форума
Старый 08.06.2010, 15:44   #6
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Код:
s:set of char;
это в var.
А
Цитата:
s:=['a', 'e' и так далее все гласные];
Это уже в коде перед
Код:
writeln ('vvedite clova');
ну или в любом другом месте, но до первого использования s.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума
Старый 08.06.2010, 15:50   #7
OKSANO4KA
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Код:
s:set of char;
это в var.
А

Это уже в коде перед
Код:
writeln ('vvedite clova');
ну или в любом другом месте, но до первого использования s.


а можете помочь составить конечный вариант а то я запуталась мне ошибки пишет
OKSANO4KA вне форума
Старый 08.06.2010, 16:16   #8
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

Код:
var
s: set of char;
var ch, c='a': char;//что угодно, но не '.'
var str, str_obw:string;//сюда будем складывать гласные
var i,j:integer;

begin
s:=['a','e','i', 'o','u','y'];
writeln('vvedite slova');

while(c<>'.') do
str:="";
str_obw:="";
read(c);
begin
while(c<>',') do
begin
 if (c in s) then str:=str+c;
read(c);
end;
//теперь в строке str лежат все гласные. надо их отсортировать...
for i:=1 to length(str) do
     begin
     for j:=i+1 to length(str) do
         begin
         if(str[i]<str[j]) then
                   begin
                   ch:=str[i];
                   str[i]:=str[j];
                   str[j]:=ch;
                   end;
         end;
     end;//отсортировали
str_obw:=str_obw+str+' ';

end;

//выводим str_obw - в ней отсортированный гласные каждого слова, разделенные пробелом
writeln(str_obw);
end.

Последний раз редактировалось Stilet; 08.06.2010 в 16:37.
Snejnaya вне форума
Старый 08.06.2010, 16:43   #9
OKSANO4KA
Пользователь
 
Регистрация: 08.06.2010
Сообщений: 24
По умолчанию

Цитата:
Сообщение от Snejnaya Посмотреть сообщение
Код:
var
s: set of char;
var ch, c='a': char;//что угодно, но не '.'
var str, str_obw:string;//сюда будем складывать гласные
var i,j:integer;

 не понятно задание переменных... это на делфи??? нужно писать вар каждый раз?
    


 end;//отсортировали
str_obw:=str_obw+str+' ';
end; 
//выводим str_obw - в ней отсортированный гласные каждого слова, разделенные пробелом
writeln(str_obw);
end.

а можно разделять не пробелом а запятой??
OKSANO4KA вне форума
Старый 08.06.2010, 16:44   #10
Snejnaya
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 219
По умолчанию

можно, какая разница, просто str_obw:=str_obw+str+',';
Snejnaya вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
На Delphi 7 сделать игру кто хочет стать миллионером в delphi 7 666dart666 Помощь студентам 11 04.11.2010 17:57
Программа-тест в Delphi) скиньте))а то програмку здавать преподу надо,и самой хочется понять Delphi Верчик Помощь студентам 9 02.03.2009 17:46
Delphi. Как нарисовать в Delphi два движущиеся шара с определенной скоростью? redred Общие вопросы Delphi 10 11.12.2007 10:43
Как открыть БД, написанную в Delphi если нf другой машине Delphi нет? dagarik БД в Delphi 7 22.10.2007 17:54
не StringGrid1.Cells[1,1]:='Delphi'; а вот так SG1.C[1,1]:='Delphi' Nemesisking Компоненты Delphi 7 08.09.2007 03:27