The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Паскаль"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [Проследить за развитием треда]

"Паскаль"  
Сообщение от Ярополк email(ok) on 15-Янв-07, 15:33 
Нужно передать двумерный массив в функцию.
program ...;
const
N=...;
var ...;

mass:array[1..N,1..N]of integer;
type t2=array[1..N,1..N]of integer;

function abc(a:array of t2);
begen
...;
end;

begin{main}
...;
abc(mass); {Вот тут то и возникает проблема}
...;
end.

Если в качестве параметра передавать mass то возникает ошибка "недопустимый тип".
Возможно надо mass както подругому объявлять? Помогите пожалуйста. Заранее спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

 Оглавление

  • Паскаль, XAnder, 15:44 , 15-Янв-07, (1)  
    • Паскаль, Ярополк, 15:55 , 15-Янв-07, (2)  
      • Паскаль, XAnder, 17:37 , 15-Янв-07, (3)  
        • Паскаль, Ярополк, 18:19 , 15-Янв-07, (4)  
          • Паскаль, kerdan, 20:28 , 17-Янв-07, (5)  
            • Паскаль, Ярополк, 00:44 , 18-Янв-07, (6)  

Сообщения по теме [Сортировка по времени, UBB]


1. "Паскаль"  
Сообщение от XAnder (ok) on 15-Янв-07, 15:44 
>mass:array[1..N,1..N]of integer;
>type t2=array[1..N,1..N]of integer;
>
>function abc(a:array of t2);
>...;
>abc(mass); {Вот тут то и возникает проблема}
>...;
>
>Если в качестве параметра передавать mass то возникает ошибка "недопустимый тип".
>Возможно надо mass както подругому объявлять? Помогите пожалуйста. Заранее спасибо.

Форумом случайно не ошиблись? Где здесь Web технологии?

А по существу - функция требует трехмерный массив (array of t2), а получает двумерный (mass), так что удивляться нечему.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Паскаль"  
Сообщение от Ярополк email(ok) on 15-Янв-07, 15:55 

>Форумом случайно не ошиблись? Где здесь Web технологии?
Я просто не знал куда дернуться, а паскаль к делфи ближе во и подумал...

>А по существу - функция требует трехмерный массив (array of t2), а
>получает двумерный (mass), так что удивляться нечему.

А не подскажете как это будет выглядеть?
И почему массив трехмерный, объявлен то вроде как двумерный.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Паскаль"  
Сообщение от XAnder (ok) on 15-Янв-07, 17:37 
>>Форумом случайно не ошиблись? Где здесь Web технологии?
>Я просто не знал куда дернуться, а паскаль к делфи ближе во
>и подумал...

Понятнее не стало :) Причем тут Делфи?

>>А по существу - функция требует трехмерный массив (array of t2), а
>>получает двумерный (mass), так что удивляться нечему.
>
>А не подскажете как это будет выглядеть?
>И почему массив трехмерный, объявлен то вроде как двумерный.

t2=array[1..N,1..N]of integer ~ t2 есть двумерный массив целых чисел

array of t2 ~ массив из t2, т.е. массив из двумерных массивов целых чисел, т.е. трехмерный массив

Как это будет выглядеть, представляю с трудом, потому что во-первых не знаю, для чего это нужно, а во-вторых, на Паскале не писал с турбопаскакальных досовских времен. Может быть так:

...
type t2 = array[1..N, 1..N] of integer;
var mass : t2;
function abc(a : t2); {но может быть все-таки procedure?}
...
begin
    ...
    abc(mass);
    ...
end.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Паскаль"  
Сообщение от Ярополк email(ok) on 15-Янв-07, 18:19 
Нет, задача поставлена именно в функцию. И такой способ тож не работает. Жаль. Все равно спасибо.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Паскаль"  
Сообщение от kerdan (??) on 17-Янв-07, 20:28 
Очень просто все!
передавать надо указатель на массив - и паскаль возрадуется что ты до этого доехал! ;)
знаешь, надеюсь, как указатель делать-то?

Ну, например:

type TMas = array[1..N] of integer;
     PMas = ^TMas;

function foo(mas:PMas):word;
begin
   mas^[i] := 1234;
//...
end;

var mas: TMas;
begin
   foo(@mas);
end.

Должно, работать. Указателей боятся не надо!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Паскаль"  
Сообщение от Ярополк email(ok) on 18-Янв-07, 00:44 
>знаешь, надеюсь, как указатель делать-то?
>Должно, работать. Указателей боятся не надо!

Я программирую на си и что такое указатели прекрасно знаю, просто родственница попросила написать лабораторку (на паскале), пришлось учить синтаксис практически с нуля.  Лабораторная уже написана, большое, всем кто откликнулся, и вам в частности, спасибо.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру