Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 27.05.2009
Сообщений: 6

Использваоние подпрограмм-функций.

02.06.2009, 08:53. Показов 712. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
плиз срочно помогите решить

теория:

6 ИСПОЛЬЗОВАНИЕ ПОДПРОГРАММ-ФУНКЦИЙ

Цель работы - овладение навыками написания подпрограмм-функций и обращения к ним.

6.1 Подготовка к лабораторной работе

При подготовке к лабораторной работе необходимо ознакомиться с особенностями передачи результата функции в основную программу и вызова функций.

6.2 Теоретические сведения

Особенностью использования функций является то, что результатом её работы является только один результат, в то время, как процедура может возвращать одно, несколько или ни одного значения.

Общий вид записи функции:

Function <имя>(<список формальных параметров>): <тип функции>;
<разделы описаний и объявлений функции>;
begin
<раздел операторов функции, где должен быть оператор:
имя:=выражение>
end;

Вызов функции осуществляется только из выражений операторов основной программы с помощью указателя функции:

<имя функции>(<список фактических параметров>)

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

FUNCTION F(S1:T1;S2:T2):T;
<описательная часть>
BEGIN
. . .
F:=<выражение>
END;
где F- имя функции;
S1,S2 - имена формальных параметров;
T1,T2 - типы параметров;
T- тип функции.
При вызове имя функции вместе с фактическими параметрами используется в выражения. Например, в правой части оператора присваивания К:=F(A,B), операторе вывода - WRITELN(F(A,B)) или в условном операторе – IF F(A,B)> 0 THEN …


Пример. Найти произведение элементов квадратной матрицы A(n,n).
Программа имеет вид:
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
PROGRAM LAB;
CONST
N=3; {количество строк и столбцов}
TYPE
AR=ARRAY[1..N,1..N] OF INTEGER;
VAR
A:AR; {массив А}
I, J: INTEGER; {индексы строк, столбцов} 
FI, FO: TEXT; {файловые переменные}
{функция поиска произведения}
FUNCTION PR(B:AR; M: INTEGER): INTEGER;
VAR
K, L: INTEGER; {индексы строк,столбцов}
P: INTEGER; {произведение}
BEGIN
P:=1; {начальное значение произведения}
FOR K:=1 TO M DO
FOR L:=1 to M DO
P:=P*B[K,L];
PR:=P
END; { PR }
{тело выполняемых операторов главной программы}
BEGIN 
{открытие файла входных данных и чтение их}
ASSIGN(FI, 'lab.inp');
RESET(FI);
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO N DO READ(FI,A[I,J]);
READLN(FI)
END;
CLOSE(FI);
{открытие выходного файла}
ASSIGN (FO,'lab.out');
REWRITE(FO);
WRITELN(FO ,' Исходный массив A:'); 
FOR I:=1 TO N DO BEGIN
FOR J:=1 TO N DO WRITE(FO,A[I,J]:3);
WRITELN(FO)
END;
WRITELN(FO,’ P=,PR(A,N):3); {вывод произведения}
CLOSE(FO);
END.

Исходный файл данных:
11 -2 10
-4 15 3
5 5 7

Выходной файл данных:
A:
11 -2 10
-4 15 3
5 5 7

P=-16816
________________________________________ __________ __________________________


моё задание:
Найти сумму первых К положительных элементов массива. Выполнить для двух массивов.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.06.2009, 08:53
Ответы с готовыми решениями:

Использование подпрограмм-функций в программах
Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков: &gt;, &lt;, =.

Использование подпрограмм-функций в программах
Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из знаков: &gt;, &lt;, =.

Программирование с использованием подпрограмм - функций,ошибку не найду
24. Заданы три массива: W={w1, w2, w3}, Y={y1, y2, y3,y4}, Z={z1, z2, z3, z4, z5}. Решить уравнение p*x2+d*x+c=0, где p - максимальный...

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
02.06.2009, 15:19
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
uses crt;
const nmax=100;
type mas=array[1..nmax]of integer;
procedure Vvod(var m:mas;var x:byte;c:char);{создание и ввод массива}
var i:byte;
begin
writeln('Массив ',c);
repeat
write('Размер массива= ');
readln(x);
until x in [1..nmax];
for i:=1 to x do
 begin
  m[i]:=random(20)-9;
  write(m[i],' ');
 end;
writeln;
end;
function Summ(m:mas;x,k:byte):integer;{функция по условию}
var i,j:byte;
    sm:integer;
begin
j:=0;sm:=0;
for i:=1 to x do
 begin
  if m[i]>0 then{}
   beginесли положительное
    j:=j+1;{считаем}
    sm:=sm+m[i];{суммируем}
   end;
  if j=k then{насчитали к}
   begin
    Summ:=sm;{значение функции}
    break;{больше не считаем}
   end;
  end;
if j<k then{в условии не написано, но может быть что положительных меньше к}
 begin
   writeln('В массиве нет ',k,' положительных элементов');
{не очень красиво, но изогнулся так, с процедурой было бы проще}
    Summ:=0;
 end;
end;
var a,b:mas;
    na,nb,k:byte;
begin
clrscr;
randomize;
write('k=');readln(k);
Vvod(a,na,'A');
write('Сумма первых ',k,' положительных элементов= ');
writeln(Summ(a,na,k));
Vvod(b,nb,'B');
write('Сумма первых ',k,' положительных элементов= ');
writeln(Summ(b,nb,k));
readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.06.2009, 15:19
Помогаю со студенческими работами здесь

Вычисление функции с использованием нестандартных функций и подпрограмм
Здравствуйте. Преподаватель дал задание, но не пойму, что он имел ввиду под A(i,j). Разъясните позязя

Программа с использованием подпрограмм - функций
z=1-S/2 где S=∑_(n=0)^∞ 2n(an2-bn2) an=1/2(an-1+bn-1) bn=√(an-1*bn-1) Значение a0 и b0 заданы. Расчёт закончить при...

Оформить в виде подпрограмм-функций в программах
Prog type complex = record x: real; y: real; end; var a,b,sum,mult: complex; begin ...

Оформить в виде подпрограмм-функций в программах
Составьте программу нахождения суммы комплексных чисел. Комплексные числа хранятся в массиве. Оформить в виде подпрограмм-функций в...

Вставка подпрограмм-процедур и подпрограмм-функций
Помогите пожалуйста. Мне надо для ввода, вывода использовать процедуры а для обработки функции. А задача такая: Вычислить расстояние между...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru