Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

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

Цитата:
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
Репутация: 94

icq: 521823
По умолчанию

Цитата:
Может ли кто нибудь расшифровать, так сказать перевести на русский, что озночает
Можно
Код:

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
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу расшифровать код Snave Паскаль 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 5 28.04.2010 21:02


02:54.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru