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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.12.2006, 01:23   #1
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
Вопрос Помогите пожалуйста со строками в паскале.

Дана строка, содержащая несколько слов. Выбрать. то слово, которое содержит наибольшее количество гласных букв.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 24.12.2006, 09:26   #2
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Хотел было поругаться, но не получилось... Есть подобная тема и в ней есть все необходимые тебе операторы и функциии.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 25.12.2006, 21:58   #3
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Спасибо все нашел, теперь думаю не составит труда написать программу.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 08.01.2007, 01:30   #4
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Все таки возникли проблемы? Нашел готовую программу, которая подсчитываети выводит число гласных букв во всех словах, а мне надо чтобы выводилось слово (с наибольшим количеством гласных), и их кол-во (этих гласных). Так вот эта прога, помогите пожалуйста исправить:
Program stroca;
uses crt;
var
s:string;
mas:array[1..100] of string;
i,j,c,m1,m2:integer;
test:string;
function CountGlas (st:string):integer;
var count:integer;
begin
count:=0;
for i:=1 to length(st) do
if (st[i]='а') or (st[i]='о') or (st[i]='и') or (st[i]='е') or
(st[i]='ё') or (st[i]='ы') or (st[i]='э') or (st[i]='ю') or (st[i]='я') or
(st[i]='й') then count:=count+1;
CountGlas:=count;
end;
begin
writeln ('Введите строку');
readln (s);
c:=0;
for j:=1 to length(s) do
begin
if (s[j] <> ' ') or (j=length(s)) then
begin
test:=test+s[j];
if j=length(s) then begin c:=c+1; mas[c]:=test; end;
end else
begin
c:=c+1;
mas[c]:=test;
test:=' ';
end;
end;
m1:=0; m2:=0;
for j:=1 to c do
begin
m1:=countGlas(mas[j]);
if m1>m2 then m2:=m1;
end;
writeln ('Число гласных',m2);
readln;
end.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 08.01.2007, 11:38   #5
zetrix
Delphi/C++/C#
Участник клуба
 
Аватар для zetrix
 
Регистрация: 29.10.2006
Сообщений: 1,972
По умолчанию

Прогу пока не смотрел, но есть замечание: используй множество, забей туда все гласные, а потом проверяй (s[i] in GLAS) (чтоб не было этого: if (st[i]='а') or (st[i]='о') or (st[i]='и') or (st[i]='е') or
(st[i]='ё') or (st[i]='ы') or (st[i]='э') or (st[i]='ю') or (st[i]='я') or
(st[i]='й')... )
zetrix вне форума Ответить с цитированием
Старый 09.01.2007, 01:07   #6
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Ты прав, можно сделать немного проще и понятней.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 14.01.2007, 01:26   #7
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Всё программа работает! Всем спасибо.
Program stroca;
uses crt;
const
st = ['а','е','ё','и','о','у','ы','э','ю' ,'я'];
var
s:string;
mas:array[1..80] of string;
i,j,c,m1,m2,k:integer;
test:string;
function CountGlas (st:string):integer;
var count:integer;
begin
count:=0;
for i:=1 to length(st) do
count:=count+1;
CountGlas:=count;
end;
begin
clrscr;
writeln ('Введите строку: ');
readln (s);
c:=0;
for j:=1 to length(s) do
begin
if (s[j] <> ' ') or (j=length(s)) then
begin
test:=test+s[j];
if j=length(s) then begin c:=c+1; mas[c]:=test; end;
end else
begin
c:=c+1;
mas[c]:=test;
test:='';
end;
end;
m1:=0; m2:=0;
for j:=1 to c do
begin
m1:=countGlas(mas[j]);
if m1>m2 then begin m2:=m1;k:=j; end;
end;
writeln ('Максимальное число гласных - ',m2);
writeln ('в слове -', mas[k]);
readln;
end.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите!!!Пожалуйста!!С программкой в Паскале... Yulichkaa Паскаль, Turbo Pascal, PascalABC.NET 1 16.03.2008 03:06
Помогите пожалуйста решить задачу в Паскале Alfons Помощь студентам 1 19.02.2008 21:07
ПОМОГИТЕ ПОЖАЛУЙСТА SOS! ПРОЦЕДУРЫ В ПАСКАЛЕ! Jondeer Помощь студентам 0 04.12.2007 18:51
Помогите со строками в паскале kiki14 Помощь студентам 2 16.05.2007 17:46