Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/40: Рейтинг темы: голосов - 40, средняя оценка - 4.75
 Аватар для MrAleksej
20 / 15 / 14
Регистрация: 05.12.2010
Сообщений: 256
Записей в блоге: 1

Возврат массива из функции

25.11.2017, 19:42. Показов 8746. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Кто подскажет - можно ли в Паскале:
1. в функцию передавать массив?
2. из функции возвращать массив?
Я попробовал сделать через процедуру, но там запарка вышла - в процедуре получается привязка к имени массива. А я хочу чтобы вызвал функцию и вернул созданный массив или передал в функцию, а она вывела массив:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
uses crt;
const n=10;
var i:integer;
mas,mas1,mas2:array [1..n] of integer;
 
procedure makeMas(i,n:integer);
begin
for i:=1 to n do mas[i]:=random(50)-25;
end;
 
procedure writeMas(i,n:integer);
begin
for i:=1 to n do write(mas[i],' ');
end;
 
BEGIN
makeMas(i,n);
writeMas(i,n);
writeln;
mas2:=mas;
for i:=1 to n do write(mas2[i],' ');
END.
Добавлено через 10 минут
Для чистоты эксперимента я изменил значения второго массива. Но, даже через процедуру не получается сделать:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
uses crt;
const n=10;
var i:integer;
mas,mas1,mas2:array [1..n] of integer;
 
procedure makeMas(i,n:integer);
begin
for i:=1 to n do mas[i]:=random(50)-25;
end;
 
procedure writeMas(i,n:integer;fmas:array[1..n]of integer);
begin
for i:=1 to n do write(fmas[i],' ');
end;
 
BEGIN
makeMas(i,n);
mas1:=mas;
writeMas(i,n,mas1);
writeln;
mas2:=mas;
for i:=1 to n do inc(mas2[i],3);
for i:=1 to n do write(mas2[i],' ');
writeMas(i,n,mas2);
END.
Добавлено через 8 минут
Хм.... Сделал опять через процедуры..... Вроде как получилось задуманное, но как то все это коряво вышло... Может кто-нибудь посмотрит и подскажет как это все упростить?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
uses crt;
const n=10;
var i:integer;
mas,mas1,mas2:array [1..n] of integer;
 
procedure makeMas(i,n:integer);
begin
for i:=1 to n do mas[i]:=random(50)-25;
end;
 
procedure writeMas(i,n:integer);
begin
for i:=1 to n do write(mas[i],' ');
writeln;
end;
 
procedure inc3_mas(i,n:integer);
begin
for i:=1 to n do inc(mas[i],3);
end;
 
 
 
BEGIN
makeMas(i,n);
mas1:=mas;
writeMas(i,n);
makeMas(i,n);
writeMas(i,n);
inc3_mas(i,n);
mas2:=mas;
writeMas(i,n);
 
 
END.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.11.2017, 19:42
Ответы с готовыми решениями:

Возврат массива из функции
Здравствуйте, Не пойму почему не работает данный код. Пишет cannot convert 'std::string*' to 'int*' in return По теории я жду...

Возврат массива из функции
есть функция которая должна возвращать массив char вызываю так из другой функции char *myArrChar; ...

Возврат массива из функции
Здравствуйте. Не могу разобраться, почему при передачи массива из функции но не правильно передаётся. Вот результат.

1
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,433
25.11.2017, 20:52
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const
  n = 10;
 
type
  Vector = array [1..n] of integer;
 
var
  mg: vector;
 
procedure makeMas(var m: vector);
var
  i: integer;
begin
  for i := 1 to n do 
    m[i] := random(50) - 25;
end;
 
procedure writeMas(M: vector);
var
  i: integer;
begin
  for i := 1 to n do 
    write(m[i]:5);
  writeln;
end;
 
procedure inc3_mas(var m: vector);
var
  i: integer;
 
begin
  for i := 1 to n do 
    inc(m[i], 3);
end;
 
begin
  randomize;
  makeMas(mg);
  writeMas(mg);
  inc3_mas(mg);
  writeMas(mg);
end.
Добавлено через 40 секунд
Цитата Сообщение от MrAleksej Посмотреть сообщение
в функцию передавать массив?
Надо именно через функцию?

Добавлено через 1 минуту
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const
  n = 10;
 
type
  Vector = array [1..n] of integer;
 
var
  mg: vector;
 
function makeMas(var m: vector): boolean;
var
  i: integer;
begin
  for i := 1 to n do 
    m[i] := random(50) - 25;
end;
 
function writeMas(M: vector): boolean;
var
  i: integer;
begin
  for i := 1 to n do 
    write(m[i]:5);
  writeln;
end;
 
function inc3_mas(var m: vector): boolean;
var
  i: integer;
 
begin
  for i := 1 to n do 
    inc(m[i], 3);
end;
 
begin
  randomize;
  makeMas(mg);
  writeMas(mg);
  inc3_mas(mg);
  writeMas(mg);
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.11.2017, 20:52
Помогаю со студенческими работами здесь

Возврат массива из функции
Привет! Мне нужно, чтобы под программа задавала значения массива. А что-то странно получается program matrix integer str1, stlb1,...

Возврат массива из функции
Здравствуйте! Нужно решить задачу, но для её решения я не могу понять как правильно вывести массив(mas) из ф-ции, чтобы показать в main все...

Возврат массива из функции
Программа должна переводить числа с 10 системы в двоичную... но почемуто выводит некорректно... Вот код... #include <iostream> ...

Возврат массива из функции
Есть задача: используя функции, вычислить количество элементов заранее введённых массивов, которые кратны Х, и переписать в отдельный...

Возврат массива из функции
В объекте есть массив int state;, который мне нужно из него вытащить. Вижуал показывал ошибку, когда я пытался вернуть указатель state в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20%
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru