Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> что делает каждая строка данного кода 
:(
    Опции темы
natasha92
  Дата 21.10.2009, 05:45 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 14.9.2009

Репутация: нет
Всего: -1



Напишите пожалуйста,что делает каждая строка этого кода. Немного не понимаю.
Код

var
    count, i, m , j: integer;
    input : string;
    s, t : string;

begin
    count := 0;
    write('Vvedite stroky: ');
    readln(input);
    i:= length(input) - 1;
    while input[i] <> ' ' do dec(i);
    s:= copy(input, i + 1, length(input) - i - 1);
    for j:= 1 to i do
    begin
      if input[j] <> ' ' then
        t:= t + input[j]
      else
      begin
        if (t <> ' ') and (t <> s) then
        writeln('  ', copy(t, 1, length(t) - 1));
        t:= ' ';
      end;
    end;
    readln;
end.

PM MAIL   Вверх
MetalFan
Дата 21.10.2009, 18:17 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Аццкий Сотона
****


Профиль
Группа: Комодератор
Сообщений: 3815
Регистрация: 2.10.2006
Где: Moscow

Репутация: нет
Всего: 128



на лекции надо было ходить. и при чем тут раздел "кроссплатформенные технологии"?


--------------------
There are always someone smarter than you...
PM MAIL   Вверх
Robus
Дата 1.11.2009, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Entire



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 15.12.2005

Репутация: нет
Всего: 1



Код

//Выделяет память
var
//Выделяет память 4 раза по 4 байта, с гранулярностью 4 байта
    count, i, m , j: integer;
//Выделяет память 6 байт
    input : string;
//Выделяет память 2 раза по 6 байт
    s, t : string;

//Компилятор начинает понимать "ЭТО" код програмы
begin
//Затирает 4 байта памяти ноликами
    count := 0;
//Записывает в поток IOStrem, 16 байт
    write('Vvedite stroky: ');
//Читает из потока IOStrem байты, до появления кода 13. Записывает, всё что прочитает в точку памяти Addr(input)
    readln(input);
//Затирает 4 байта данных значением лежащим по адресу Addr(input)-4
    i:= length(input) - 1;
//Начинается цикл, в котором учавствуют переменная лежащая по адресу Addr(i) и набором байт лежащим по адресу Addr(input)
    while input[i] <> ' ' do dec(i);
//Копируются данные из адреса Addr(input) в адрес Addr(s), и стирается 4 байта по адресу Addr(s)-4 значением (length(input) - i - 1)
    s:= copy(input, i + 1, length(input) - i - 1);
//Начинается цикл, в котором учавствет точка памяти Addr(j), длинной 4 байта и точка памяти Addr(i) также длиной 4 байта
    for j:= 1 to i do
//Начало начала цикла
    begin
//Проверка значения точки памяти Addr(input) на 0
      if input[j] <> ' ' then
//Если таки там было 0, то дописать в точку памяти (Addr(t)+PDWORD(Addr(t)-4)^) длинной 1 байта и значение точки памтяи Addr(input[j]) длиной 1 байт
        t:= t + input[j]
//Начало если то, что проверяти таки не НОЛЬ
      else
//Начало начала если то, что проверяти таки не НОЛЬ
      begin
//Проверяем значение точки памтяи (Addr(t)-4) длинной 4 байта на НОЛЬ, а также сравнить данные точки памтяи Addr(t) и Addr(s) длинной (PDWORD(Addr(t)-4)^)
        if (t <> ' ') and (t <> s) then
//Если удалось сравнить перечисленное выше на 2 и 0 десятых строчки выше, то записать данные в файловый поток IOStream код пробела, а так же данные в адресе Addr(t), размером лежащим по адресу (Addr(t)-4) но на еденичку меньше, что бы мало не показалось
        writeln('  ', copy(t, 1, length(t) - 1));
//Записать по адресу Addr(t) число 32, и по адресу (Addr(t)-4) четыре байтика нулей
        t:= ' ';
//Окончание того, что начиналось если то, что проверяти таки не НОЛЬ
      end;
//Генерация в коде JUMP'а, на адресс begin'а, что определял начало цикла
    end;
//Чтение из IOStream'а данных, ожидая числа 13
    readln;
//Конец понимания компилятором, что "ЭТО" было кодом
end.


Прости, но иногда убивают такие вот вопросы. Человек может не знать чего-то, но он не имеет право не знать НИЧЕГО !!!
PM MAIL   Вверх
volvo877
Дата 1.11.2009, 17:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Robus @  1.11.2009,  16:04 Найти цитируемый пост)
Выделяет память 4 раза по 4 байта, с гранулярностью 4 байта
Дальше можно не читать. Бред. На моем компиляторе выделяется 4 раза по 2 байта, что я делаю не так? 
Цитата(Robus @  1.11.2009,  16:04 Найти цитируемый пост)
Прости, но иногда убивают такие вот вопросы.
Такие ответы убивают не меньше. 
PM MAIL   Вверх
Robus
Дата 1.11.2009, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Entire



Профиль
Группа: Участник
Сообщений: 32
Регистрация: 15.12.2005

Репутация: нет
Всего: 1



Цитата(volvo877 @  1.11.2009,  17:21 Найти цитируемый пост)
 делаю не так? 

Компилируете под не 32-ух битный размер данных. Всё вы делаете так как надо.


Цитата(natasha92 @  21.10.2009,  05:45 Найти цитируемый пост)
Напишите пожалуйста,что делает каждая строка этого кода. Немного не понимаю.

Вы напишите что вы хотите получить ? Поскольку либо программа не доделанная, либо задача идиотская ... Результат разбивает на слова отдиляемые пробелом, и высвечивает каждое слово в строке на экране, но почему-то на выкидывается один символ каждого слова, плюс ко всему этому последнее слова так же выкидывается. Странная задача! Если в задаче надо отобразить каждое слово в строке, то делается это всё на много проще.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.1024 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.