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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2015, 23:15   #1
Sunshinee
 
Регистрация: 25.11.2015
Сообщений: 4
По умолчанию Ошибка Дан произвольный русский текст. Проверить каких букв в нем больше: гласных или согласных(Delphi)

Помогите, исправьте пожалуйста
[dcc32 Error] Unit2.pas(53): E2008 Incompatible types for i:= 1 to length(F) do
[dcc32 Error] Unit2.pas(54): E2016 Array type required if F[i] in glasn then
[dcc32 Error] Unit2.pas(56): E2016 Array type required else if F[i] in soglas then
Код:
procedure TForm2.FormCreate(Sender: TObject);
const
glasn=['а','е','и','о','у','ы','э','ю','я'];
soglas=['б','в','г','д','ж','з','й','л','м','н','р','к','п','с','т','ф','х','ц','ч','ш','щ'];
var
F: TextFile;
Ch: char;
g,s,i: integer;
begin
AssignFile(F,'C:\Users\xi\Desktop\na.txt');
 {$I-}
Reset (F);
{$I+}
if IOResult = 0 then
begin
while not Eof(f) do
begin
  Read (F,Ch);
  Memo1.Text:=memo1.Text+Ch;
  end;
  CloseFile(F);
  end
  else
  ShowMessage('Нет такого файла');
begin
 Read (F,Ch);
 g:=0; s:=0;
 for i:= 1 to length(F) do
 if F[i] in glasn then
 inc(g)
 else if F[i] in soglas then
 inc(s);
 if g> s then
 ShowMessage('Гласных больше')
 else if g< s then
 ShowMessage('Согласных больше')
 else
 ShowMessage('Согласных и гласных букв поровну');
end;
end;
end.
Sunshinee вне форума Ответить с цитированием
Старый 14.12.2015, 23:25   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
for i:= 1 to length(F) do
Так в паскале увы нельзя.
Пиши так:
Код:
 for i:= 1 to length(memo1.Text) do
 if memo1.Text[i] in glasn then
 inc(g)
Хотя лучше бы ты считал файл в string.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2015, 01:47   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Хотя лучше бы ты считал файл в string.
В TMemoryStream.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 15.12.2015, 14:38   #4
Sunshinee
 
Регистрация: 25.11.2015
Сообщений: 4
По умолчанию

Не получается(((

Как в string?

Последний раз редактировалось Stilet; 15.12.2015 в 17:29.
Sunshinee вне форума Ответить с цитированием
Старый 15.12.2015, 16:00   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А файл у тебя в какой кодировке, интересно?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 15.12.2015, 17:29   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Не получается
Как пытаешься?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2015, 19:14   #7
Sunshinee
 
Регистрация: 25.11.2015
Сообщений: 4
По умолчанию

Всё, разобралась спасибо
Sunshinee вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Pascal|Определить, каких букв — гласных или согласных больше в тексте Dadni Паскаль, Turbo Pascal, PascalABC.NET 3 04.10.2015 12:32
Определить каких букв - согласные\гласных - больше в данном тексте alex377 Паскаль, Turbo Pascal, PascalABC.NET 3 03.05.2015 14:39
Задача: Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных Backward Паскаль, Turbo Pascal, PascalABC.NET 14 13.05.2013 20:46
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше: гласных или согласных. Михей91 Общие вопросы C/C++ 1 07.01.2010 16:57