Методические указания Задание №1




Скачать 64.36 Kb.
НазваниеМетодические указания Задание №1
Дата публикации31.03.2014
Размер64.36 Kb.
ТипМетодические указания
shkolnie.ru > Информатика > Методические указания


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

  2. Выполните работу на листе формата А4. Работа должна быть подписана – следует указать фамилию и инициалы, а также номер группы.

Методические указания

Задание № 1

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

Часто некоторую последовательность операторов требуется выполнить в нескольких местах программы. Чтобы не тратить время и не загромождать программу многократным повторением этих операторов целесообразно оформить их как самостоятельный программный модуль со своим именем. Тогда вместо этой последовательности операторов можно будет просто обратиться к соответствующему программному модулю, указав в своей программе (мы будем называть ее теперь головной программой) его имя.

Программные модули (подпрограммы) могут быть двух типов: процедуры и функции. Структура их приведена в таблице.

Структура процедур и функций Таблица

Раздел

Ключевое слово раздела

1. Заголовок

PROCEDURE или FUNCTION

2. Объявление констант

CONST

3. Объявление меток

LABEL

4. Объявление типов

TYPE

5. Объявление переменных

VAR

6. Процедуры, функции




7. Основное тело

begin .. end;

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

Обращение к функции, определенной, происходит аналогично обращению ко встроенным функциям Pascal’я. Например, при обращении ко встроенной функции синуса, указывается имя функции, а за ним в скобках аргумент: sin(y). Обращение к процедуре аналогично. Однако, есть отличие между процедурой и функцией. Вызов функции обычно производится в выражении (арифметическом или логическом), а вызов процедуры является самостоятельным оператором Pascal.

При выполнении декомпозиции обычно решается вопрос –оформить модуль как функцию или как процедуру. В принципе любую подпрограмму можно оформить и в виде процедуры и в виде функции. Но есть случаи, когда выбор предопределен. Если целью подпрограммы является вычисление какого либо одного значения, то целесообразно оформлять ее в виде функции, в ходе выполнения которой это значение присваивается имени функции. Наличие такого присвоения имени функции обязательно.

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

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

Рассмотрим логику выполнения следующего примера.

Вычислить сумму ряда:

11+22+33-…+99.

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

В общем случае ab =a*a*…*a, т. е. ab есть произведение b одинаковых сомножителей (a)

Const n = 9;

Var i: byte;

S: real;

{Функция, вычисляющая аb}

Function step (a,b:byte):real;

Var P: real;

I: byte;

Begin

For I := 1 to b do

P := P*a;

Step :=P;

End;

Begin

S :=0;

For i:= 1 to n do

S:= S+ step (i,i);

Writeln (‘ сумма ряда: ‘, S:10:0);

End.

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

Примечание.

Строго говоря, в задании требуется возвести аа, а не ab. Но для повышения функциональности функции, она решена в общем виде. Это оправдано тем, что нет какого-либо усложнения алгоритма, а всего лишь незначительно увеличено количество формальных параметров функции, а именно, вместо одного параметра (а) передается 2 параметра (а,b).

Задание № 2

Для его выполнения задания надо в качестве формальных параметров использовать массивы. Следует помнить, что при описании формального параметра в заголовке процедуры/функции следует указать его имя и тип. Причем, для обозначение типа надо использовать либо ключевое слово языка (real, Char…), либо имя пользовательского типа, присвоенного в разделе type.

Рассмотрим выполнение примера.

Заполнить случайными числами 3 массива a, b, c. Найти общее количество элементов, кратных 7 для всех 3-х массивов.

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

  1. Заполнение случайными числами.

  2. Печать заполненного массива.

  3. Подсчет количества элементов, кратных 7.

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

Const n = 10

Туре Мas= array [1..n] of Integer;

Var a,b,c : Мas;

{Процедура заполнения }

Procedure Zap ( Var d: Мas)

Var I: byte;

Begin

For I := 1 to n do

D[i] := random(100)

End;

{Процедура печати массива }

Procedure Wiw (d: Мas);

Var I: byte;

Begin

For I := 1 to n do

Write(D[i]:5);

Writeln;

End;

{Функция подсчета элементов, кратных 7 }

Function Кl_7 (d: Мas):byte;

Var kl: byte;

I: byte;

Begin

kl:=0;

For I := 1 to b do

If D[i]mod 7 = 0 then inc(kl);

Кl_7 :=kl; {имени функции присваивается значение}

End;

Begin

Zap(a); Wiw (a ); {заполнение и печать массива а}

Zap(b); Wiw (b ); {заполнение и печать массива b}

Zap(c); Wiw (c ); {заполнение и печать массива c}

Writeln( ‘ Всего элементов, кратных 7 : ‘, Кl_7 (a)+

Кl_7 (b)+ Кl_7 (c) );

End.

