Лабораторная 1.ppt
- Количество слайдов: 18
Требования к оформлению отчета Выполнение каждой работы лабораторного практикума завершается написанием отчета, включающего следующие разделы: • титульный лист (см. приложение); • содержание; • задание; • постановка задачи; • метод решения задачи; • внешняя спецификация; • описание алгоритма на псевдокоде; • листинг программы; • распечатка тестов к программе и результатов.
Пример оформления отчета по лабораторной работе 1 Задание. Дан вещественный массив B[1: k]. 1. Найти min(|b[1]| , …, |b[k]|), для b[i] z, и определить его порядковый номер (z – задано, i =1, k). 2. Сформировать массив D[1: n] , элементы которого вычисляются следующим образом: (z 1, z 2 – заданы). 3. Сформировать массив A[1: n] по формуле: ( x 1 -задано).
Постановка задачи Дано: 1. k, B[1: k], z; 2. z 1, z 2; 3. x 1. Результат: 1. min, nmin или сообщение «Нет минимума» ; 2. D[1: n] или сообщение «Нет массивов D и A» ; 3. A[1: n] (при условии существования массива D). При: kЄN, k<=lmax, z 1<z 2. Связь: см. формулы в условии.
Метод решения задачи 1. min=1 E 38 nmin=0 для i=1, k min=b[i]; nmin=i, если |b[i]|<=|min| и b[i]<=z 2. n=0 для i=1, k n=n+1; 3. для i=1, n
Внешняя спецификация Лабораторная работа 1 Задание 1 Введите длину массива B от 1 до <<lmax>> <k> Введите массив B из <<k>> элементов <b[1]> <b[2]>…<b[k]> Введите z <z> при nmin = 0 Нет минимума иначе min= << min>> nmin= <<nmin>>
Задание 2 Введите z 1, z 2 (z 1<=z 2) <z 1> <z 2> до z 1 < z 2 при n = 0 Нет массивов D и A иначе Массив D из< <n>> элементов <<d[1]>> <<d[2]>>…<<d[n]>> Задание 3 Введите x 1 <x 1> Массив A из <<n>> элементов <<a[1]>> <<a[2]>>…<<a[n]>>
Описание алгоритма на псевдокоде Алг «Лабораторная работа 1» Нач {задание 1} {ввод исходных данных для задания 1} ввод (k, B[1: k], z) {инициализация} nmin : = 0 {номер минимума} min : = 1 E 38 {начальное значение минимума} цикл от i : = 1 до k если b[i] ≤ z и |b[i]| ≤ |min| то min : = b[i] nmin : = i все кц {анализ существования результата и вывод результата задания 1} если nmin = 0 то вывод ( «Нет минимума» ) иначе вывод ( «min=» , min, «nmin=» , nmin) все
{задание 2} {ввод исходных данных для задания 2} цикл ввод (z 1, z 2) до z 1< z 2 кц n : = 0{длина массива D} цикл от i : = 1 до k если z 1 < b[i] и b[i] < z 2 то n : = n+1 d[n] : = - b[i] все кц {анализ существования результата задания 2} если n = 0 то вывод ( «Нет массивов D и A» ) иначе
{вывод результата задания 2} вывод ( «Массив D из » , n, «элементов» ) вывод ( D[1: n]) {задание 3} {ввод исходных данных для задания 3} ввод (x 1) цикл от i : =1 до n если d[i] > x 1 то a[i] : = d[i] иначе a[i] : =-d[i]/2 все кц {вывод результата задания 2} вывод ( «Массив A из » , n, «элементов» ) вывод (A[1: n]) все кон
Листинг программы {Лабораторная работа 1} Program lab 1; Const lmax=20; {максимальная длина массивов} Type mass=array[1. . lmax] of real; Var B, D, A: mass; i, k, n, nmin: integer; z, z 1, z 2, x 1, min: real; begin writeln('Лабораторная работа 1'); {задание 1} writeln('Задание 1'); {ввод исходных данных для задания 1} writeln('Введите длину массива B от 1 до ', lmax); read(k);
writeln('Введите массив B из ', k: 3, ' элементов'); for i: =1 to k do read(b[i]); writeln('Введите z'); read(z); {инициализация} nmin : = 0; {номер минимума} min : = 1 E 38; {значение минимума} for i: =1 to k do if( b[i] < z ) and ( abs(b[i]) <= abs(min)) then begin min : = b[i]; nmin : = i; end; {анализ существования результата и вывод результата задания 1} if nmin = 0 then writeln('Нет минимума') else writeln('min= ', min: 10: 3, ' nmin= ', nmin: 3);
{задание 2} writeln('Задание 2'); {ввод исходных данных для задания 2} writeln('Введите z 1, z 2 (z 1<=z 2)'); repeat read(z 1, z 2); until ( z 1 < z 2 ); n : = 0; {длина массива D} for i: =1 to k do if( z 1 < b[i] ) and (b[i] < z 2) then begin n : = n+1; d[n] : = - b[i]; end; {анализ существования результата и вывод результата задания 2} if n = 0 then writeln('Нет массивов D и A') else begin {вывод результата задания 2}
writeln('Массив D из ', n: 3, ' элементов'); for i: =1 to n do write( D[i]: 10: 3); writeln; {задание 3} writeln('Задание 3'); {ввод исходных данных для задания 3} writeln('введите x 1'); read(x 1); for i: =1 to n do if d[i] > x 1 then a[i] : = d[i] else a[i] : =-d[i]/2; writeln('Массив A из ', n: 3, ' элементов'); for i: =1 to n do write( A[i]: 10: 3); writeln; end.
Распечатка тестов к программе и результатов
Лабораторная работа № 1 ЦЕЛЬ РАБОТЫ : Алгоритмы поиска минимума и максимума, алгоритмы формирования нового массива. I. Дан вещественный массив B[1: k]. Найти: и определить его порядковый номер ( x, y, z – заданы, i =1, k) :
II. Сформировать массив D[1: n] , элементы которого вычисляются следующим образом: ( z 1 , z 2 – заданы).
III. Сформировать массив A[1: n] по формуле: (x 1, y 1 -заданы).
Лабораторная 1.ppt