10204

Подпрограммы. Процедуры и функции

Лабораторная работа

Информатика, кибернетика и программирование

Лабораторная работа № 5 Тема: Подпрограммы. Процедуры и функции Цель работы: отработать навыки использования подпрограмм процедур и функций при написании программного кода. Образцы решения задачи. Задача № 1. Определить количество и сумму цифр в числе. Анализ по...

Русский

2013-03-21

35 KB

10 чел.

Лабораторная работа № 5

Тема: Подпрограммы. Процедуры и функции

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

Образцы решения задачи.

Задача № 1. Определить количество и сумму  цифр в числе.

Анализ постановки задачи.

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

Входные данные.  

Число, подлежащее обработке - number (тип – целый).

Выходные данные.

Сумма цифр в числе - sum (тип – целый).

Количество цифр в числе - kol (тип – целый).

Алгоритм.

  1.  Запросить целое число.
  2.  Найти сумму цифр числа (функция summ).
  3.  Найти количество цифр в числе (функция koll).
  4.  Вывести результат на печать.

Текст программы

var

        number : longint;

        sum, kol        : word;

function summ(num : longint):word;

var    s, temp     : word;

begin

  s:=0;

  while num<>0 do

                  begin

                    temp:=number mod 10;

                    s:=s+temp;    {подсчитывается сумма цифр в числе}

                    number:=number div 10

                  end;

  summ:=s;

end;

function koll(num : longint):word;

var     k : word;

begin

  k:=0;

  while num<>0 do

                  begin

                    k:=k+1;    {подсчитывается количество цифр в числе}

                    number:=number div 10

                  end;

  koll:=k;

end;

begin {main}

  writeln(‘Введите целое число’);

  readln(number);

  sum:=summ(number);

  kol:=koll(number);

  writeln (‘sum=  ‘, sum, ‘   kol= ’, kol)

end.

Задача № 2. Определить является  целое число совершенным.

Анализ постановки задачи.

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

Входные данные.

Число, подлежащее обработке – number (тип - целый).

Выходные данные.

Сумма делителей числа  sum (тип - целый).

Алгоритм.

  1.  Запросить целое число.
  2.  Найти сумму делителей числа (функция delitel).
  3.  Сравнить обрабатываемое число с суммой делителей числа и вывести соответствующее сообщение на печать.

Текст программы

var

          number, sum        : integer;

function delitel (num : longint) :word;

var   s         : word;

       del     : word;

begin

 s:=0;

 for del:= 1 to  num div 2 do

                          if num mod del =0 then s:=s+del;

 delitel:=s;

end;

begin  {main}

  writeln(‘Введите целое число’);

  readln(number);

  sum:= delitel(number);

  if number=sum then writeln(‘Заданное число является совершенным’)

                           else  writeln(‘Заданное число не является совершенным’)

end.

Задания для самостоятельного решения.

Для задач своего варианта лабораторной работы № 4 написать программы с использованием подпрограмм (процедуры или функции).

Контрольные вопросы:

  1.  Что такое функция?
  2.  Назовите особенности организации функций.
  3.  Что такое процедура?
  4.  Как осуществляется вызов функции?
  5.  Где указываются формальные параметры?
  6.  Где указываются фактические параметры?
  7.  Кем определяется количество и тип формальных параметров?
  8.  Возможно ли использование подпрограмм без параметров?
  9.  В чем состоят отличительные особенности организации процедур от функций?
  10.   Должно ли количество фактических параметров совпадать с количеством формальных параметры? Обоснуйте ответ.


 

А также другие работы, которые могут Вас заинтересовать

8570. Ницше. О сверхчеловеке 55.5 KB
  Ф. Ницше. О сверхчеловеке Придя в ближайший город, лежащий за лесом, Заратустра нашёл там множество народа, собравшегося на базарной площади: ибо ему обещано было зрелище - плясун на канате. И Заратустра говорил так к народу: Я учу вас о сверхчелове...
8571. Ортега-и-Гассет. Восстание масс 35.5 KB
  Х. Ортега-и-Гассет. Восстание масс Происходит явление, которое, к счастью или к несчастью, определяет современную европейскую жизнь. Этот феномен - полный захват массами общественной власти. Поскольку масса, по определению, не должна и не спосо...
8572. Проблема происхождения философии 40.5 KB
  Проблема происхождения философии. Мировоззрение - совокупность наиболее общих взглядов и представлений о сущности окружающего мира. Духовное освоение мироздания с определенной точки зрения. В мировоззрении в обобщенном виде представлены: познав...
8573. Специфика философского знания. Основной вопрос философии 31.5 KB
  Специфика философского знания. Основной вопрос философии. Специфика философского знания. Основная специфика философского знания заключается в его двойственности, так как оно: имеет очень много общего с научным знанием - предмет, мет...
8574. Предмет, структура и функции философии 36 KB
  Предмет, структура и функции философии. Предмет философии. Предметом называется круг вопросов, которые изучает философия. Общую структуру предмета философии, философского знания составляют четыре основных раздела: Онтология - учение о мир...
8575. Постановка и решение проблемы первоосновы мира в натурфилософии античности 30 KB
  Постановка и решение проблемы первоосновы мира в натурфилософии античности. Греческие натурфилософы пытались найти первоначало, первоматерию, то есть вещество, из которого произошел мир. Они полагали, что первоначало (др.-греч. архэ) является перв...
8576. Философия элейской школы 30.5 KB
  Философия элейской школы. Элейская школа (6-сер.5 века до н.э.) Наиболее важными ее представителями были Ксенофан, Парменид и Зенон. Основателем элейской школы считают Парменида и Ксенофана. К заметным представителям данной школы принадлежал т...
8577. Философия софистов и Сократа 30 KB
  Философия софистов и Сократа. Философия софистов. Софистика как философское учение (вт.пол.5 в. до н.э.) Софисты (любящие мудрость) не считали себя философами, они были платными учителями мыслить, говорить, делать. Считали, что нужно анализировать...
8578. Объективный идеализм Платона и его связь с пифагорейской традицией 32.5 KB
  Объективный идеализм Платона и его связь с пифагорейской традицией. Объективный идеализм Платона. Платон (428/427 - 347 гг. до н.э.) - ученик Сократа, которого считают основателем объективного идеализма. Самыми важными проблемами в философии Платона...