- •Министерство образования и науки, молодежи и спорта Украины
- •Содержание
- •1. Лабораторная работа №1. Вычисление арифметических выра- жений
- •1.1. Цель работы
- •1.2. Краткие теоретические сведения
- •Содержание задания
- •1.4. Содержание отчета
- •Контрольные вопросы
- •2. Лабораторная работа №2. Использование условных операторов в программах на Pascal
- •2.1. Цель работы
- •Краткие теоретические сведения
- •Содержание задания
- •Содержание отчета
- •Контрольные вопросы
- •3. Лабораторная работа №3. Табулирование функций
- •Цель работы
- •Краткие теоретические сведения
- •Содержание задания
- •Содержание задания
- •Содержание задания
- •Содержание отчета
- •Контрольные вопросы
- •Библиографический список
- •Приложение а
- •Продолжение таблицы а.1
- •Приложение б
- •Продолжение таблицы б.1
- •Продолжение таблицы б.1
- •Продолжение таблицы б.1
- •Приложение в
- •Продолжение таблицы в.1
- •Приложение г
- •Продолжение таблицы г.1
- •Продолжение таблицы г.1
- •Продолжение таблицы г.1
- •Приложение д
- •Продолжение таблицы д.1
- •Продолжение таблицы д.1
Содержание задания
Задание 3
- разработать блок-схему алгоритма циклической структуры для вычисления функции в соответствии с вариантом задания (см. приложение В, таб. В.1);
- написать и отладить программу в соответствии с блок-схемой;
- поставить программу на выполнение, отладить и протестировать ее;
- сравнить результаты ручного и машинного счета;
- задачи для самостоятельного решения представлены в приложении Д.
Содержание отчета
- цель работы;
- задание;
- блок-схема алгоритма решения задачи;
- текст программы;
- результаты ручного и машинного счета;
- выводы.
Контрольные вопросы
Что такое цикл. Приведите пример алгоритма циклической структуры.
Объясните работу циклического оператора Pascal repeat . . . until. Дайте рекомендации по его использованию.
Объясните работу циклического оператора Pascal while . . . do. В чем особенности его использования в программе.
Объясните суть задачи табулирования функции.
4. Лабораторная работа №4. Обработка массивов
Цель работы
- изучение разделов “Операторы цикла”, “Структурированные типы данных. Массивы”;
- получение навыков в использовании операторов цикла;
- знакомство с основными типовыми алгоритмами обработки данных массива.
Краткие теоретические сведения
В программах на Pascal допускается использование структурированных типов данных. В языке Pascal существуют следующие структурированные типы:
- тип-массив;
- тип-запись;
- тип-множество;
- тип-файл.
В частности, при решении задач обработки данных удобно использовать тип-массив.
Массив – это упорядоченный набор переменных одного типа. Массив содержит заданное число компонент, которое определяется при описании переменных типа массив в разделе описаний программы.
В Turbo-Pascal 7.0 допускается описывать переменные типа массив в разделе описания переменных:
Формат
Var
<идентификатор переменной>: array[тип индексов] of <тип компонент>;
Чтобы задать тип-массив, используется зарезервированное слово array, после которого следует в квадратных скобках указать тип индекса(индексов) компонент и далее после слова of - тип самих компонент.
Формат
Type
<имя типа>=array[тип индексов] of <тип компонент>;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Var
<идентификатор переменной>:<имя типа>;
Например, одномерный массив размерности c компонентами целого типа описывается в программе следующим образом.
. . . . . . . . . . . . . . . . . . . . . . . . . .
Type
Mas=array[1 . . 10] of integer;
. . . . . . . . . . . . . . . . . . . . . . . . . . .
Var
X:mas;
Двумерный массив размерности с компонентами вещественного типа описывается в программе следующим образом.
. . . . . . . . . . . . . . . . . . . . . . . . . . .
Type
Mas2=array[1 . . 2, 1 . . 5] of real;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Var
Y:mas2;
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Оператор цикла for …to …do организует выполнение оператора заранее известное число раз.
Формат
for <переменная цикла>:=s1 to s2 do <оператор>;
Оператор действует следующим образом. Первоначально вычисляются и запоминаются начальное s1 и конечное s2 значения переменной цикла. После чего <переменной цикла> присваивается начальное значение s1. Затем значение переменной цикла сравнивается с конечным значением s2. Пока переменная цикла меньше или равна конечному значению, выполняется оператор цикла, а в противном случае происходит выход из цикла.
Значение переменной цикла изменяется с постоянным шагом равным единице.
Если в теле цикла используется более одного оператора, то все операторы тела цикла ограничиваются операторными скобками begin . . . end;.
Использование переменных типа массив и операторов циклической структуры позволяет программно реализовать некоторые типовые процедуры данных. Например, поиск элементов массива, имеющих некоторое заданное свойство. В частности, к указанным процедурам относятся: поиск наименьшего или наибольшего значения элемента массива, определение числа положительных или отрицательных элементов в массиве, формирование массива из элементов исходного массива, имеющих требуемое свойство[1, 2, 3].
Пример программы на Pascal
Задача 5.
Задан одномерный массив размерности . Найти сумму значений элементов массива .
Program st5;
Var
n,i,s:integer;
x:array[1..6] of integer;
Begin
read(n);
for i:=1 to n do read(x[i]);
s:=0;
for i:=1 to n do s:=s+x[i];
writeln(‘ s=’,s);
End.
Задача 6.
Задан одномерный массив размерности . Найти число положительных значений элементов массива .
Program st6;
Var
n,i,k:integer;
x:array[1..4] of integer;
Begin
read(n);
for i:=1 to n do read(x[i]);
k:=0;
for i:=1 to n do
if x[i]>0 then k:=k+1;
writeln(‘ k=’,k);
End.
Задача 7.
Задан одномерный массив размерности . Найти число нулевых значений элементов массива и вывести номера их на печать.
Program st7;
Var
n,i,m:integer;
x:array[1..7] of integer;
Begin
read(n);
for i:=1 to n do read(x[i]);
m:=0;
for i:=1 to n do
if x[i]=0 then
begin
m:=m+1;
writeln(‘номер нулевого элемента i=’,i);
end;
if m<>0 then writeln(‘ m=’,m)
else writeln(‘нулевых элементов в массиве нет’);
End.