2 задачи на строки - Pascal

Ответить
Мяфффка
Сообщения: 2
Зарегистрирован: 17 дек 2009, 14:49

помогите пожалуста с 2-мя задачами, никак не могу решить :(
задача 1: Даны два предложения. В каком из них доля (в %) вхождения букв "б" больше?
задача 2: Даны два предложения, в которых имеются буквы "ш". Найти в каком из них эта буква имеет больший порядковый номер, если букв "ш" несколько, то должна быть учтена последняя
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Первая:
[syntax="pascal"]
uses crt;
const bukva='b';
var a,b:string;
i:byte;
kol1,kol2:integer;
begin
clrscr;
write('Vvedite pervoe predlozhenie: ');
readln(a);
write('Vvedite vtoroe predlozhenie: ');
readln(b);
kol1:=0;
for i:=1 to length(a) do
if a=bukva then inc(kol1);
kol2:=0;
for i:=1 to length(b) do
if b=bukva then inc(kol2);
kol1:=round(100*kol1/length(a));
kol2:=round(100*kol2/length(b));
writeln('Bukva ',bukva,' zanimaet ',kol1,' % v pervom predlozhenii.');
writeln('Bukva ',bukva,' zanimaet ',kol2,' % vo vtorom predlozhenii.');
if kol1>kol2 then writeln('Dolia bukvy ',bukva,' v pervom predlozhenii bolshe.')
else
if kol1<kol2 then writeln('Dolia bukvy ',bukva,' vo vtorom predlozhenii bolshe.')
else writeln('Dolia bukvy ',bukva,' v oboih predlozheniah odinakova.');
readkey;
end.
[/syntax]
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Вторая:
[syntax="pascal"]
uses crt;
var a,b:string;
bukva:char;
i:byte;
k1,k2:integer;
begin
clrscr;
write('Vvedite pervoe predlozhenie: ');
readln(a);
write('Vvedite vtoroe predlozhenie: ');
readln(b);
write('Vvedite simvol: ');
bukva:=readkey;
write(bukva);
writeln;

i:=length(a);
k1:=0;
while i>0 do
begin
if a=bukva then
begin
k1:=i;
break;
end;
dec(i);
end;

i:=length(b);
k2:=0;
while i>0 do
begin
if b=bukva then
begin
k2:=i;
break;
end;
dec(i);
end;

if (k1>0) and (k2>0) then
begin
writeln('Simvol ',bukva,' v pervom predlozhenii na ',k1,' pozicii.');
writeln('Simvol ',bukva,' vo vtorom predlozhenii na ',k2,' pozicii.');
if k1>k2 then writeln('Poridkovyi nomer simvola ',bukva,' bolshe v pervom predlozhenii.')
else if k1<k2 then writeln('Poridkovyi nomer simvola ',bukva,' bolshe vo vtorom predlozhenii.')
else writeln('Simvol ',bukva,' v oboih predlozheniah imeet odinakovyi poriadkovyi nomer.');
end
else writeln('Simvol ',bukva,' v predlozheniah NE vstrechaetsia!');

readkey;
end.
[/syntax]
Нет религии выше истины
Мяфффка
Сообщения: 2
Зарегистрирован: 17 дек 2009, 14:49

dr.Jekill огромное спасибо что помогли
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Мяфффка писал(а):dr.Jekill огромное спасибо что помогли
Если помог, щелкните по кнопке "Спасибо" вверху сообщения (или на весы, в зависимости от настроек форума, или "Сказать этому пользователю спасибо", если у Вас отключенны картинки в браузере)
Нет религии выше истины
Ответить