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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2008, 22:33   #1
катя@90
 
Регистрация: 15.11.2008
Сообщений: 3
По умолчанию помогите разобраться с массивами.очень нужно

очень нужна ваша помощь,никак не могу разобраться...

Пусть А – одномерный массив N целых чисел:
а) Поменять местами минимальный элемент и минимальный положительный элемент.
б) Проверить, является ли пятый отрицательный элемент четным, а если такого элемента нет – вывести сообщение.
в) Исключить из массива все отрицательные элементы.
катя@90 вне форума Ответить с цитированием
Старый 15.11.2008, 22:44   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Ну и что не ясно?
Показывай наработки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2008, 23:54   #3
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Код:
program q1;
uses crt;
var a:array[1..n] of integer;min,mas,temp,i,z,zz,k_v,v5:integer
короче 
1. Припускаєш шо 1ший елемент мінімальний 
min=a[1];
z:=i;
порівнюєш інші елементи з першим
if .... then
a[i]:=min
z:=i
то саме з макимальним
потім
а) 
 begin
    temp:=a[zz]
    a[zz]:=a[z]
    a[z]:=temp
b)temp:=0 
  for .. begin.
    if a[i]<0 then begin
if k_v <> 5  then
   k_v:=k_v+1
  
   else
  v5:=i;
end;
end;
if a[v5] mod 2 = 0 then
wrineln(' 5tuy vidyemnu element parnuy ')
else writeln('oshubka ;-) ');
c) //// dymayu takogo hvatut'
for i:=1 to n fo
  begin
    if a[i]> 0 then
       writeln(a[i])
    end;
readkey;
end.
якшо нехватить то просто l:=1...... if a[i]> 0 then begin a[i]:=somearray[l];
inc(l);
end;
потім виводоиш масив соме аррай)
P.S. Я старався написати так шо виправити цей брєд неможливо зато ідея правильна. Якшо ти хочаб чучуть знаєш паскаль то напишеш.
glhf (good luck have fun)
rUs_LAN вне форума Ответить с цитированием
Старый 16.11.2008, 00:38   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
цей брєд
Мда... Покажу ка я свою мыслю:
Код:
  var a:array[1..1000] of integer; e,min,minPlus,ma,mp,k,i,r:integer;
  potr:boolean;s:string;
begin
k:=1;
  readln(s);val(s,e,r); min:=e;minPlus:=e;
 repeat
  if (r=0) then begin
   {Исключить из массива все отрицательные элементы.}
    if e>=0 then  begin a[k]:=e;
     if minPlus>e then begin minPlus :=e;ma:=k; end;
     inc(k);
    end else
     if min>e then begin min :=e;mp:=k; end;
  end;
  readln(s);val(s,e,r);
 until (k=MaxInt)or(s='');
 {Поменять местами минимальный элемент и минимальный положительный элемент.}
 a[mp]:=min;
 a[ma]:=minPlus;
 if (k>=5)and(a[5]<0) then writeln('Пятый меньше нуля');
 for i:=1 to k do begin
  writeln(a[i]);
 end;  writeln;
 writeln('Минимум ',min,' Минимум положит',minplus);
 readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.11.2008, 00:59   #5
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

не клацав білше двох років на паскалі просто
там вродіби треба перевірити чи 5тий відємний елемент парний якшо я правильно зрозумів

Последний раз редактировалось rUs_LAN; 16.11.2008 в 01:17.
rUs_LAN вне форума Ответить с цитированием
Старый 16.11.2008, 01:12   #6
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

просвіти шо таке val() плс
rUs_LAN вне форума Ответить с цитированием
Старый 16.11.2008, 10:30   #7
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Код:
program q1;
uses crt;
const n= 10;
var minp,min,i,j,jj,tmp,k:integer;
a,b:array[1..n] of integer;
begin
        clrscr;
             for i:=1 to n do
               begin
                 write('Vvedit a[',i,']=');
                 readln(a[i]);
               end;
               min:=a[1];
             for i:=2 to n do
             begin
              if a[i]<min then
               begin
                 min:=a[i];
                 j:=i;
                end;
               end;
               minp:=32767;
              for i:=1 to n do
               begin
                if (a[i]>-1) and (a[i]<minp) then
                 begin
                  minp:=a[i];
                  jj:=i;
                 end;
                end;
                clrscr;
                for i:=1 to n do
                 writeln(' a[',i,']=',a[i]);

                writeln('element a[',j,']=',a[j],' minimalnuy');
                writeln('element a[',jj,']=',a[jj],' minimalno dodatniy');
                tmp:=a[j];
                a[j]:=a[jj];
                a[jj]:=tmp;
                  writeln('pominayem minimalnuy i minimalno dodatmiy element');
                 for i:=1 to n do
                    writeln(' a[',i,']=',a[i]);
                 for i:=1 to n do
                  begin
                   if a[i]<0 then
                    begin
                    
                      k:=k+1
                     if k=5 then
                     k:=i
                    end;
                   end;
                  if (a[k] < 0) and (a[k] mod 2 = 0)  then
                    writeln('pyatuy vidyemnuy element parnuy')
                  else
                   writeln('pyatuy vidyemnuy element neparnuy');
                   tmp:=1 ;
                 for i:=1 to n do
                   begin
                     if a[i]>0 then
                       begin
                            b[tmp]:=a[i];
                            inc(tmp);
                       end;
                   end;
                   writeln('masuv bez videmnux elementiv');
                   for i:=1 to tmp do
                     writeln('b[',i,']=',b[i]);
                   writeln('press any key to exit');
                   readkey;
                end.
min-мінімальне значення
minp-мінімальне додатьне значення
j,jj -номери мінімального і мінімальнододатьного числа
tmp - допоміжна змінна використовується щоб поміняти елементи масиву місцями

P.S. крім чиклу фор в школі більше нічо і не вивчив) Хай пробачать мене ті які нормально знають паскаль за обємність і ресурсоємкість.
Поможіть плс тема VBA бо неможу ніяк шось придумати вот і займаюсь фігнею.

Последний раз редактировалось rUs_LAN; 16.11.2008 в 14:34. Причина: маленька помилка
rUs_LAN вне форума Ответить с цитированием
Старый 16.11.2008, 13:07   #8
катя@90
 
Регистрация: 15.11.2008
Сообщений: 3
По умолчанию

спасибо большое за ваши варианты. Я вот вчер сама сидела.и вот что у меня получилось, но это только первя часть задания.

PHP код:
uses crt;
 const 
n=15;
 
type massive=array[1..nof real;
 const 
amassive=(-3,3,-2,0,7,8,-9,22,8,6,-7,5);
 var
    
b: array[1..nof real;
    
k,greal;
    
imax,imin,i,jinteger;
    
fmax,fminreal;
 
begin
      fmin
:= 1e38;
      
fmax:= -1e38;
      for 
i:=1 to n do
          
begin
               
if (a[i]<fminthen
                  begin
                  fmin
:=a[i];
                  
imin:=i
                  end
;
               if (
a[i]>fmaxthen
                  begin
                   fmax
:=a[i];
                   
imax:=i
                  end
;
          
end;
      
write'fmax=',fmax); writeln('  fmin= ',fmin);
      
write'imax=',imax); writeln('  imin=',imin);
      
k:=fmax;
      
b:=a;
      for 
i:=1 to n do
          if (
a[i]>0) and (a[i]<kthen
              begin
                   k
:=a[i];
                   
j:=i;
              
end;
      
b[j]:=k;
      
b[imin]:=a[imin];
      
g:=b[j];
      
b[j]:=b[imin];
      
b[imin]:=g;

         for 
i:=1 to n do
          
writeln(a[i],'          ',b[i]);

 
end
катя@90 вне форума Ответить с цитированием
Старый 16.11.2008, 13:48   #9
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Код:
uses crt;
 const n=15;
 type massive=array[1..n] of real;

 const a: massive=(-3,3,-2,0,7,8,-9,22,8,6,-10,5,7,7,-3);
 var
    b :array[1..n] of real;
    k,g :real;
    imax,imin,i,j :integer;
    fmax,fmin :real;
 begin
   clrscr;
      fmin:= 1e38;
      fmax:= -1e38;
      for i:=1 to n do
          begin
               if (a[i]<fmin) then
                  begin
                  fmin:=a[i];
                  imin:=i
                  end;
               if (a[i]>fmax) then
                  begin
                   fmax:=a[i];
                   imax:=i
                  end;
          end;
      write( 'fmax=',fmax:6:0); writeln('  fmin= ',fmin:6:0);
      write( 'imax=',imax:6); writeln('  imin=',imin:6);
      k:=fmax;
      for i:=1 to n do
      b[i]:=a[i];
      for i:=1 to n do
          if (a[i]>0) and (a[i]<k) then
              begin
                   k:=a[i];
                   j:=i;
              end;
      b[j]:=k;
      b[imin]:=a[imin];
      g:=b[j];
      b[j]:=b[imin];
      b[imin]:=g;

         for i:=1 to n do
          writeln(a[i]:6:0,'          ',b[i]:6:0);
          readkey;
   end.

Последний раз редактировалось rUs_LAN; 16.11.2008 в 14:19.
rUs_LAN вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться в двух вещах очень надо ( Droid Win Api 2 06.11.2008 18:31
Очень нужно сделать 2 програмы!!! Help !!! Помогите !!! Nazarik Помощь студентам 7 24.02.2007 01:51