среда, 29 января 2014 г.

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

Повторить материал о подпрограммах

В чем различие между процедурой и функцией?
Функция - вспомогательный алгоритм,  который может принимать параметры, но в отличие от процедуры,  функция всегда возвращает значение - результат.
Примеры встроенных функций: sin, cos, abs, whereX, whereY...
 Результатом выполнения функции может быть число, символ, символьная строка или данные другого типа.

Алгоритм функции, которая вычисляет сумму цифр числа

На формальном языке:
сумма:=0
начало цикла пока n<> 0
      сумма:=сумма + mod (n,10)
      n:= div (n,10)
конец цикла
На языке Pascal:
program funcSum;
var N: integer;
function sumDigits(n: integer):integer;
var sum: integer;
begin
  sum:= 0;
  while n <> 0 do begin
    sum:= sum + n mod 10;
    n:= n div 10;
  end;
sumDigits:= sum;
end;
begin
  write ( 'Введите целое число: ' );
  read ( N );
  write ( 'Сумма цифр ', sumDigits(N))  

end.

Примеры вызова функции

x:= 2*sumDigits(n+5);
z:= sumDigits(k)+ sumDigits(m);

Практическое задание и Домашнее задание

среда, 15 января 2014 г.

Урок 15. Подготовка к ДКР

Итоги выполнения предыдущего задания

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

Подготовка к ДКР

Диагностическая контрольная работа состоится 23 января на уроке по расписанию.
Для повторения материала за базовый курс Информатики поработаем с тестами.
Тесты (4 варианта) расположены на школьном сервере по адресу:
\\server.sc640\public1\learn\11i\ЕГЭ-ДКР\тесты-22-12
За правильный ответ по каждому заданию начисляется 1 балл.
Задания 12, 13, 17, 18 рекомендуем отложить на конец.
Номер варианта указывает учитель.

пятница, 3 января 2014 г.

Урок 14. Подпрограммы. Изменяемые параметры

 Прочитайте документ  - Область действия переменных в программе
Что делает процедура Swap:
Program Exchange1;
var x,y : integer;
procedure Swap (a, b: integer);
var c: integer;
beginc:=a; a:=b; b:=c;end;
begin
x:=2; y:=3; Swap (x, y);  Write(x, ' ', y);
end.
Что должна вывести эта программа?
Выполним эту программу в среде PascalABC. Значения переменных x и y остались прежними! 
Процедура Swap работает с копиями переданных ей параметров. Это значит, что процедура создает в памяти временные локальные переменные с именами  a и b и копирует в них переданные основной программой значения переменных   x и y.  Поэтому все перестановки в процедуре были сделаны с копиями, а значения переменных  x и y в основной программе не изменились. Такая передача параметров называется передачей по значению, а параметры называют параметрами - значениями.
Чтобы  решить эту проблему,  нужно явно сказать, чтобы процедура работала с теми же ячейками памяти, что и основная программа. Для этого при перечислении формальных параметров в процедуре указывают слово var: 
Program Exchange2;
var x,y : integer;
procedure Swap (var a, b: integer);
var c: integer;
begin
c:=a; a:=b; b:=c;
end;
begin
x:=2; y:=3; Swap (x, y);  Write(x, ' ', y);
end.
Выполним эту программу в среде PascalABC. Значения переменных x и y поменялись местами! 
Такая передача параметров называется передачей по ссылке, а параметры называют параметрами - переменными/
Практическое задание и Домашнее задание