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

разроботка для 10 класса даст возможность научиться решать задачи на функции и процедурыОбучить основным приемам решении задач, даст подробнее узнать назначение, определение и понятие процедура и функцияпоможет развить логическое мышлениеи расширенить кругозор развитие познавательного интереса, логического мышления
Раздел Информатика
Класс 10 класс
Тип Рабочие программы
Автор
Дата
Формат docx
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Утиева Ж.К

Предмет: Информатика

Урок: 8-9

Класс: 10 б

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

Цель урока: научиться решать задачи на функции и процедуры

Образовательные: Обучить основным приемам решении задач

Развивающие: развитие логического мышления, расширение кругозора

Воспитательные: развитие познавательного интереса, логического мышления

Оборудование : доска, компьютер,тетрадь.

План урока:

  1. Организационный момент(1 мин)

  2. Проверка и актуализация знаний(5мин)

  3. Теоретическая часть (25мин)

  4. Д\з (2 мин)

  5. Вопросы учеников(5 мин)

  6. Итог урока (2 мин)

Ход урока:

  1. Орг. Момент.

Приветствие ,проверка присутствующих. Объяснение хода урока.

  1. Проверка и актуализация знаний.

Вопросы: Ребята давайте вспомним: что такое структурное, модульное, объектно - ориентированное программирование, облачные технологии ? расскажите историю развития программирования

3. Теоретическая часть

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

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

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

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

Процедуры:

Процедура - это некий блок кода, который будет выполняться всякий раз при вызове этой процедуры. Каждая процедура начинается зарезервированным словом Sub и заканчивается End. Вот общий синтаксис процедуры:

[Private | Public | Friend] [Static] Sub name [(arglist)]
[здесь некий код]
[Exit Sub]
[здесь тоже может быть некий код]
End Sub

Всё, что заключено в квадратные скобки - является необязательным. Оператор Exit Sub позволяет досрочно выйти из процедуры. Иногда это очень удобно. Слова Public, Private имеют то же значение, что и при объявлении переменных.

arglist имеет следующий вид:

[Optional] [ByVal | ByRef] [ParamArray] varname[( )]
[As type] [= defaultvalue]

Рассмотрим пример процедуры, которая будет выводить на экран сообщение "Hello 10 Б !":

Private Sub ShowMessage()
MsgBox "Hello 10 Б!"
End Sub

Что можно сказать об этой процедуре? Процедура имеет тип Private, т.е. доступна будет только из кода именно той формы (модуля), где она объявлена (вспомните типы объявления переменных). Данная процедура не содержит параметров, о чём нам говорят пустые круглые скобки.. Назначение - вывести сообщение Hello World на экран.

MsgBox - это встроенная функция Visual Basic, которая выводит на экран окно с сообщением, заданным в качестве параметра. Остальные параметры необязательны (их всего 5). Подробнее о функции MsgBox можно прочитать здесь.

Как вызвать процедуру? Для этого достаточно написать имя процедуры:

ShowMessage

А можно и так:

Call ShowMessage' более наглядные вариант

Оба этих варианта абсолютно эквивалентны. Но для вызова процедур всё-таки лучше использовать второй вариант.

Теперь давайте изменим эту процедуру и добавим к ней параметр, значение которого будет выводиться функцией MsgBox (вместо Hello World):

Private Sub ShowMessage(message As String)
MsgBox message
End Sub

Теперь при вызове процедуры необходимо указать параметр:

Call ShowMessage ("Наша первая процедура")

Результатом выполнения такой процедуры будет вывод на экран сообщения: "Наша первая процедура". Скобки, окружаемые параметр обязательны, если перед именем процедуры стоит оператор Call. Если Call отсутствует, то скобки ставить не нужно.

Давайте рассмотрим подробнее что же происходит при вызове нашей процедуры. Встретив строку с вызовом нашей процедуры Visual Basic проверяет, нужны ли данной процедуре параметры. Убедившись в том, что нужны (параметр message) он передает в процедуру строку "Наша первая процедура". Т.е. фактически в процедуре происходит присвоение переменной message значения "Наша первая процедура". Ну а далее происходит вызов функции MsgBox и вывод сообщения на экран. Если количество параметров, передаваемых при вызове процедуры не совпадёт с количеством параметров в объявлении процедуры - Visual Basic сгенерирует ошибку.

Итак, с процедурами разобрались. Настало время разобраться с функциями.

Функции:

Функция - это некий блок кода, который будет возвращать значение. Этим, и только этим функции отличаются от процедур. Общий синтаксис функции:

[Public | Private | Friend] [Static] Function имяфункции _
[(arglist)] [As type]
[здесь некий код]
[имяфункции = выражение]
[Exit Function]
[здесь тоже может быть некий код]
[имяфункции = выражение]
End Function

Что значит "будет возвращать значение"? Рассмотрим функцию из урока 8:

Public Function MyFunc() As Byte
MyFunc = 234
End Function

c = MyFunc()

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

Давайте рассмотрим более практичный пример. Напишем функцию для вычисления квадрата числа. У функции будет 1 параметр типа Integer - число для возведения в квадрат. Функция будет возвращать значение квадрата параметра. Тип возвращаемого значения - Long:

Public Function Square(number As Long) As Long
Square = number * number
End Function

Вызвать функцию можно так:

b = Square (5)

