Помощь - Поиск - Пользователи - Календарь
Полная версия: Задачи на массивы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Guest
1) вычислить среднее геометрическое положения элементов массива x=(x1, x2, ..., xn)
2) переписать двумерный массив в одномерный
klem4
1- не понял задания, второе :


const
   n=3;
   m=4;
   nm = n*m;

type
   TMatrix = array[1..n,1..m] of integer;
   TArray = array[1..nm] of integer;

procedure ConvertToArray(x : TMatrix; var y : TArray);
var
   i,j,c : integer;
begin
   c := 0;
   for i := 1 to n do
    for j := 1 to m do begin
       inc( c);
       y[c] := x[i,j];
    end;
end;

volvo
Guest, хочешь посмеяться? :D

2 задача:
const
   n=3; m=4;
type
   TMatrix = array[1..n, 1..m] of integer;
   TArray = array[1..n*m] of integer;
var
  mx: TMatrix;
  arr: TArray absolute mx;

begin
  { заполняешь mx и одновременно заполняется arr }
end.
И ничего никуда не надо переводить. (Хотя злоупотреблять такими вещами все-же не стоит...)
klem4
[offtop]
Volvo, ставлю бутылку кефира на то, что с absolute автор не сдаст :yes: ;)
[/offtop]

можно если уж так хочется сократить сразу присваивать y[c] значение x[i,j], в цикле заполнения матрицы.

Отыграться хочешь :no: Не пойдет... Я не для сдачи привел этот вариант, а просто, чтобы человек знал, что существует и такой метод решения... Кстати, на некоторых компиляторах он работает, на других - может и не сработать. Стандарта-то на Паскаль (где было бы оговорено, что в памяти матрицы хранятся последовательно строка за строкой) нету...
Guest
Thanks
Altair
Цитата
Volvo, ставлю бутылку кефира на то, что с absolute автор не сдаст yes2.gif

Клем, если хотеть сдать можно сдать все что угодно, и абсолютные значения никто не отменял!
Просто надо уметь доказывать преподам свою точку зрения!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.