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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.05.2012, 23:46   #1
Fizik03
Новичок
Джуниор
 
Регистрация: 14.05.2012
Сообщений: 4
По умолчанию Задача в Pascal

Простите что повторяюсь, но мне это срочно нужно!!!

Дан двомерный массив целых, положительных чисел Х[1..n,1..m] где
n, больше или равно 2, m, больше или равно 15 (n, m описываем как константы ). Заменить каждый элемент Xij масива, на число к. Интервал массива заполняется автоматически в интервале [10, 1000). Написать программу в которой используется процедура или функция


1 Вариант

k — число получено путём удаления с Xij цифр которые расположены на парных позициях.

2 Вариант

k — число получено путём возведения каждой цифры Xij к квадрату (Например 149 = 11681).


Вот мои наработки,

Код:

program project;

const n = 2; m = 15;

var k,i,x,y: integer;
    F: array[1..n, 1..m] of integer;

procedure change(arr: array[1..n, 1..m] of integer);
 var x,y,n,digit,count: integer;
 begin
  for x:=1 to n do begin
    for y:=1 to m do begin
      n:= arr[x,y];
      count:= 0;
      while (n>0) do
       begin
         digit:= n mod 10;
         n:= n div 10;
       end;
      arr[x,y]:= ;
    end;
  end;
 end;

begin

  writeln('Начальный массив: ');
  for x:=1 to n do begin
    for y:=1 to m do begin
      F[x,y]:= random(990) + 10;
      write(F[x,y], '   ');
    end;
    writeln();
  end;

  change(F);

  writeln('Результат: ');
  for x:=1 to n do begin
    for y:=1 to m do begin
      write(F[x,y], '   ');
    end;
    writeln();
  end;

end.


Заранее, большое спасибо!
Fizik03 вне форума Ответить с цитированием
Старый 15.05.2012, 12:53   #2
GetMax
Форумчанин
 
Регистрация: 21.10.2010
Сообщений: 588
По умолчанию

Код:
const
   n = 2;
   m = 15;
Type
  Matrix = array[1..n, 1..m] of integer;
var k,i,x,y: integer;
    F:Matrix;
1 вариант
Код:
Procedure Change1(var Mt:Matrix);
Var
  i,j,k:Byte;
  value:Integer;
  tmp,tmp1:String;
  Error:Integer;
Begin
  for i := 1 to n do
  Begin
    for j := 1 to m do
    Begin
      Str(Mt[i,j],tmp);
      for k := 1 to Length(tmp) do
      Begin
        if (k mod 2 = 0) then Delete(tmp,k,1)
      End;
      Val(tmp,Mt[i,j],Error);
    End;
  End;
End;
2 вариант
Код:
Procedure Change2(var Mt:Matrix);
Var
  i,j:Byte;
  num:Byte;
  tmp,tmp1:String;
  error1:Integer;
Begin
  for i := 1 to n do
  Begin
    for j := 1 to m do
    Begin
      tmp:='';
      tmp1:='';
      while (Mt[i,j] > 0) do
      Begin
        num:=Sqr(Mt[i,j] mod 10);
        Str(num,tmp1);
        tmp:=tmp1+tmp;
        Mt[i,j]:=Mt[i,j] div 10;
      End;
      Val(tmp,Mt[i,j],error1)
    End;
  End;
End;
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Для благодарностей WMR R145235935681
GetMax вне форума Ответить с цитированием
Старый 15.05.2012, 13:31   #3
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

для первого варианта цикл должен "просматривать" строку с конца в начало
Код:
for k := Length(tmp) downto 1 do  //вместо for k := 1 to Length(tmp) do
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача, Pascal Artijam Паскаль, Turbo Pascal, PascalABC.NET 1 13.12.2011 06:38
задача на pascal Froll Помощь студентам 1 08.11.2011 11:09
Задача Pascal giv93 Паскаль, Turbo Pascal, PascalABC.NET 2 13.10.2011 00:02
Pascal задача giv93 Помощь студентам 2 09.10.2011 23:23
задача (pascal) counterparts Помощь студентам 7 29.12.2010 17:38