Внимание! В процедуре заполнения Zap массив нельзя передать как параметр - значение, поскольку в этом случае в головную программу не будут переданы изменения, произведенные в массиве при его заполнении. Поэтому в заголовке процедуры параметр-переменная, на что указывает ключевое слово Var:

Procedure Zap ( Var d: Мas)

Задание № 3

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

В случае же параметров –переменных в системный стек при вызове процедуры/функции заносятся не копии значений, а адреса самих фактических значений. Поэтому работа проводится с самими фактическими параметрами, обращение к которым производится по адресам и поэтому все изменения проводятся над самими фактическими параметрами, и они после окончания работы процедуры остаются измененными.

Пример выполнения задания № 3.

Var c,d : integer;

Procedure P (x,y : integer)

begin y:=x+1 end;

Procedure Q (x : integer; var y : integer)

begin y:=x+1 end;

Procedure R (var x, y : integer)

begin y:=x+1 end;

begin

  • c:=1; d:=4; P(c+2* d); writeln (d);

  • c:=1; d:=4; Q(c+2* d); writeln (d);

  • c:=1; d:=4; R(c+2* d); writeln (d);

  • c:=1; d:=4; R(c, d); writeln (d);

В процедуре P используются формальные параметры – значения, следовательно, не зависимо от содержимого процедуры, фактический параметр d не изменится (он останется равным 4).

В процедуре ^ Q формальный параметр y – параметр-переменная, он при выполнении процедуры изменяет свое значение, становится равным x+1. При этом x получает значение c+2*d=1+2*4=9. Подставляем значение 9 в выражение: x+1 = 9+1= 10. Это и есть итоговое значение d по возвращении в головную программу.

В процедуре R формальные параметры – переменные, следовательно фактическим параметром не может быть выражение. В этом случае имеет место синтаксическая ошибка. При 2-м вызове процедуры R формальные параметры x и y изначально получают значения c и d, т. е. 1 и 4 соответственно. Параметр y при выполнении процедуры изменяется y:=x+1=1+1=2.

Итак ответом на задание 4 будет:

4,

10,

синтаксическая ошибка,

2.

Задания

Вариант 8.

  1. Написать функцию для вычисления



и вычислить S(n) для n от 12 до 24 с шагом 4.

  1. Заполнить случайными числами 3 массива a, b, c. Найти общее количество четных элементов для всех 3-х массивов.

  2. Определить, что будет выведено на печать в каждом из 4-х вариантов:

Var c,d : integer;

Procedure P (x,y : integer)

begin y:=x+1 end;

Procedure Q (x : integer; var y : integer)

begin y:=x+1 end;

Procedure R (var x, y : integer)

begin y:=x+1 end;

  • c:=5; d:=4; P(5*c+d, d); writeln (d);

  • c:=5; d:=4; Q(5*c+d, d); writeln (d);

  • c:=5; d:=4; R(5*c+d, d); writeln (d);

  • c:=5; d:=4; R(c, d); writeln (d);


Похожие:

Методические указания Задание №1 iconТехнический университет
Транспортные информационно-управляющие радиоэлектронные системы: Рабочая программа. Методические указания к изучению дисциплины....
Методические указания Задание №1 iconМетодические указания предназначены для студентов, выполняющих расчетно-графическое...
Методические указания предназначены для студентов, выполняющих расчетно-графическое задание по курсу «Математическая статистика»...
Методические указания Задание №1 iconМетодические указания по организации самостоятельной работы для студентов...
Методические указания предназначены для самостоятельного изучения курса Теплотехника студентами заочниками специальности 210200,...
Методические указания Задание №1 iconМетодические указания по организации самостоятельной работы для студентов...
Методические указания предназначены для самостоятельного изучения курса Теплотехника студентами заочниками специальности 210200,...
Методические указания Задание №1 iconЗадание на курсовой проект и методические указания к его выполнению....
Целью проекта является приобретение практических навыков в использовании полученных знаний при разработке баз данных, закрепление...
Методические указания Задание №1 iconЗадание и методические указания к выполнению курсовой работы

Методические указания Задание №1 iconМетодические указания для развития навыков чтения литературы по теме «банки и деньги»
Методические указания предназначены для студентов V курса специальности «Перевод» по дисциплине «Аспектный перевод» (Банковское дело)....
Методические указания Задание №1 iconМетодические указания Санкт-Петербург 2009 Федеральное агентство...
Правоведение. Методические указания / Под ред. Т. Д. Засориной: Метод указания. Спб.: СпбгуниПТ, 2009. 48 с
Методические указания Задание №1 iconМетодические указания, контрольные задания и задание на курсовой...
«Общая электротехника и электроника», контрольные задания и методические указания по выполнению контрольных заданий, а также задания...
Методические указания Задание №1 iconЗадание на контрольную работу и методические указания к ее выполнению...
Справочный материал, необходимый для выполнения задания, представлен в табл. 4 и 5
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
shkolnie.ru
Главная страница