- •Министерство образования республики беларусь
- •Лабораторная работа № 1Устройство пк. Операционная системаMsWindows.TotalCommander
- •Устройство пк
- •Базовая аппаратная конфигурация пк
- •Состав клавиатуры пк
- •Включение и выключение пк. Правила работы в компьютерных аудиторияхВц БелГуТа
- •Операционная система ms Windows
- •Основные понятия
- •Структура и настройка окна
- •Основные приемы работы с объектами
- •Некоторые настройки ос Windows
- •Файловый менеджерTotal Commander
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Тема для самостоятельного изучения № 1Текстовый процессорMsWord
- •Основные возможностиMsWord
- •Основные команды для работы с файлами документов
- •Настройка внешнего вида окнаMsWordи параметров документов
- •Вид отображения документа
- •Подключение и настройка панелей инструментов
- •Настройка основных параметров документа
- •Набор и редактирование текста
- •Форматирование шрифтов и абзацев
- •Порядок оформления контрольной работы*
- •Контрольные вопросы
- •Лабораторная работа № 2ЯзыкPascal. Программирование линейных и разветвляющихся алгоритмов. Циклы
- •Краткое описание средыFreePascal
- •Запуск и обзор команд главного меню
- •Основные функциональные клавиши и комбинации клавиш
- •Создание, открытие и сохранение файла документа. Работа с окнами
- •Набор и редактирование текста программы
- •Компиляция программы. Некоторые ошибки
- •Выполнение программы. Просмотр результатов
- •Краткое описание средыTurboPascal
- •Базовые понятия языкаPascal
- •Алфавит языка программированияPascal
- •Словарь языка программированияPascal
- •Зарезервированные слова
- •Идентификаторы
- •Структура простейшей программы
- •Константы, переменные, выражения
- •Арифметические и логические операции
- •Данные в программах. Типы данных
- •Порядковые типы данных
- •Вещественный тип данных
- •Программирование линейных алгоритмов
- •Операторы языка программированияPascal
- •Оператор присваивания
- •Операторы ввода-вывода
- •Read(список переменных, указанных через запятую) readln(список переменных, указанных через запятую)
- •Write(список переменных, констант, выражений через запятую) writeln(список переменных, констант, выражений через запятую)
- •Составной оператор
- •Оператор безусловного перехода
- •Основные стандартные процедуры и функции
- •Запись алгебраических выражений
- •Программирование разветвляющихся алгоритмов
- •Логические выражения
- •Оператор условного переходаif. Оператор выбораcase
- •Организация циклических вычислений
- •Цикл с предусловиемwhile…do
- •Цикл с постусловием repeat…until
- •Цикл с параметромfor…to…do
- •Порядок выполнения лабораторной работы
- •Набор и выполнение программ в среде TurboPascal(msdos)
- •Контрольные вопросы
- •Тема для самостоятельного изучения №2Обработка массивов на языкеPascal. Процедуры и функции пользователя
- •Структурированный тип данных массив
- •Описание массивов
- •Ввод и вывод элементов массива
- •Базовые алгоритмы обработки массивов
- •Вычисление суммы и произведения элементов массива
- •Поиск максимального и минимального элементов массива
- •Подсчет количества элементов, удовлетворяющих определенным условиям
- •Решение задач обработки одномерных массивов
- •Процедуры и функции
- •Контрольные вопросы
- •Лабораторная работа № 3Mathcad. Базовые операции. Ранжированные переменные. Функции. Графики
- •Основы работы в системе Mathcad
- •Создание и особенности работы в формульной области
- •Создание и особенности работы в текстовой области
- •Переменные. Предопределенные переменные
- •Форматирование результатов
- •Ранжированные (дискретные) переменные
- •Функции. Графики функций
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Лабораторная работа №4Массивы в Mathcad. Решение уравнений и систем уравнений
- •Массивы
- •Основные определения. Способы создания массивов
- •Операторы для работы с векторами и матрицами
- •Функции для работы с векторами и матрицами
- •Вычисление сумм и произведений элементов массивов
- •Решение задач обработки массивов в пакетеMathcad
- •If(условие, выражение_1, выражение_2)
- •Решение уравнений и систем средствамиMathcad
- •Функция root, блоки Given…Find, Given…Minerr
- •Решение полиномиальных уравнений. Функцияpolyroots
- •Решение систем линейных уравнений
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы
- •Лабораторная работа №5Табличный процессорMsExcel
- •Основные возможностиMsExcel
- •Базовые понятия и приемы работы вMsExcel
- •Окно и его основные настройки
- •Рабочая книга
- •Работа с листами
- •Данные в ячейках
- •Форматирование ячеек
- •Некоторые приемы форматирования электронной таблицы
- •Формулы и функции. Решение задач
- •Графические возможности msExcel. Построение графика функции
- •Порядок выполнения лабораторной работы
- •Контрольные вопросы Приложение а (обязательное) Приблизительное оформление отчета о лабораторной работе
- •Приложение б (обязательное) Задание на контрольную работу
- •Приложение в (обязательное) Содержание учебного материала по дисциплине «Информатика»
- •Список рекомендуемой и использованной литературы
Процедуры и функции
Процедуры и функции пользователя (подпрограммы) – это самостоятельные, законченные по смыслу фрагменты программы, имеющие имя и предназначенные для многократного выполнения набора операторов.
Процедураописывается между разделом описаний и разделом операторов основной программы в следующем общем виде:
|
procedure<имя>(<список формальных параметров>); <раздел описаний процедуры> begin <раздел операторов процедуры> end; |
В списке
формальных параметровперечисляются
переменные и указываются их типы.
Различаютпараметры-аргументы(входные данные для процедуры) ипараметры-результаты(для возвращения
в основную программу результатов работы
процедуры), причем перед списком
переменных-результатов каждого типа
указывается словоvar.
Например, для многократных вычислений
и вывода значения функции
можно описать процедуру, гдеx− формальный параметр-аргумент, аf− формальный параметр-результат.
procedure prim(x:real; var f:real);
begin
f:=sqrt(abs(х))-sin(x);
writeln('f(',x:4:2,')=',f:7:4);
end;
Структура раздела описаний процедурыаналогична разделу описаний основной программы. Перечисленные там объекты носят локальный характер (например,локальные переменные) и могут использоваться только в процедуре, в которой описаны.
Вызовом подпрограммыназывается упоминание в программе имени подпрограммы. Параметры, задаваемые при этом, называютсяфактическими:
<имя процедуры>(<список фактических параметров>)
В качестве фактических параметров-аргументов могут использоваться константы, переменные, выражения, а в качестве параметров-результатов − только переменные. Вызвать описанную выше процедуру primв основной программе можно так:
prim(7; y); {подсчет значения функции f при x = 7. Результат присваивается переменной y }
Команда вызова процедуры работает следующим образом. Фактические параметры-аргументы передаются в подпрограмму как значения соответствующих формальных параметров. После окончания выполнения процедуры полученные значения формальных параметров-результатов возвращаются в основную программу и присваиваются переменным, выступающим в роли фактических параметров-результатов. Формальные и фактические параметры должны соответствовать друг другу по количеству и типу, а их имена могут попарно не совпадать.
Формальные и фактические параметры в соответствующих списках могут отсутствовать вообще. Процедуры могут также получать и возвращать значения через глобальные(описанные в разделе описаний основной программы) переменные.
Пример 2.Задать массив, состоящий из десяти вещественных элементов. Определить синус каждого элемента массива. Каждый отрицательный элемент полученного массива заменить единицей.
Решение.
В данной задаче предполагается вывод элементов массива после выполнения каждой операции, а именно: ввода элементов массива, нахождения синусов и замены отрицательных элементов единицей. Поэтому вывод данных желательно организовать в виде процедуры, что значительно сократит объем программы.
Program mas2;
var
M: array[1..10] of real; {описание одномерного массива}
i, n: integer;
procedure vyvod; {процедура вывода элементов массива}
begin
{цикл для вывода 10-ти элементов массива}
for i:=1 to 10 do writeln('M[',i,']=',M[i]:5:2);
end;
begin {основная программа}
writeln('Введи 10 элементов массива');
for i:=1 to 10 do {цикл для ввода 10-ти элементов M}
begin
write('M[',i,']=');
readln(M[i]); {ввод элемента с текущим индексом i}
end;
vyvod; {вызов процедуры вывода}
for i:=1 to 10 do M[i]:=sin(M[i]);
vyvod; {вызов процедуры вывода}
for i:=1 to 10 do
if M[i]<0 then M[i]:=1;
vyvod; {вызов процедуры вывода}
end.
Задание 2.Составить программу решения задачи из таблицы 1 с использованием процедур пользователя (для ввода, вывода элементов массивов, выполнения базовых операций суммирования, вычисления произведений, нахождения минимального элемента и т. д.).
Другая разновидность подпрограмм − функция пользователя− возвращает в точку вызова только один параметр-результат простого стандартного типа. В общем виде функцию описывают перед разделом операторов, после описания процедур пользователя (если таковые имеются):
|
function<имя функции>(<список формальных параметров-аргументов>): <тип функции (результата)>; <раздел описаний функции> begin <раздел операторов функции, содержащий оператор присваивания> end; |
В разделе операторов функциидолжен присутствовать оператор присваивания имени функции значения некоторого выражения:
<имя функции>:=<выражение>
Вызов функции из основной программы возможен только из выражения(например, в операторе присваивания или операторе вывода) путем указания имени функции и фактических параметров-аргументов, заключенных в круглые скобки:
<имя функции>(<список фактических параметров>)
При этом вычисленное значение функции возвращается в основную программу через ее имя (как для стандартных функций).
Пример
3.Вычислить значение выражения
.
Решение.
В данной задаче часто используется функция тангенс с разными аргументами, отсутствующая в языке Pascal. Поэтому для вычисления тангенса целесообразно описать и использовать функцию пользователя.
Program res1;
var x, res: real;
{описание функции с формальным параметром t}
function tg(t:real):real;
begin
tg:=sin(t)/cos(t);
end;
begin
writeln('Введи число x');
readln(x);
{при вызове функции тангенс используются фактические параметры}
res:=(tg(x/2)+sqr(1/tg(x)))/(1+2*tg(3*sqr(x)));
writeln('x=',x:4:1,' res=',res:5:2);
end.
Пример
4.Вычислить сумму ряда
при положительных значениях переменнойx.
Решение.
Вычисление факториала − часто повторяющаяся операция при решении данной задачи. Удобно описать и использовать в основной программе функцию пользователя.
Program sum1;
var x, un, S: real;
i, m: integer;
{описание функции с формальным параметром n}
function fact(n:integer):real;
var j:integer;
begin
fact:=1;
for j:=1 to n do fact:=fact*j;
end;
begin {основная программа}
writeln('Введи число x>0');
readln(x);
writeln('Введи число членов ряда');
readln(m);
{начальные значения степенного выражения и суммы ряда}
un:=x/2;
S:=un;
{подсчет текущих значений степенного выражения и суммы ряда}
for i:=1 to m-1 do
begin
un:=un*sqr(x/2);
S:=S+un*fact(2*i)/(sqr(fact(i))*(2*i+1))
end;
writeln('S=',S:6:5);
end.
Задание 3.Составить программу для вычисления суммы или произведения ряда при произвольных значениях переменнойxи (таблица 2).
Таблица 2 − Суммы и произведения
|
Вариант |
Ряд |
Вариант |
Ряд |
|
1 |
|
7 |
|
|
2 |
|
8 |
|
|
3 |
|
9 |
|
|
4 |
|
10 |
|
|
5 |
|
11 |
|
|
6 |
|
12 |
|


