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

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

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

> Помогите написать программу сравнения двух строк, Строки
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Женский
Реальное имя: Александра

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


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


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

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


Чтение из файла производится циклом while, т.к. заранее неизвестно количество строк.
Цикл for при инициализации определяет количество итераций и дальнейшее увеличение n в теле цикла уже не приводит к увеличению итераций. Это поведение прописано в стандарте Pascal.

Я не понимаю, какие строки должны сравниваться. Вот сравнили 1-ю и 2-ю, следом нужно сравнивать 2-ю и 3-ю или же 3-ю и 4-ю?

Если просто сравнивать строку с предыдущей, и сравнение выполнять по длине строки, то можно так
program CmpStr;

var
StrPrev, StrCurr: string;
LineNumber: integer;
begin

Assign(input, 'input.txt');
reset(input);
LineNumber := 0;
if not EOF(input) then
begin
readln(StrPrev);
LineNumber := 1;
end;
while not EOF(input) do
begin
{считываем очередную строку}
readln(StrCurr);
{увеличиваем количество считанных строк на 1}
Inc(LineNumber);

{сравниваем строки по их длине}
if length(StrCurr) > length(StrPrev) then
writeln('Строка ', LineNumber, ' больше строки ', pred(LineNumber));
if length(StrCurr) < length(StrPrev) then
writeln('Строка ', LineNumber, ' меньше строки ', pred(LineNumber));
if length(StrCurr) = length(StrPrev) then
writeln('Строка ', LineNumber, ' равна строке ', pred(LineNumber));

{для следующей итерации цикла текущая строка становится предыдущей}
StrPrev := StrCurr;
end;
Close(input);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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