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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите пожалуйста найти ошибку 
V
    Опции темы
Loginanton
Дата 26.12.2008, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Программа такая: мы вводим несколько строк (я сделал 10) чеголибо (к примеру просто циферки). Дальше программа должна блок строк перенести после какой то определённой строки, всё задаётся с клавиатуры. Компилятор никаких ошибок не видит, но программа работает неправильно. Вот пример как должна работать:
вводим:
1
2
3
4
5
6
7
8
9
10

1

2

3
результат:
3
1
2
4
5
6
7
8
9
10
Вот мой код:
Код

    program test;
    type
        aaa = ^bbb;
        bbb = record
            st : string;
            lnk : aaa;
            end;
    var
        a , tmp : aaa;
        i : byte;
        start , finish, place : byte;
        first , two , three , four , five , six : aaa;
        
{создание списка}
    procedure create_list;
    begin
        new(a);
        tmp := a;
        for i := 1 to 10 do begin
            readln(a^.st);
            new(a^.lnk);
            a := a^.lnk;
            end;
        a := nil;
        a := tmp;
          end;
{с клавиатуры откуда докуда и куда}
    procedure keyboard;
    begin
        writeln('Напишите номер строки с которой начнётся блок который будем перемещать');
        readln(start);
        writeln('Напишите номер строки которой оканчивается блок');
        readln(finish);
        writeln('Ну и натыкайте номер строки после которой будет помещён блок');
        readln(place);
    end;
{сохраняем нужные связи}
    procedure save_link;
    begin
              for i := 1 to start - 1 do
               a := a^.lnk;
              first := a;
              for i := start - 1 to start do
               a := a^.lnk;
              two := a;
              for i := start to finish - 1 do
               a := a^.lnk;
              three := a;
              for i := finish - 1 to finish do
               a := a^.lnk;
              four := a;
              for i := finish to place - 1 do
               a := a^.lnk;
              five := a;
              for i := place - 1 to place do
               a := a^.lnk;
              six := a;
              a := tmp;
    end;
{переставляем связи как надо}
    procedure link_link;
    begin
              first^.lnk := four;
                    three^.lnk := six;
        five^.lnk := two;

    end;
{применяем изменения}
    procedure link_ok;
          begin
        for i := 1 to start - 1 do
            a := a^.lnk;
        a := first;
        for i := start to finish - 1 do
            a := a^.lnk;
        a := three;
        for i := finish to place - 1 do
            a := a^.lnk;
        a := five;
                    a := tmp;
    end;
{выводим результаты на экран}
    procedure result_print;
    begin
        while a^.lnk <> nil do begin
            writeln(a^.st);
            a := a^.lnk;
            end;
        a := tmp;
        readln;
    end;
    begin
        create_list;
        keyboard;
        save_link;
        link_link;
        link_ok;
        result_print;
    end.

Помогите пожалуйста!
PM   Вверх
Dobermann
Дата 27.12.2008, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Loginanton @  26.12.2008,  19:27 Найти цитируемый пост)
Дальше программа должна блок строк перенести после какой то определённой строки, всё задаётся с клавиатуры. Компилятор никаких ошибок не видит, но программа работает неправильно.

По-русски напиши, что надо от программы...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

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

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

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

3. Оффтопить

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

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

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


 




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


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

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