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

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

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

> помогите разобраться, вот решение задачки, а я не могу в нем разобраться...
Лейла
сообщение 5.06.2009 16:47
Сообщение #1





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

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


задача: Написать программу, которая для каждого слова заданного предложения определяет долю согласных.Определить слово, в котором доля согласных максимальна.
решение:
  
var s:string;
sl:array of string;
k,l,i,j,sogl:integer;
otn:array of real;
max:real;
begin
readln(s);
k:=0;
repeat
l:=pos(' ',s);
if l<>0 then
begin
k:=k+1;
setlength(sl,k);
sl[k-1]:=copy(s,1,l-1);
delete(s,1,l);
end
else
begin
k:=k+1;
setlength(sl,k);

sl[k-1]:=copy(s,1,length(s));
end;
until l=0;

for i:=0 to k-1 do writeln(sl[i]);

setlength(otn,k);

for i:=0 to k-1 do
begin
sogl:=0;
l:=length(sl[i]);
for j:=1 to l do
case sl[i,j] of
'q','w','r','t','p','s','d','f','g','h','j','k','l','z','x','c','v','b','n',
'm':sogl:=sogl+1;
end;
write(sl[i],' - ');
otn[i]:=sogl/l;
if sogl<>0 then writeln(sogl/l:2:3)
else writeln('sogl net!');
end;

max:=otn[0];
l:=0;
for i:=1 to k-1 do
if otn[i]>max then begin max:=otn[i]; l:=i; end;

writeln;
writeln(sl[l]);

readln;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 5.06.2009 17:10
Сообщение #2


Гость






TStringList и его методы. В одно движение все разбивается... В FPC, кстати, тоже...
 К началу страницы 
+ Ответить 
Buka
сообщение 5.06.2009 17:23
Сообщение #3


Новичок
*

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

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


Вот готовая, сама делала))
Всё работает.
program qwe;
uses crt;
type masstr=array [1..10] of string;
type maslength=array [1..10] of byte;
type masdol=array[1..10] of real;
procedure ms(s1:string; var s2:masstr; var l2:maslength; var count:byte);
var i1,i2:byte;
i,l:byte;
begin
l:=length(s1);
i1:=1; i2:=0;
count:=0;
for i:=1 to l do begin
if (s1[i]= ' ') and (s1[i+1] <> ' ')
then i1:=i+1;
if (s1[i] <> ' ') and ((s1[i+1]= ' ') or (i=l)) then begin
i2:=i; inc(count)
end;
if i2 <> 0 then begin
s2[count]:=copy(s1, i1, i2-i1+1);
l2[count]:=length(s2[count]);
i2:=0;
end;
end;
end;
procedure doli(s2:masstr; l2:maslength; count:byte; var d:masdol);
var g,i:byte; soglas:byte; c:char;
begin
for i:=1 to count do begin
soglas:=0;
for g:=1 to l2[i] do begin
c:=s2[i][g] ;
if ((c='w') or (c='q') or (c='r') or (c='t') or (c='p')
or (c='s') or(c='d') or (c='f') or (c='g') or(c='h') or (c='j')
or (c='k') or (c='l') or (c='z') or (c='x') or (c='c') or (c='v')
or (c='b')or (c='n') or (c='m')) then inc(soglas);
d[i]:=soglas/l2[i];
end;
end;
end;
procedure max(d:masdol; count:byte;var maxd:real);
var i:byte;
begin
maxd:=d[1];
for i:=2 to 10 do begin
if d[1]<d[i] then maxd:=d[i]
end;
end;
var s:string;
s2:masstr; l2:maslength; d:masdol;
i,nslov:byte; maxd:real;
begin clrscr;
write(' vvedite predlogenie-> ');
readln(s);
ms(s, s2,l2, nslov);
doli(s2,l2,nslov,d);
max(d,nslov,maxd);
for i:=1 to nslov do begin
writeln(s2[i], ' ', l2[i] ,' ', d[i]:6:3 );
end;
writeln('max doly soglas ravna ', maxd:6:3);
readkey
end.



М
Buka, пожалуйста, используй тэги кода и не дублируй мессаджи



Сообщение отредактировано: Lapp - 8.07.2009 4:44
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 



- Текстовая версия 20.07.2025 11:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"