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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2015, 19:45   #1
Никита757
Пользователь
 
Регистрация: 14.05.2015
Сообщений: 57
По умолчанию Интерфейс

Описать программный интерфейс для работы со списком целых чисел и оформить его в виде отдельного модуля. Реализовать сортировку списка следующим способом: список разделить на n частей, каждый сортировать независимо, затем провести слияние в выходной список.
Помогите осуществить сортировку (например по возрастанию) и защиту от дурака сделать, то есть, например какую-нибудь букву ввел, а он не вылетел, а вывел сообщение, "введите число"
Pascal ABC
Код:
uses
  list_unit;
  
var
  list : PTItem;
  i, n, tmp : integer;
  
begin
  writeln('Сколько чисел вы хотите ввести?');
  readln(n);
  
  for i := 1 to n do
  begin
    writeln('Введите число №', i);
    readln(tmp);
    Ins(list, tmp);
  end;
  
  writeln('Список:');
  Showlist(list);
end.

Код:
unit list_unit;

interface

{uses
      Classes, SysUtils;}
      
type
 TDataTipe = integer;
 PTItem = ^TItem;
 TItem = Record
   Data : TDataTipe;
   Next : PTItem;
 end;
 
Procedure Ins(var Item: PTItem; Data: TDataTipe);
{Function Sort(a,b: integer) : boolean;}
Procedure Showlist(p : PTItem);

implementation

//Добавляем в список
Procedure Ins(var Item: PTItem; Data: TDataTipe);
var
  res : PTItem;
begin
    new(res);
    res^.Data:=Data;
    res^.Next:=Item;
    Item := res;
end;


// Сортируем
 
procedure Showlist(p: PTItem);
begin
  while p <> nil do
  begin
    writeln(p^.Data);
    p := p^.next;
  end;
end;
 
end.

Последний раз редактировалось Stilet; 26.10.2015 в 20:08.
Никита757 вне форума Ответить с цитированием
Старый 26.10.2015, 20:12   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Помогите осуществить сортировку
Вот тут я давал пример в том числе и сортировки списка:
http://www.programmersforum.ru/showthread.php?t=87357
Цитата:
и защиту от дурака сделать
Код:
var s:string; e:integer;
...
  for i := 1 to n do
  begin
    writeln('Введите число №', i);
    repeat
     readln(s); val(s,tmp,e);
     if e<>0 then write('Дуяк ты, маыщь. Вводи агхипгавигьно');
    until e=0;
    Ins(list, tmp);
  end;
Годится защита?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.10.2015, 20:19   #3
Никита757
Пользователь
 
Регистрация: 14.05.2015
Сообщений: 57
По умолчанию

насчет защиты, выдает ошибку времени исполнения, что еще можно сделать?
Никита757 вне форума Ответить с цитированием
Старый 26.10.2015, 21:22   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
выдает ошибку времени исполнения,
И как всегда "школа-студенчество" и "отладка" как инь и янь - Так близки, но недостижимы. Да?
Цитата:
что еще можно сделать?
Ничего )
Кроме "купи препода" конечно же
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
интерфейс БД Morgusha C/C++ Базы данных 2 13.06.2012 02:00
Интерфейс на С++ Niit Общие вопросы C/C++ 32 27.03.2012 21:57
разработать интерфейс для дисков - интерфейс програмный Notformal Помощь студентам 0 01.11.2011 22:52
Интерфейс webber Мультимедиа в Delphi 1 15.10.2010 18:17
Интерфейс masterlomaster Помощь студентам 3 22.10.2009 11:42