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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2008, 21:35   #1
sergey31
Пользователь
 
Аватар для sergey31
 
Регистрация: 27.04.2008
Сообщений: 24
По умолчанию Функции [Pascal].

У меня небольшая проблемка: не могу понять как оформить функцию. Читал книги, эти формальные и фактические параметры меня запутали...
В общем вот задание: "Для одномерных массивов Q,W,R которые состоят из 10 элементов целочисленного типа, найти сумму квадратов непарных элементов массива. Элементы массива вводятся с клавиатуры. Результаты вычислений для каждого массива вывести на экран"
Написал такую программку:

Код:
Program Summa;
CONST
a=10;
VAR
s,i:integer;
Q,W,R:array[1..a] of integer;
function S({не знаю как написать что входящими данными должен быть массив}):integer;
begin
for i:=1 to a do
if (i mod 2)>0 then
s:=s+sqr({здесь должен быть массив, который мы вводим в качестве параметра}[i];)
end;
begin
writeln('Введите элементы массива Q');
for i:=1 to a do
read(Q[i]);
{теперь должны вызвать функцию с нашим массивом Q}
writeln ('Сумма квадратов массива Q =',s); 
{и т. д. для каждого массива.}
end.
Если не тяжело, объясните пожалуйста.
sergey31 вне форума Ответить с цитированием
Старый 31.05.2008, 21:54   #2
L_M
Форумчанин Подтвердите свой е-майл
 
Регистрация: 25.02.2008
Сообщений: 289
По умолчанию

А просто
Код:
function S(a:array[1..a])
работать не будет? Попробуй.
Или опиши свой тип
Код:
program X;
const
     a=10;

type
     new=array[1..a] of integer;

var
     Q,W,E:new;

Function S(b:new):integer;
begin
begin  
for i:=1 to a do  
if (i mod 2)>0 then  
s:=s+sqr(b[i];)   
end;   
begin  
writeln('Введите элементы массива Q');   
for i:=1 to a do  
read(Q[i]);   
writeln ('Сумма квадратов массива Q =',s(Q));    
{и т. д. для каждого массива.}  
end.
по моему так...
Упс...
L_M вне форума Ответить с цитированием
Старый 31.05.2008, 21:55   #3
sergey31
Пользователь
 
Аватар для sergey31
 
Регистрация: 27.04.2008
Сообщений: 24
По умолчанию

Сейчас попробую
sergey31 вне форума Ответить с цитированием
Старый 31.05.2008, 21:59   #4
Greblin
Меркантильный кю
Участник клуба
 
Аватар для Greblin
 
Регистрация: 02.02.2008
Сообщений: 1,001
По умолчанию

Код:
type TMas = array[1..10] of integer;

var Q, W, R: TMas;

function S(Arr: TMas): integer;   
begin  
for i:=1 to 10 do  
if (i mod 2)>0 then  
S:=S+sqr(Arr[i]);   
end;
Правда у тебя тут не непарные, а нечётные элементы
Вызывать так
Код:
S(Q);
Теперь чем отличаются параметры, переданные с var и без. Упрощенно говоря, если ты объявил параметр без var (как в нашем случае), то будет отведена память под переменную, доступная только из данной функции\процедуры. В неё будет записано значение переданного параметра. То есть реально функция будет работать с другой переменной.
Если ты объявил параметр с var, то функция будет работать именно с той переменной, которую ты передал. То есть мы передаём не значение, а ссылку на ячейку памяти, в которой расположена данная переменная. Фактически, это то же самое, что передать указатель на переменную, если знаком с таким
Росли вроде умными, выросли дурнями... (c)А.Васильев

Последний раз редактировалось Greblin; 31.05.2008 в 22:09.
Greblin вне форума Ответить с цитированием
Старый 31.05.2008, 22:11   #5
sergey31
Пользователь
 
Аватар для sergey31
 
Регистрация: 27.04.2008
Сообщений: 24
По умолчанию

Спасибо, я разобрался). Насколько глупый был вопрос, надо было всего лишь немного посидеть и логически подумать))).
sergey31 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функции с числовыми параметрами(Pascal) TAB Помощь студентам 1 07.05.2008 20:50
Функции xxxPascalxxx Помощь студентам 2 28.12.2007 18:04
Функции Vinni_puh Microsoft Office Excel 1 20.12.2007 05:51
Функции furian Общие вопросы C/C++ 3 18.12.2007 12:48
Функции Pedro Общие вопросы Delphi 5 08.11.2007 15:39