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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.03.2013, 19:22   #1
Liinad
Пользователь
 
Регистрация: 09.11.2012
Сообщений: 29
По умолчанию Одномерный массив. Pascal

Получить в порядке уменьшения все целые числа с интервала (max,min), которые не входят в массив f. Не много пропустил эту тему, кому не сложно помогите закончить программку.

Код:
Var
   f,p : array [1..20] of integer;
   i,n,min,max : integer;
begin
     writeln('Введите количество елементов массива : ');
     readln(n);
     writeln('Введите елементы массива : ');
     For i:=1 to n do
        readln(f[i]);
     writeln('Полученный массив : ');
     For i:=1 to n do
        write(f[i]:4);
        writeln;
     min:=f[1];
     max:=f[20];
     // Найдём минимальный и максимальный елементы массива
     For i:=1 to n do
        begin
             If f[i]>max then
               max:=f[i];
             If f[i]<min then
               min:=f[i];
        end;
        writeln('Максимальный елемент : ', max,'   Минимальный елемент : ', min);





end.
Liinad вне форума Ответить с цитированием
Старый 27.03.2013, 14:45   #2
Liinad
Пользователь
 
Регистрация: 09.11.2012
Сообщений: 29
По умолчанию

Что такое сложное задание? Или никто не хочет помочь?
Liinad вне форума Ответить с цитированием
Старый 27.03.2013, 15:04   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

наоборот. настолько простое (вы половину уже сделали самостоятельно), что все решили, что Вы и дальше прекрасно справитесь самостоятельно

Код:

var 
   f,p : array [1..20] of integer;
   i,n,min,max : integer;
   j : integer;
   isNumberInArray : boolean;
begin

     min:=f[1];
     max:=f[20];
     // Найдём минимальный и максимальный елементы массива
     For i:=1 to n do
        begin
             If f[i]>max then
               max:=f[i];
             If f[i]<min then
               min:=f[i];
        end;
        writeln('Максимальный елемент : ', max,'   Минимальный елемент : ', min);
        {вывод чисел}
        if (min+1)>=(max-1) then WriteLn('В массиве нет требуемых чисел')
        else {возможно, такие числа в массиве есть, будем находить их и выводить в убывающем порядке}
            begin
               WriteLn('Числа: ')
               for i:=max-1 downto min+1 do begin

                  {проверим, если ли число i в массиве}
                  isNumberInArray := false;
                  for j:=1 to n do
                     if f[j] = i then begin
                            isNumberInArray := true; 
                            break
                     end;

                 if not isNumberInArray then {числа НЕТ в исходном массиве}
                     Write(i:4,' ');
               end;
               WriteLn;
            end;
"серым" цветом выделен ваш код, для ориентации в коде...

p.s. писал прямо на форуме, возможные опечатки/недочёты...

Последний раз редактировалось Serge_Bliznykov; 27.03.2013 в 15:10.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.03.2013, 16:19   #4
Liinad
Пользователь
 
Регистрация: 09.11.2012
Сообщений: 29
По умолчанию

Спасибо сейчас разберусь
Вот немного переделал под себя, так как не все понял что вы написали
Код:
Var
   f,p : array [1..20] of integer;
   i,j,n,min,max : integer;
begin
     writeln('Введите количество элементов массива : ');
     readln(n);
     writeln('Введите элементы массива : ');
     For i:=1 to n do
        readln(f[i]);
     writeln('Полученный массив : ');
     For i:=1 to n do
        write(f[i]:4);
        writeln;
     min:=f[1];
     max:=f[20];
     For i:=1 to n do
        begin
             If f[i]>max then
               max:=f[i];
             If f[i]<min then
               min:=f[i];
        end;
        writeln('Максимальный элемент : ', max,'   Минимальный элемент : ', min);
     For i:=max downto min do
        begin
             For j:=1 to n do
                     if f[j]=i then
                       write(f[j]:4);
        end;
end.

Последний раз редактировалось Liinad; 27.03.2013 в 16:27.
Liinad вне форума Ответить с цитированием
Старый 27.03.2013, 17:07   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

нет, Вы сделали неправильно.

Цитата:
Получить в порядке уменьшения все целые числа с интервала (max,min), которые не входят в массив f.
выделил в задании, то, что Вы не так поняли (или не так воплотили в коде )


Цитата:
так как не все понял что вы написали
что именно не понятно - спрашивайте..


p.s. а зачем Вам второй массив (который p) ?
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив (Pascal) Groslerg Помощь студентам 4 07.11.2012 19:28
одномерный массив(pascal) buslik Помощь студентам 2 08.12.2011 17:57
Одномерный массив (PASCAL) KirillP Помощь студентам 13 12.09.2010 09:10
Pascal, Одномерный массив Nastik Помощь студентам 1 23.06.2010 22:15
Одномерный массив (pascal) voodavari Помощь студентам 2 20.05.2010 07:16