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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.12.2016, 19:19   #1
ANIRAM
 
Регистрация: 21.05.2015
Сообщений: 8
По умолчанию вывести в каждой строке максимальное слова на "а"

помогите найти ошибку, пожалуйста! все процедуры работают кроме максимального слова на "а"
program Project251;

{$APPTYPE CONSOLE}

uses
SysUtils;

type mass=array[1..20] of string;

var a:mass; n,i,nmax,j:integer; m,st,stmax,slovo:string; ch:char;

procedure vvod(var a:mass; var n:integer);
var i:integer;
begin
writeln ('vvedite kol-vo strok') ;
readln(n);
writeln('vvedite ',n,' strok');
for I:=1 to n do
readln(a[i]);
end;
procedure vivod (a:mass; n:integer);
begin for i:=1 to n do
writeln(a[i]);
end;

procedure udal_prob(var st:string);
var P:INTEGER;
begin
p:=pos (' ',st) ;
while p>0 do begin
delete (st,p,1);
p:=pos(' ',st);
end;
if st[1]=' ' then delete (st,1,1);
if st[length(st)]=' ' then delete (st,length(st),1);
end;

procedure max_word(VAR a:maSs;VAR n:integer);
var i,j,nmax:integer; slovo,st:string;
begin

for i:=1 to n do
begin
nmax:=0;
slovo:='';
st:='';
a[i]:=a[i]+' ';
for j:=1 to length(a[i]) do
begin
if a[i][j]<>' ' then
slovo:=slovo+ST[I]
else begin
if (length(slovo)>nmax)and(slovo[1]='а') then begin
st:=slovo;
nmax:=length(slovo);
end;
slovo:='';
end;
end;
if st<>'' then
writeln('SAMOE DLINNIE NA "A" V', i, ' STRIKE ', st)
else
writeln('SLOVA NA "A" NET ' , i , ' STROKE');
end;
end;



procedure cifra (var st:string );
var n:integer;
begin

for j:= length(st) downto 1 do
if st[j] in ['0'..'9'] then delete(st,j,1);
end;



begin
{ TODO -oUser -cConsole Main : Insert code here }
vvod(a,n);
WRITELN('STROKI') ;
vivod(a,n);
max_word(a,n);

for i:=1 to n do begin
udal_prob(a[i]) ;
end;
writeln;
writeln ('stroki posle udalenia lishnih probelov') ;
vivod (a,n);
WRITELN;
WRITELN('udalenie CIFR') ;
for i:=1 to n do
cifra (a[i]);
vivod (a,n);

readln;
end.
ANIRAM вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") ZIRASS PHP 4 15.06.2016 14:23
из заданной текстовой строки вывести все слова с одинаковым количеством буквы "F" LanaTsvik Lazarus, Free Pascal, CodeTyphon 5 10.06.2016 19:31
Подсчитать количество букв "й", "ы" и "я", содержащихся в заданной строке. VoltZZZ Помощь студентам 2 01.03.2012 23:39
Вывести название соответствующей карты вида "шестерка бубен", "дама червей","туз треф" и т.п. воваава Помощь студентам 3 01.12.2011 12:50
Найти слова, в которых доля букв "а" и "е" минимальна. Андрей_ка Паскаль, Turbo Pascal, PascalABC.NET 0 10.10.2010 16:56