Хелпикс

Главная

Контакты

Случайная статья





Составление программ, использующих процедуры ввода- вывода и обработки массивов



Составление программ, использующих процедуры ввода- вывода и обработки массивов

Подпрограмма –

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

В языке программирования Pascal существует два вида подпрограмм:

Процедуры - Procedure Функции  Function
-это подпрограмма, являющаяся независимой и поименованной частью программы, предназначенной для выполнения определенных действий. Процедуры бывают: • встроенные (стандартные) • пользовательские это подпрограмма для определения функциональной зависимости для возвращения результата Функции бывают: • стандартные (встроенные) такие как sin, mod, pi • пользовательские
Пользовательские процедуры состоят из: Заголовка процедуры PROCEDURE N[(P1: TYPE1; P2: TYPE2; VAR P3: TYPE3... )]; • N - имя процедуры •  Pi - формальные параметры •  TYPE i – типы формальных параметров Процедура помещается в главной программе после раздела var и перед кодовым сегментом программы Тела процедуры Тело процедуры имеет ту же структуру, что и главная программа: Разделы: •  label •  const •  type •  var •  кодовый сегмент (от begin до end). Функция обладает всеми свойствами и особенностями процедур, но при этом существует два отличия: В заголовке функции, начинающегося служебным словом Function, обязательно указывается имя типа возвращаемого значения function exist(x, y, z: real): boolean; function Pifagor(a, b: real): real; Begin Pifagor: =sqrt(sqr(a)+sqr(b)); End;

Отличие процедуры от функции

• Функция в отличие от процедуры возвращает единственное скалярное значение

• Результат вычисления функции присваивается имени, а в процедуре -входит в список параметров.

• Имя функции имеет тип.

• Обращение к функции представляет операнд, а процедуры- оператор.

Образец выполнения для варианта 0

Задание:

Пусть заданы два массива: A[n], B[m]

1 массив-случайный

2 массив – ручного ввода

Вычислить

Где S1-Сумма положительных элементов первого массива

P2-Произведение нечетных элементов второго массива

K1-количество положительных элементов в 1 массиве 

K2-количество нечетных элементов во втором массиве

Предусмотреть критический случай

 

 

1. Контрольный тест 2. Блок-схема
Ввиду того, что в программе предусмотрен датчик случайных чисел, невозможно предугадать контрольный тест Программу следует проверить после запуска

3. Программа:

Program dva_massiva_proced;

 uses crt;

 var Z: real;

A: array [1.. 50] of integer;

B: array [1.. 50] of integer;

i, k1, k2, m, n, s1, P2: integer;

   Procedure Input_rnd_mas(const s: char; var klv: integer; var msv: array [1.. 50] of integer);

Begin

write ('vvedite kolichestvo elementov sluchainogo massiva: '); ReadLn(klv);

Writeln('Massiv', s: 3);

randomize;

For i: = 1 to klv do msv[i]: =round(-30+60*random);

end;

Procedure Input_mas(const s: char; var klv: integer; Var msv: array[1.. 50] of integer);

         begin

          write ('vvedite kolichestvo elementov nesluchainogo massiva: '); ReadLn(klv);

          Writeln('Massiv', s: 3);

          For i: =1 to klv do

          Begin

               Write(s, '[', i, ']='); readln (msv[i]);

          End;

     end;

   Procedure Output(const s: char; klv: integer; msv: array [1.. 50] of integer);

begin

WriteLn('Vivod Massiva', s: 3);

For i: = 1 to klv do

   WriteLn(s, '[', i, ']= ', msv[i]: 5);

end;

Procedure sum_pologit(klv: integer; msv: array [1.. 50] of integer; var sum: integer; var klv1: integer);

  begin

  Sum: =0; Klv1: =0;

     for i: =1 to klv do

                   if msv[i]> 0 then

                   begin

                   Sum: =Sum+msv[i];

                   Klv1: =Klv1+1;

                   end;

               writeln('sum=', sum: 5);

         writeln('kolichestvo=', klv1: 3);

         end;

         Procedure proizv_nechet(klv: integer; msv: array [1.. 50] of integer; var proizv: integer; var klv1: integer);

  begin

  proizv: =1; Klv1: =0;

           for i: =1 to klv do

                   if (msv[i]mod 2 = 1) then

                   begin

                     proizv: =proizv*msv[i];

                     Klv1: =Klv1+1;

                   end;

               writeln('proizv=', proizv: 5);

         writeln('kolichestvo=', klv1: 3);

         end;



  

© helpiks.su При использовании или копировании материалов прямая ссылка на сайт обязательна.