Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 12.03.2012, 20:50   #1 (permalink)
alpysya
Новичок
 
Регистрация: 12.03.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Одномерный и двумерный массив

помогите решить задачи =_=
на языке паскаль
1)Дано целое целое число N и набор N ненулевых целых чисел.Вывести в том же порядке номера всех нечетных чисел из данного набора и и количество К таких чисел
2)Дана матрица размерами M*N.Элемент называется локальным минимумом, если он меньше всех окружающих его элементов.Заменить все локальные минимумы даной матрицы на 0.
заране спасибо))
alpysya вне форума   Ответить с цитированием

Старый 12.03.2012, 20:50
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Поищите информацию в похожих темах

Одномерный массив в Паскале
Дан одномерный массив X(N)

Старый 13.03.2012, 17:40   #2 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

С первой ясельной задачкой разбирайтесь самостоятельно, а вторая - пожалуйста:
Код:
Const
 M=8;
 N=16;
Var
 M1,M2:Array[1..M,1..N] of Byte;
 i,j,i1,j1:Integer;
 b:boolean;
Begin
 Randomize;
 For i:=1 to M do
  begin
   For j:=1 to N do
    begin
     M1[i,j]:=Random(255)+1;
     Write(M1[i,j]:4);
    end;
   writeln;
  end;
 writeln;
 M2:=M1;
 For i:=1 to M do
  For j:=1 to N do
   begin
    b:=true;
    i1:=i-2;
    j1:=j-2;
    Repeat
     Inc(i1);
     j1:=j-2;
     If (i1>0) and (i1<=M) then
      Repeat
       Inc(j1);
       If (j1>0) and (j1<=N) then
        If (M1[i1,j1]<=M1[i,j]) and Not((i1=i) and (j1=j)) then b:=false;
      Until (j1=j+1) or Not(b);
    Until (i1=i+1) or Not(b);
    If b then M2[i,j]:=0;
   end;
 For i:=1 to M do
  begin
   For j:=1 to N do
    Write(M2[i,j]:4);
   writeln;
  end;
 Readln;
End.
Vladimir_S вне форума   Ответить с цитированием
Старый 13.03.2012, 22:48   #3 (permalink)
alpysya
Новичок
 
Регистрация: 12.03.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

или у меня не то вычисляет или чтото не так написано =_=
мой изначальный код такой
PHP код:
var a,a2:array[0..11,0..11of integer;                 
im,jm:array[1..100of integer;                                              
i,j,i2,j2,n:integer;                                                         
begin                                                                      
for i:=0 to 11 do                                                       
 for 
j:=0 to 11 do                                                      
 
a[i,j]:=100;                                                             
  for 
i:=1 to 10 do begin                                             
   
for j:=1 to 10 do begin                                            
    a
[i,j]:=random(9)+1;                                              
  
write(a[i,j],'');                                                        
   
a2[i,j]:=a[i,j];                                                        
  
end;                                                                      
  
writeln;                                                                   
  
end;                                                                       
 for 
i:=1 to 10 do                                                         
for 
j:=1 to 10 do                                                          
   if ((
a[i,j]<a[i+1,j]) and (a[i,j]<a[i-1,j]) and(a[i,j]<a[i,j+1]) and(a[i,j]<a[i,j-1])
   
then begin            
   inc
(i2);                                                                  
   
im[i2]:=i;                                                                
   
inc(j2);                                                                  
   
jm[j2]:=j;                                                                
   
end;                                                                        
  
n:=i2;                                                                     
  for 
i:=1 to n do a[im[i],jm[i]]:=0;                                 
  
writeln;                                                                   
  for 
i:=1 to 10 do begin                                               
  
for j:=1 to 10 do                                                       
  
write(a[i,j],'');                                                          
  
writeln;                                                                   
  
readln;                                                                    
  
end;                                                                       
end
верен ли этот код?
alpysya вне форума   Ответить с цитированием
Старый 14.03.2012, 10:05   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от alpysya Посмотреть сообщение
верен ли этот код?
Уважаемый (-ая) Alpysya, откровенно говоря, ни малейшего желания разбираться с Вашим кодом у меня нет (как у других - не знаю), поскольку ведете Вы себя, мягко говоря, по отношению к нам не этично. Вот если бы Вы с самого начала выложили свой вариант решения и обратились за помощью по отладке - это было бы просто здорово, таким участникам (в отличие от "я в этом не шарю") я помогаю с большим удовольствием. А так - вчера я потратил время на написание и отладку программы, которая, кстати, оказалась не такой простой, как можно было предположить, а сегодня выясняется, что это всё "псу под хвост". Ну что же, если Вы программист - отлаживайте самостоятельно.
Так, на первый взгляд, обращаю внимание, что каждый не граничный по строке или столбцу элемент [i,j] матрицы окружает не 4, а 8 элементов: [i-1,j-1], [i-1,j], [i-1,j+1], [i,j-1], [i,j+1], [i+1,j-1], [i+1,j], [i+1,j+1]. Кроме того, "отбрасывание" элементов первой и последней строк, а также первого и последнего столбцов мне кажется неправомерным.
Впрочем, дело Ваше.
Vladimir_S вне форума   Ответить с цитированием
Старый 14.03.2012, 20:18   #5 (permalink)
alpysya
Новичок
 
Регистрация: 12.03.2012
Сообщений: 7
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

прошу прощения за свое неэтичное поведение
я благодарен вам за ваш труд и ваша программа действительно мне очень помогла
за то что вы потратили время на это.
спасибо вам огромное
alpysya вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 14.03.2012, 20:32   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от alpysya Посмотреть сообщение
ваша программа действительно мне очень помогла
Ну и славно.
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 10:43.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.