А можно так, используя нашу процедуру для вывода сообщения на экран:

ShowMessage Square (5)

А можно и так:

Square 5

В последнем случае возвращённое функций значение уходит в никуда, но сама функция благополучно выполнится. Обратите внимание на отсутствие скобок в последнем вызове. Скобки здесь не обязательны, в отличие от двух предыдущих вызовов. Там скобки обязательны. (ну это и понятно, как бы Visual Basic без скобок догадался, где параметры для ShowMessage, а где для Square).

4.Домашнее задание: Учить по конспекту.

5.Вопросы учеников: ответы на вопросы учащихся.

6. Итог урока: подведение итога урока. Выставление оценок







Предмет: Информатика

Урок: 13

Класс: 9 б

Тема: работа с файлами

Цель урока: научиться решать задачи на файлы

Образовательные: Обучить основным приемам решении задач

Развивающие: развитие логического мышления, расширение кругозора

Воспитательные: развитие познавательного интереса, логического мышления

Оборудование : доска, компьютер,тетрадь.

План урока:

  1. Организационный момент(1 мин)

  2. Проверка и актуализация знаний(5мин)

  3. Теоретическая часть (25мин)

  4. Д\з (2 мин)

  5. Вопросы учеников(5 мин)

  6. Итог урока (2 мин)

Ход урока:

  1. Орг. Момент.

Приветствие ,проверка присутствующих. Объяснение хода урока.

  1. Проверка и актуализация знаний.

Вопросы: Ребята давайте вспомним: что такое структурное, модульное, объектно - ориентированное программирование, облачные технологии ? расскажите историю развития программирования

3. Теоретическая часть

При работе с файлами в TP используются следующие процедуры:

assign(var F; name: string); - устанавливает соответствие между файлом и файловой переменной, открывает все другие процедуры работы с файлами. F - переменная любого файлового типа, name - полное имя файла.
close(var F); - окончание процедур работы с файлами (закрытие файла).
rewrite(var F: file); - создаёт и открывает новый файл.
reset(var F: file); - открывает существующий файл.
append(var F: text); - открывает существующий текстовый файл и позиционирует указатель обработки на конец файла.

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

erase(var F); - удаляет неоткрытый внешний файл любого типа, задаваемый переменной F.
rename(var F: newname: string); - переименовывает неоткрытый файл F любого типа. Новое имя задаётся строкой newname.

Текстовый файл можно рассматривать как последовательность символов, разбитую на строки длиной от 0 до 256 символов. Для описания используется стандартный тип text: var F: text; (F - файловая переменная).
Стандартные типы данных не требуют описания в разделе type в отличие от типов, образованных пользователем. Формат раздела:

type <имя типа> = <значение типа>;
Имя и значение типа даёт пользователь.

Пример: type fil=text;

Рассмотрим работу с файлами в TP на примерах.

Пример 1. Запись текстового файла на диск и ввод в него текста.

program wtf;
type fil=text;
var f1:fil; name:string[35]; txt:string;
begin
write('Введите имя файла для записи текста>');
readln(name);
writeln;
assign(f1,name);
rewrite(f1);
writeln('Введите текст для записи (для окончания-Enter):');
writeln;
repeat
write(':>');
readln(txt);
writeln(f1,txt);
until txt='';
close(f1);
writeln;
writeln('Ввод окончен, нажмите Enter.');
readln;
end.

Пример 2. Запись результата вычисления в текстовый файл.

program wtf1;
uses crt;
type fil=text;
var f1:fil; name:string[35]; txt:string;
var i,n:real;s,q:real;
begin
clrscr;
writeln('Для вычисления суммы ряда S=1+1/4+1/9+...+1/n2,');
write('введите n=1,2,3...: n=');
read(n);
i:=1;
S:=1;
while i<>n do
begin
i:=i+1;
s:=s+1/(i*i);
end;
writeln('Сумма членов ряда равна S=',s);
name:='rezult.txt';
txt:='Сумма ряда S=1+1/4+1/9+...+1/n2 равна: S=';
writeln;
assign(f1,name);
rewrite(f1);
writeln(f1,txt,s,' при n=',n:9:0);
close(f1);
writeln('Ваш результат будет записан в файл rezult.txt');
writeln('Для выхода из программы нажмите Enter.');
readkey;
end.

Пример 3. Чтение последовательности длиной до 35 символов из текстового файла example.txt (его содержимое, например, "23456 Всем привет!"

Функция Eoln(var F: text) возвращает булевское значение True, если текущая файловая позиция находится на маркере конца строки или вызов Eof(F) возвратил значение True. Во всех других случаях значение функции будет False.

Функция Eof(var F: text) возвращает булевское значение True, если указатель конца файла находится сразу за последним компонентом. В противном случае - False.

program wtf2;
var F: text; St: string[35];
begin
assign(F, 'example.txt'); {Файл example.txt должен существовать!}
reset(F);
while not Eoln(F) do

begin {Проверка конца строки}
read(F,St);
writeln('St = ',St); {Вывод на экран}
end;
readln(F); {Переход к следующей строке}
close(F);
writeln('Вывод символов из файла окончен. Для выхода - Enter.');
readln;
end.

4.Домашнее задание: Учить по конспекту.

5.Вопросы учеников: ответы на вопросы учащихся.

6. Итог урока: подведение итога урока. Выставление оценок


© 2010-2022