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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2014, 22:36   #1
Najl
 
Регистрация: 09.06.2014
Сообщений: 4
По умолчанию Помогите расшифровать код

Нашел в интернете задание (с кодом), которое похоже на моё. Хочу воспользоваться им как примером для своего задания.
Код:

Цитата:
procedure Find; // Процедура поиска жильца
var
s0, s1: string;
i: integer;
fnd: boolean;
begin
fnd:= false;
for i := 0 to 4 do // Ищем по одноместным номерам
if (Pos(s, mas1[i]) <> 0) AND ((mas1[i][length(s)+1] = ' ')
OR (mas1[i][length(s) + 1] = '.')) then
{Нашли вхождение фамилии в массиве}
begin
if fnd then
begin
writeln('Таких жильцов несколько! Введите инициалы жильца');
readln(s0); // Запомнили введёные данные с клавиатуры

s:= s + ' ' + s0; // Добавили к фамилии инициалы
Find; // Запуск процедуры поиска с начала
exit; // Выход из процедуры
end;
s1:= ('Жилец с фамилией ' + s + ' проживает в номере') + IntToStr(i + 1);
fnd:= true;
end;
for i:= 0 to 9 do // Ищем по двухместным номерам
begin
if (Pos(s, mas2[0, i]) <> 0) AND ((mas2[0, i][length(s) + 1] = ' ')
OR (length(mas2[0, i]) = length(s))
OR (mas2[0, i][length(s) + 1] = '.')) then
{Нашли вхождение фамилии в массиве}

begin
if fnd then
begin
writeln('Таких жильцов несколько! Введите инициалы жильца');
readln(s0); // Запомнили введёные данные с клавиатуры

s:= s + ' ' + s0; // Добавили к фамилии инициалы
Find; // Запуск процедуры поиска с начала
exit; // Выход из процедуры
end;
s1:= ('Жилец с фамилией ' + s + ' проживает в номере ') + IntToStr(i + 6);
fnd:= true;
end;
if (Pos(s, mas2[1, i]) <> 0) AND ((mas2[1, i][length(s) + 1] = ' ')
OR (length(mas2[1, i]) = length(s))
OR (mas2[1, i][length(s) + 1] = '.')) then
{Нашли вхождение фамилии в массиве}
begin if fnd then
begin
writeln('Таких жильцов несколько! Введите инициалы жильца');
readln(s0); // Запомнили введёные данные с клавиатуры

s:= s + ' ' + s0; // Добавили к фамилии инициалы
Find; // Запуск процедуры поиска с начала
exit; // Выход из процедуры
end;
s1:= ('Жилец с фамилией' + s + ' проживает в номере ') + IntToStr(i + 6);
fnd:= true;
end;
end;
if not fnd then
writeln('Жильца с фамилией ' + s + ' нет') // Вывод результата поиска
else
begin
writeln(s1); // Вывод результата поиска
end;

end;

end.
Не могу разобраться с
Цитата:
if (Pos(s, mas1[i]) <> 0) AND ((mas1[i][length(s) + 1] = ' ')
OR (length(mas1[i]) = length(s))

OR (mas1[i][length(s) + 1] = '.')) then
далее с
Цитата:
if (Pos(s, mas2[0, i]) <> 0) AND ((mas2[0, i][length(s) + 1] = ' ')
OR (length(mas2[0, i]) = length(s))
OR (mas2[0, i][length(s) + 1] = '.')) then
и вот с этим кодом
Цитата:
if (Pos(s, mas2[1, i]) <> 0) AND ((mas2[1, i][length(s) + 1] = ' ')
OR (length(mas2[1, i]) = length(s))
OR (mas2[1, i][length(s) + 1] = '.')) then
Может ли кто нибудь расшифровать, так сказать перевести на русский, что озночает.
Спасибо
Najl вне форума Ответить с цитированием
Старый 09.06.2014, 23:04   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Цитата:
Может ли кто нибудь расшифровать, так сказать перевести на русский, что озночает
Можно
Код:
if (Pos(s, mas1[i]) <> 0) AND ((mas1[i][length(s) + 1] = ' ')// Если строка s присутствует в mas1[i] и символ в mas1[i] в позиции равной длине s + 1 равен пробелу
 OR (length(mas1[i]) = length(s))// или длина mas1[i] равна длине s

 OR (mas1[i][length(s) + 1] = '.')) then // или символ mas1[i] в позиции равной длине s + 1 равен точке
Код:
if (Pos(s, mas2[0, i]) <> 0) AND ((mas2[0, i][length(s) + 1] = ' ')// если s присутствует в строке mas2[0, i] (видимо это двумерный массив)
 OR (length(mas2[0, i]) = length(s)) // или длина строки mas2[0, i] равна длине s
 OR (mas2[0, i][length(s) + 1] = '.')) then // или символ строки mas2[0, i] в позиции равной длине s + 1 равен точке, то..
Код:
if (Pos(s, mas2[1, i]) <> 0) AND ((mas2[1, i][length(s) + 1] = ' ') // если строка s содержится в mas2[1, i], и символ в строке mas2[1, i] в позиции равной длине s + 1 равен пробелу
 OR (length(mas2[1, i]) = length(s)) // или длина mas2[1, i] равна длине s
 OR (mas2[1, i][length(s) + 1] = '.')) then // или символ в строке mas2[1, i] в позиции равной длине s + 1 равен точке, то...
doktor255 вне форума Ответить с цитированием
Старый 13.06.2014, 10:15   #3
Najl
 
Регистрация: 09.06.2014
Сообщений: 4
По умолчанию

спасибо...
Najl вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу расшифровать код Snave Паскаль, Turbo Pascal, PascalABC.NET 6 04.10.2011 00:00
Расшифровать код (передача ФАЛОВ через сокеты) хомякec Помощь студентам 1 18.05.2010 15:54
расшифровать в ASCII потом цифры расшифровать в бинарный код viorel Общие вопросы Delphi 1 07.05.2010 14:43
расшифровать начальный код API ассемблер123 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 28.04.2010 21:02