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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.11.2009, 21:48   #1
redeezko
Пользователь
 
Аватар для redeezko
 
Регистрация: 16.10.2009
Сообщений: 16
По умолчанию задача на одномерный массив

пусть дан одномерный массив размерностью n, и Min-наименьшее, а Max-наибольшее из них. Получите в порядке возрастания все числа из интервала (min,max), которые не входят в данный массив.
Вот что я написал:
Код:
program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
const n=5;
type u=array [1..n] of integer;
var x:u;
   i,min,max,v,k,j,a:integer;
begin
  v:=0;
  writeln('vvedite massiv');
  for i:=1 to n do read(x[i]);
  for i:=1 to n do
      begin
        k:=i;
        for j:=i+1 to n do
            if x[j]<x[k] then k:=j;
        v:=x[i];
        x[i]:=x[k];
        x[k]:=v;
      end;
  min:=x[1];
  max:=x[n];
  while min<=max do
        begin
           if x[i]<>min then
               write(min,' ');
           min:=min+1;
           i:=i+1;
        end;
  readln;
  readln;
end.
но почему то у меня выводятся ВСЕ числа из данного интервала, кто знает подскажите где ошибка
redeezko вне форума Ответить с цитированием
Старый 20.11.2009, 23:09   #2
Sweta
Форумчанин
 
Регистрация: 22.11.2007
Сообщений: 664
По умолчанию

Код:
while min<=max do
        begin
           if x[i]<>min then
               write(min,' ');
           min:=min+1;
           i:=i+1;
        end;
Паскаль не знаю, программу исправить не могу..
Но по-моему эдесь не хватает исключения тех элементов, которые есть в массиве, т.е Вам необходимо еще проверить не входит ли каждое увеличенное число в заданный массив.
Неприятности приходят и уходят, а жизнь продолжается!
Sweta вне форума Ответить с цитированием
Старый 21.11.2009, 00:30   #3
redeezko
Пользователь
 
Аватар для redeezko
 
Регистрация: 16.10.2009
Сообщений: 16
По умолчанию

Вот именно это у меня и не получается..
redeezko вне форума Ответить с цитированием
Старый 21.11.2009, 05:13   #4
DmuS
Пользователь
 
Регистрация: 14.11.2009
Сообщений: 12
По умолчанию

Исключить элементы довольно просто, просто добавляем в цикл While цикл For пробега по массиву со счетчиком и условие, т.е.
Код:
 While i<max do
    Begin
      For j:=1 to n do
         If a[j]=i then
           h:=h+1;
      If h=0 then
        Begin
          Inc(k);
          b[k]:=i;
        End;
      Inc(i);
      h:=0;
    End;
Вот мой вариант программы:
Код:
 Program test;
 Uses crt;
  Type
      M=array [1..100] of Byte;
  Const
       n=5;
  Var
     a,b:M;
     i,j,h,k,min,max:Byte;
BEGIN
  ClrScr;
  For i:=1 to n do
     Read(a[i]);
  min:=a[i];
  max:=a[i];
  For i:=1 to n do
     Begin
       If min>a[i] then
         min:=a[i];
       If max<a[i] then
         max:=a[i];
     End;
  k:=0; h:=0;
  i:=min+1;
  While i<max do
    Begin
      For j:=1 to n do
         If a[j]=i then
           h:=h+1;
      If h=0 then
        Begin
          Inc(k);
          b[k]:=i;
        End;
      Inc(i);
      h:=0;
    End;
  For i:=1 to k do
     Write(b[i],' ');
  ReadKey;
END.
DmuS вне форума Ответить с цитированием
Старый 21.11.2009, 11:00   #5
redeezko
Пользователь
 
Аватар для redeezko
 
Регистрация: 16.10.2009
Сообщений: 16
По умолчанию

разобрался. спасибо большое за помощь
redeezko вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив в Delphi (Задача) Kawun Помощь студентам 10 18.06.2011 14:21
Задача на одномерный массив.... malova Помощь студентам 7 16.12.2009 17:22
Пожалуйста помогите в Delphi задача на одномерный массив Женя V. Помощь студентам 6 15.05.2009 22:56
задача на одномерный массив aiktz Помощь студентам 2 21.03.2009 03:41
Задача на одномерный массив AliVe Помощь студентам 1 19.11.2007 21:35