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

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

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

 
 Ответить  Открыть новую тему 
> исправить 2 ошибки
berg
сообщение 23.01.2008 20:55
Сообщение #1





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

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


помогите исправить 2 ошибки, сил больше нет.
нужно сделать нормальную проверку на палиндромность и дублирование сделать с помощью insert, че-т не получается
const Nmax=100;
type T_Matrix = array[1..Nmax] of String;

procedure fill_array(var n: Integer; var a: T_Matrix);
var i,j,l: Integer;
s: String;
letters: Set of char;
begin
letters:=['А'..'я'];
read(s);
l:=length(s);
j:=1;
i:=1;
repeat
a[j]:='';
while (i<=l) AND NOT (s[i] in letters) do i:=i+1;
if i>l then break;
while (i<=l) AND (s[i] in letters) do begin
a[j]:=a[j]+s[i];
i:=i+1;
end;
j:=j+1;
until i>l;
n:=j-1;
end;

function num_vowels(s: String): Integer;
var i,n: Integer;
vowels: Set of char;
begin
vowels:=['А','Е','И','О','У','Э','Ю','Я','а','е','и','о','у','э','ю','я'];
n:=0;
for i:=1 to length(s) do
if s[i] in vowels then n:=n+1;
num_vowels:=n;
end;

procedure sort_vowels(n: Integer; var a: T_Matrix);
var i,j: Integer;
tmp: String;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if num_vowels(a[j])>num_vowels(a[i]) then begin
tmp:=a[i];
a[i]:=a[j];
a[j]:=tmp;
end;
end;

procedure double_vowels(n: Integer; var a: T_Matrix);
var i,j,k,l: Integer;
s: String;
vowels: Set of char;
begin
vowels:=['А','Е','И','О','У','Э','Ю','Я','а','е','и','о','у','э','ю','я'];
for i:=1 to n do begin
s:=a[i];
l:=length(s);
j:=1;
repeat
if s[j] in vowels then begin
l:=l+1;
setlength(s,l);
for k:=l downto j+1 do s[k]:=s[k-1];
j:=j+1;
end;
j:=j+1;
until j>l;
a[i]:=s;
end;
end;

procedure sort_alphabet(n: Integer; var a: T_Matrix);
var i,j: Integer;
tmp: String;
begin
for i:=1 to n-1 do
for j:=i+1 to n do
if AnsiLowerCase(a[j])<AnsiLowerCase(a[i]) then begin
tmp:=a[i];
a[i]:=a[j];
a[j]:=tmp;
end;
end;


var i,n,l,tmp: Integer;
s: String;
a: T_Matrix;
begin
reset(input,'input.txt');
rewrite(output,'output.txt');
fill_array(n,a);
//
tmp:=0;
for i:=1 to n do begin
s:=a[i];
l:=length(s);
if (l>1) AND (S[j])=(S[Length(S)-j+1]) then begin
tmp:=1;
sort_vowels(n,a);
break;
end;
end;
if tmp=0 then begin
double_vowels(n,a);
sort_alphabet(n,a);
end;
//
for i:=1 to n do write(a[i],' ');
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 23.01.2008 23:28
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

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


может, задание напишешь?...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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