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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2014, 11:26   #1
Njkzy91
 
Регистрация: 20.10.2014
Сообщений: 4
По умолчанию Копирование массива в функцию

Всем привет задача следующая:
1. Заполнить массив в основной программе. 2. Найти максимальный элемент массива в функции.
Задачу надо сделать в Turbo Pascal.
На самом деле задача посложнее, но суть её выше. Просто никак не могу понять как из основной программы скопировать массив в функцию. С поиском максимального элемента проблем нету.
Njkzy91 вне форума Ответить с цитированием
Старый 20.10.2014, 12:44   #2
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

В смысле, передать массив функции в качестве аргумента?
Можно так:

Код:
const
	n = 100;

type
	mas = array [1..n] of real;

var
	A: mas;
	
{....}

function F(A: mas): real;
begin
{тело функции}
end;

{что-то ещё}

{основная программа}
begin
{как-то получаем массив A}

x:=F(A);
end.
Вадим Мошев вне форума Ответить с цитированием
Старый 20.10.2014, 13:17   #3
Njkzy91
 
Регистрация: 20.10.2014
Сообщений: 4
По умолчанию

Да передать массив в качестве аргумента функции, в этой функции определить максимальный элемент массива, и передать его (максимальный элемент) основной программе (функции).
Код:
const
	n = 8;

type
	mas = array [1..n] of real;

var
	A: mas;
        i, max, x: integer;
	
{....}

function F(A: mas): real;
begin
{тело функции}
{тут надо найти максимальный элемент массива А, и к своему стыду никак не могу понять как это сделать(запутался)}
end;



{основная программа}
begin
  randomize;
  {Заполняем и выводим массив}
  for i:=1 to 8 do
  begin
      A[i]:=random(100)-50;
      write(A[i], ' ');
  end;
  

x:=F(A);
{тут надо вывести на экран максимальный элемент массива, который должен быть найден в функции F}
end.
Njkzy91 вне форума Ответить с цитированием
Старый 20.10.2014, 13:22   #4
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

что конкретно не получается у вас?
Вадим Мошев вне форума Ответить с цитированием
Старый 20.10.2014, 16:34   #5
Donald Ervin Knuth
Пользователь
 
Аватар для Donald Ervin Knuth
 
Регистрация: 15.10.2014
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Njkzy91 Посмотреть сообщение
Всем привет задача следующая:
1. Заполнить массив в основной программе. 2. Найти максимальный элемент массива в функции.
Задачу надо сделать в Turbo Pascal.
На самом деле задача посложнее, но суть её выше. Просто никак не могу понять как из основной программы скопировать массив в функцию. С поиском максимального элемента проблем нету.
Код:
program mas28;
type
inmas=array[1..100] of integer;
var
mas:inmas;
f,n,i:integer;
{  -- функция---}
function max(locmas:inmas):integer;
var
maxkip,k:integer;
begin
maxkip:=locmas[1];
  for k:=2 to 100 do
    begin 
      if maxkip<locmas[k] then maxkip:=locmas[k];
    end;
    max:=maxkip;
end;
{-- основная--}
begin
writeln('Ведите количество элементов массива n= ');
readln(n);
writeln('Ведите элементs массива= ');
for i:=1 to n do
readln(mas[i]);
{-- подключаем функцию---}
f:=max(mas);
writeln('Максимальный элемент массива=  ',f);
end.
g25092011
Donald Ervin Knuth вне форума Ответить с цитированием
Старый 20.10.2014, 18:14   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
2. Найти максимальный элемент массива в функции.
а если максимальных элементов несколько?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 20.10.2014, 18:20   #7
Вадим Мошев

Старожил
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Сообщений: 8,568
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а если максимальных элементов несколько?
Думаю, будет найден последний из них
Вадим Мошев вне форума Ответить с цитированием
Старый 20.10.2014, 18:22   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Вадим Мошев Посмотреть сообщение
Думаю, будет найден последний из них
а по заданию-то как? это я автору
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 21.10.2014, 09:13   #9
Njkzy91
 
Регистрация: 20.10.2014
Сообщений: 4
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
а если максимальных элементов несколько?
В задании про это ничего не сказано. Но random(1000)-500 таких трюков допустить не должен.

Последний раз редактировалось Njkzy91; 21.10.2014 в 09:16.
Njkzy91 вне форума Ответить с цитированием
Старый 21.10.2014, 09:14   #10
Njkzy91
 
Регистрация: 20.10.2014
Сообщений: 4
По умолчанию

Donald Ervin Knuth, Огромное спасибо!
Njkzy91 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача массива в функцию и возврат массива из функции Gstar C# (си шарп) 6 14.10.2012 00:38
Копирование массива lunatik_92 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.05.2012 13:05
Произведение элементов массива в функции (передача массива в функцию) (Delphi) Toxa16 Помощь студентам 1 23.04.2011 04:42
копирование массива Максикок C++ Builder 2 23.03.2011 20:41
копирование массива Canvas Общие вопросы Delphi 5 21.11.2008 17:50