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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.11.2015, 21:10   #1
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию Обработка матриц (паскаль АBC)

1)Дана последовательность целых чисел 1,2,...,100. Заполнить ими матрицу следующим образом
1 2 ...... 10
11 12 ... 20
21 22 ... 30
...................
91 92 ... 100
и распечатать.


2)Дана целочисленная матрица С(5,5), в которой имеются два одинаковых элемента. Найти их, напечатать их индексы.
Greschnik вне форума Ответить с цитированием
Старый 27.11.2015, 21:13   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Заполнить ими матрицу следующим образом
Код:
var a:[1..10,1..10] of integer;
 i,j,k:integer;
begin
 k:=1;
 for i:=1 to 10 do begin
  for j:=1 to 10 do begin
   a[i,j]:=k; inc(k);
  end;
 end;
Тут выводим матрицу
end.
Цитата:
в которой имеются два одинаковых элемента.
Только два? полюбому два?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2015, 21:17   #3
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

а почему от 1..до 10?...когда дано 1,2,....100...объясните пожалуйста

это вы про вторую?

Может вообще так?
Код:
Const n=5;
Var
  A:array[1..n] of integer;
  i,t,in1,in2:integer;
  b:boolean;
Begin
  For i:=1 to n do
    Begin
      write('A[',i,']: ');
      readln(A[i]);
    End;
  i:=1;b:=true;
  While (i<=n)and(b) do
    Begin
      t:=i;
      While (t<=n)and(b) do
        Begin
          if (A[i]=A[t])and(i<>t) then
            Begin
              in1:=i;
              in2:=t;
              b:=false;
            End;
          inc(t);
        End;
      inc(i);
    End;
    writeln('Одинаковые числа: их индексы ',in1,'',' ',in2);
    readln;
End.

Последний раз редактировалось Stilet; 27.11.2015 в 21:52.
Greschnik вне форума Ответить с цитированием
Старый 27.11.2015, 21:53   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
а почему от 1..до 10
А потому что 10*10=100.
А подбором номера для ячейки занимается "к".
Цитата:
Может вообще так?
вы функции уже учили?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.11.2015, 22:00   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Greschnik Посмотреть сообщение
2)Дана целочисленная матрица С(5,5), в которой имеются два одинаковых элемента. Найти их, напечатать их индексы.
Цитата:
Сообщение от Greschnik Посмотреть сообщение
Код:
Const n=5;
Var
  A:array[1..n] of integer;
 ........
End.
не вяжется одно к другому
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 27.11.2015, 22:03   #6
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

я думаю и такая подойдёт для 1-ой зад
Код:
const n=10;
var a:array[1..n,1..n] of byte;
    i,j:byte;
begin
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=(i-1)*n+j;
    write(a[i,j]:4);
   end;
  writeln;
 end;
end.
А для второй
Код:
const n=10;
var a:array[1..n,1..n] of integer;
   i,j,k:integer;
begin
k:=0;
for i:=1 to n do
 begin
  for j:=1 to n do
   begin
    inc(k);
    a[i,j]:=k;
    write(a[i,j]:4);
   end;
  writeln;
 end;
end.

Последний раз редактировалось Аватар; 27.11.2015 в 23:18.
Greschnik вне форума Ответить с цитированием
Старый 27.11.2015, 22:10   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Greschnik Посмотреть сообщение
А для второй
const n=10;
var a:array[1..n,1..n] of integer;
i,j,k:integer;
begin
k:=0;
for i:=1 to n do
begin
for j:=1 to n do
begin
inc(k);
a[i,j]:=k;
write(a[i,j]:4);
end;
writeln;
end;
end.
Ето вряд ли
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 27.11.2015, 22:13   #8
Greschnik
Пользователь
 
Регистрация: 16.11.2015
Сообщений: 15
По умолчанию

почему ,объясните?
Greschnik вне форума Ответить с цитированием
Старый 27.11.2015, 22:36   #9
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Надо найти и напечатать одинаковые елементы и их индексы. Вы же переписываете значение a[i,j] каким-то счетчиком К и выводите етот елемент. Это, скорее, ремикс решения Stilet'a для первой задачи.

Для решения 2-й задачи можно применить такой вариант:
Код:
Program HelloWorld(output);
var c:array[1..5,1..5] of byte;
i,j,k,ii,jj:byte;
begin
randomize;
  for i:=1 to 5 do
     begin
          for j:=1 to 5 do
              begin
                  c[i,j]:=random(50);
                  write(c[i,j]:4);
              end;
          writeln;
     end;
  
 for i:=1 to 5 do 
     begin
         for j:=1 to 5 do
             begin
                 k := c[i,j];
                 for jj:=j+1 to 5 do
                     begin 
                         if (c[i,jj]=k) then 
                             writeln ('C[',i,',',j,']=',k,' equal C[',i,',',jj,']=',c[i,jj]);
                     end;
                 for ii:=i+1 to 5 do
                     begin
                         for jj:=1 to 5 do
                             if (c[ii,jj] = k) then
                                 begin
                                      writeln ('C[',i,',',j,']=',k,' equal C[',ii,',',jj,']=',c[ii,jj])
                                 end;
                     end;
              end;
       end;
end.
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 27.11.2015 в 22:40.
Aleksandr H. вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
паскаль обработка матриц qw1t Помощь студентам 1 17.01.2013 21:49
Паскаль АBC, строки. Дан текст. Между соседними словами – не менее одного пробела, за последним словом. Margosham-k Помощь студентам 0 18.04.2012 15:28
Обработка Матриц(Упорядочивание Элементов,Вывод На Экран Матриц При Условии...) timepoka Помощь студентам 8 01.07.2011 13:20