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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2009, 12:39   #1
margarit0chka
 
Аватар для margarit0chka
 
Регистрация: 29.11.2009
Сообщений: 6
По умолчанию не выдает данные на экран

Delphi 2010
Программа должна выдавать данные на экран и ждать действия от пользователя! но этого не происходит( программа компилируется и сразу завершается(! она точно написана правильно. Что делать?
Лучше быть умным,но часто тупить,чем быть тупым,но часто умничать...
margarit0chka вне форума Ответить с цитированием
Старый 29.11.2009, 12:41   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

перед end. написать readln;
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 29.11.2009, 18:06   #3
margarit0chka
 
Аватар для margarit0chka
 
Регистрация: 29.11.2009
Сообщений: 6
По умолчанию

это есть! в delphi 7 все работает! а в 2010 нет! что делать?
Лучше быть умным,но часто тупить,чем быть тупым,но часто умничать...

Последний раз редактировалось margarit0chka; 29.11.2009 в 20:37.
margarit0chka вне форума Ответить с цитированием
Старый 29.11.2009, 20:41   #4
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Цитата:
Сообщение от margarit0chka Посмотреть сообщение
она точно написана правильно. Что делать?
Выложите код!
Lemo вне форума Ответить с цитированием
Старый 29.11.2009, 20:56   #5
margarit0chka
 
Аватар для margarit0chka
 
Регистрация: 29.11.2009
Сообщений: 6
По умолчанию

program Lab1;
{Вариант задания: простой односвязный список.
Дополнительная операция: перенести узлы второго списка
на четные места в первый список}
Код:
Type
  Link = ^Node;
  Node = record
    Data: Integer;
    Next: Link;
  end;
  List = Link;

Var
  choice: Integer;
  item: Integer;
  list1, list2: List;
  curList: ^List;

procedure Prompt;
{Приглашение к вводу команды}
begin
  Writeln;
  Writeln('Действие со списком:');
  Writeln('-1 - Выбрать 1-й список;  -2 - Выбрать 2-й список');
  Writeln(' 1 - Добавить в голову;    2 - Добавить в хвост');
  Writeln(' 3 - Удалить первый;       4 - Удалить последний');
  Writeln(' 5 - Слить списки с чередованием узлов');
  Writeln(' 0 - Завершить работу');
  Write('> ');
end;  {Prompt}

procedure InitList(var L: List);
{Инициализация списка}
begin
  L := nil;
end;  {InitList}

procedure FreeList(var L: List);
{Освобождение памяти списка}
var
  p: Link;
begin
  while L <> nil do begin
    p := L;
    L := L^.Next;
    Dispose(p);
  end;
end;  {FreeList}

procedure ShowList(num: Integer; L: List);
begin
  write(num, ')');
  if L = nil then  {Пустой список}
    Write(' ->')
  else begin
    repeat
      Write(' -> ', L^.Data);
      L := L^.Next;
    until L = nil;
  end;
  Writeln;
end;  {ShowList}

procedure ShowLists;
var
  num: Integer;
begin
  if curList^ = list1 then
    num := 1
  else
    num := 2;
  Writeln;
  Writeln('Текущий список: ', num);
  ShowList(1, list1);
  ShowList(2, list2);
end;  {ShowLists}

procedure InHead(var L: List; item: Integer);
{Вставка узла с данными item в голову списка L}
var
  p: Link;
begin
  p := New(Link);
  p^.Data := item;
  p^.Next := L;
  L := p;
end;  {InHead}

procedure InTail(var L: List; item: Integer);
{Вставка узла с данными item в хвост списка L}
var
  p, q: Link;
begin
  p := New(Link);
  p^.Data := item;
  p^.Next := nil;
  if L = nil then
    L := p
  else begin
    q := L;
    while q^.Next <> nil do
      q := q^.Next;
      {Теперь q указывает на последний узел}
    q^.Next := p;
    p^.Next := nil;
  end;
end;  {InTail}

procedure DelHead(var L: List);
{Удаление первого узла списка}
var
  p: Link;
begin
  if L <> nil then begin
    p:= L;
    L := L^.Next;
    Dispose(p);
  end;
end;  {DelHead}

procedure DelTail(var L: List);
{Удаление последнего узла списка}
var
  p: Link;
begin
  if L <> nil then begin
    if L^.Next = nil then begin {Список из 1 узла}
      Dispose(L);
      L := nil;
    end
    else begin {Как минимум 2 узла}
      p := L;
      while p^.Next^.Next <> nil do
        p := p^.Next;
      {Теперь p указывает на предпоследний узел}
      Dispose(p^.Next);
      p^.Next := nil;
    end;
  end;
end;  {DelTail}

procedure MergeLists;
{Переносит узлы из 2-го списка на четные позиции в первом списке.
 Когда один из списков кончается, продолжает до конца другого.}
var
  p1, p2, q1, q2: Link;
begin
  if list1 = nil then begin
    list1 := list2;
    list2 := nil;
  end;
  p1 := list1;
  p2 := list2;
  while list2 <> nil do begin
    if p1^.Next <> nil then begin
      q1 := p1^.Next;
      q2 := p2^.Next;
      p2^.Next := q1;
      p1^.Next := p2;
      p1 := q1;
      list2 := q2;
      p2 := list2;
    end else begin
      p1^.Next := list2;
      list2 := nil;
    end;
  end;
end;  {MergeLists}

begin
  {Основная программа}
  InitList(list1);
  InitList(list2);
  curList := @list1;
  ShowLists;
  repeat
    Prompt;
    readln(choice);
    case choice of
      -1: curList := @list1;
      -2: curList := @list2;
      0: begin
           FreeList(list1);
           FreeList(list2);
           break;
         end;
      1: begin
           Write('Введите добавляемое значение: ');
           Readln(item);
           InHead(curList^, item);
         end;
      2: begin
           Write('Введите добавляемое значение: ');
           Readln(item);
           InTail(curList^, item);
         end;
      3: begin
           DelHead(curList^);
         end;
      4: begin
           DelTail(curList^);
         end;
      5: begin
           MergeLists;
         end;
    else
    end;
    ShowLists;
  until choice = 0;
  FreeList(list1);
  FreeList(list2);
end.
Даже элементарный код не работает! это что то с Delphi(((
Лучше быть умным,но часто тупить,чем быть тупым,но часто умничать...

Последний раз редактировалось Stilet; 30.11.2009 в 11:49.
margarit0chka вне форума Ответить с цитированием
Старый 30.11.2009, 11:52   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Все там работает, ты просто забываешь что Делфи это не паскаль, и в его консольной программе нужно по другому начало писать.
Допиши к своему коду как минимум
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
Сверху и радуйся.

Да и учти - русские буквы конслоль не любит, так что русские слова транслитом замени.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.11.2009, 21:58   #7
margarit0chka
 
Аватар для margarit0chka
 
Регистрация: 29.11.2009
Сообщений: 6
По умолчанию

Блин! с этой штучкой тоже не работает(((((
Лучше быть умным,но часто тупить,чем быть тупым,но часто умничать...
margarit0chka вне форума Ответить с цитированием
Старый 30.11.2009, 22:14   #8
lennon
Заблокирован
 
Регистрация: 18.11.2007
Сообщений: 254
По умолчанию

скакой такое "штучкой"?
Цитата:
Сообщение от Stilet Посмотреть сообщение

{$APPTYPE CONSOLE}
омг ) а чо оно должно работать? это какбЭ коментарий )))

ненадо блинкать, а создайте консольный тип проекта
File->CloseAll
File->New Project
lennon вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос выдает ошибку Romuald Microsoft Office Excel 2 15.04.2009 22:42
Старый жесткий диск вообщем не хочет форматировать, а новый синий экран выдает. Delia- Компьютерное железо 4 16.12.2008 18:13
Создание проги, которая выдает данные из файла Rusl92 Общие вопросы Delphi 3 07.09.2008 21:53
MasterSource - выдает ошибку nataly_ukr БД в Delphi 10 12.10.2007 13:49