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

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

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

 
Closed Topic Открыть новую тему 
> дописать все гласные латинские буквы из строки S1 в конец S2, Функции...вроде всё так, но что-то не то
сообщение
Сообщение #1


Новичок
*

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

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


Воть... решаю задачку и не могу понять где у меня ошибка... люди умные, гляньте плииз ;)

Условие задачи:
Разработать функцию Add(const S1,S2:string):string, дописывающую все гласные латинские буквы из строки S1 в конец S2 и выдающей получившуюся строку в качестве результата. С помощью данной функции в каждую строку из введенного набора дописать все гласные латинские буквы из предыдущей строки. Гласными считаются следующие буквы: aeiouyAEIOUY.

Вход
В первой строке входа дано количество строк N. Затем следуют N строк, по одной в каждой строке.
Выход
На выход напечатать строки результата, по одной в каждой строке.

Пример
Вход:
3
abc
abd
as

Выход:
abc
abda
asa


Вот мой код...
Код


 function Add(S1, S2:string):string;
var i:integer;
begin
for i:=Length(S1) downto 1 do
begin
if (S1[i]='A') or (S1[i]='E') or (S1[i]='I') or (S1[i]='U') or
(S1[i]='O') or (S1[i]='Y') or (S1[i]='a') or (S1[i]='e') or
(S1[i]='u') or (S1[i]='o') or (S1[i]='y') then Insert(S1[i],S2,Length(S2)+1);
end;
Result:=S2;
end;

 var
 S1,S2:string;
 N,i:integer;
 Mas: array [1..100] of string;
 begin
 Write('');
 ReadLn(N);
 for i:=1 to N do
 begin
 Write('');
 ReadLn(Mas[i]);
 end;
 for i:=1 to N-1 do
 begin
 S1:=Mas[i];
 S2:=Mas[i+1];
 S2:=Add(S1,S2);
 WriteLn(S2);
 ReadLn;
 end;
end.


Что-то у меня на выходе не то получается... ;(( Help !

Сообщение отредактировано: мисс_граффити -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


-
****

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

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


попробуй в последнем цикле заменить
Код
for i:=1 to N-1 do
begin
S1:=Mas[i];
S2:=Mas[i+1];

на
Код

for i:=n-1 downto 1 do
begin
S1:=Mas[i+1];
S2:=Mas[i];


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Ну, зачем же так длинно? Можно и покороче:
const
vowels = ['A', 'E', 'I', 'O', 'U', 'Y'];

function Add(const S1, S2: string): string;
var
i: byte;
s: string;
begin
s := s2;
{ Зачем здесь надо было идти от конца строки к началу? }
for i := 1 to Length(S1) do
if upcase(s1[i]) in vowels
then s := s + s1[i];
Add := s;
end;

var
N, i: integer;
Mas: array [0 .. 100] of string;
begin
mas[0] := ''; { это чтобы и первая строка распечатывалась }
Write('n = '); ReadLn(N);
for i := 1 to N do begin
Write(i, '.s = '); ReadLn(Mas[i])
end;

for i:=0 to N-1 do
begin
Writeln(add(mas[i], mas[i + 1]));
ReadLn
end;
end.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Новичок
*

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

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


Спасибо...
только вот серверу не нравится это решение...видимо нужно чтобы на выходе все три строки сразу вылетали...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


-
****

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

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


2Valkirie: какому серверу?


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Опять TIMUS? :o
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Новичок
*

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

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


Институтскому...
Я же не от нечего делать задачки тут сижу решаю...

А что такое TIMUS ?

Есть такой "acm.timus.ru" для решения задач online smile.gif

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


Новичок
*

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

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


нет..нет... никаких тимусов... ;(((
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






Цитата(Valkirie @ 26.04.05 21:03)
видимо нужно чтобы на выходе все три строки сразу вылетали...

Ну, если только убрать ReadLn из цикла...
for i:=0 to N-1 do
Writeln(add(mas[i], mas[i + 1]));


А иначе никак не получится сделать - чтоб сразу вылетали... Это ЗДЕСЬ 3 строки, а если будет 10?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


-
****

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

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


А случайно не нужно читать все данные из файла и вывод делать в файл???? Может серверу нужна только функция..


--------------------
бб
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.04.2024 22:06
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name