- •Порядок выполнения работы
- •Содержание пояснительной записки
- •Задание №1.
- •Вариант 0.
- •Вариант 1.
- •Вариант 2.
- •Вариант 12.
- •Вариант 19.
- •Вариант 21.
- •Вариант 22.
- •Задание №2.
- •Варианты
- •Задание №3.
- •Задание №4.
- •Варианты
- •Задание №5.
- •Список использованной и рекомендуемой литературы
- •Вариант 0. Задание 1.1
- •1. Постановка задачи
- •2. Теоретическое введение
- •3. Описание программы
- •Задание 1.2
- •1. Постановка задачи
- •2. Теоретическое введение
- •3. Описание программы
- •3.6. Тестовые примеры
- •3.7. Интерфейс программы в режиме выполнения
- •Задание 2
- •1. Постановка задачи
- •2. Теоретическое введение
- •3. Описание программы
- •3.1. Описание логической структуры программы.
- •3.6. Тестовые примеры
- •3.7. Интрфейс программы в режиме выполнения
- •Задание 3.
- •1. Постановка задачи
- •2. Теоретическое введение
- •3. Описание программы
- •3.6. Тестовые примеры
- •3.7. Интерфейс программы в режиме выполнения
- •Задание 4.
- •1. Постановка задачи
- •2. Теоретическое введение
- •3. Описание программы
- •3.1. Описание логической структуры программы.
- •3.6. Тестовые примеры
- •3.7. Интерфейс программы в режиме выполнения
- •Задание 5.
- •1. Постановка задачи
- •2. Теоретическое введение
- •3. Описание программы
- •3.1. Описание логической структуры программы.
- •3.2 Описание входных данных
- •3.4. Описание выходных данных
- •3.5. Описание программы (листинг)
- •3.6. Тестовые примеры
- •3.7. Интерфейс программы в режиме выполнения
- •Отображение всех студентов до сортировки
- •Отображение всех студентов до сортировки
- •Список использованной литературы
3.6. Тестовые примеры
Необходимо протестировать программу для различных тестовых примеров (подобрать самостоятельно).
3.7. Интерфейс программы в режиме выполнения
Результаты работы программы выглядят следующим образом:
Задание 4.
1. Постановка задачи
В одномерном массиве, состоящем из n вещественных элементов, вычислить:
1) сумму элементов массива больших –1 и меньших 1;
2) произведение элементов массива, расположенных между максимальным и минимальным элементами;
3) отсортировать массив по возрастанию элементов.
2. Теоретическое введение
Массив – это непрерывная последовательность однотипных данных, обращение к которым внутри массива происходит по индексу. Диапазон изменения индекса массива указывается при его описании, что дает возможность определить размерность массива, т.е. максимально возможное число хранимых в нем данных.
Работе с одномерным массивом, а именно организация последовательного выбора элементов массива по индексу, осуществляется с помощью цикла For, чей целочисленный параметр соответствует индексу массива.
При работе с массивом часто возникают следующие задачи:
-
ввод элементов массива с клавиатуры;
-
вывод массива на экран;
-
поиск по определенному условию элементов в массиве с последующим их суммированием или произведением;
-
упорядочивание элементов массива – сортировка;
-
и др.
Эти задачи удобно организовывать в виде подпрограмм, в которые имя массива передается как параметр:
Procedure Input_Massiv( var A:Massiv; n:Integer);
Procedure Print_Massiv( A:Massiv; n:Integer);
Procedure Sort( var A:Massiv; n:Integer);
...
3. Описание программы
Программа написана на алгоритмическом языке ПАСКАЛЬ и реализована в среде Borland Pascal-7.0 Windows XP/MS DOS, на платформе х86.
3.1. Описание логической структуры программы.
Для решения задачи необходимо:
-
Организовать в виде процедуры Input_Massiv ввод элементов массива с клавиатуры
-
Организовать в виде процедуры Print_Massiv вывод элементов массива на экран
-
Организовать в виде функции Summa сумму элементов массива больших –1 и меньших 1
-
Организовать в виде функции Proizv произведение элементов массива, расположенных между максимальным и минимальным элементами
-
Организовать в виде функции Ind_Max поиск индекса максимального элемента в массиве
-
Организовать в виде функции Ind_Min поиск индекса минимального элемента в массиве
-
Организовать в виде процедуры Sort упорядочивание элементов массива по возрастанию
-
Ввести с клавиатуры значение переменной n , определяющей число элементов массива.
-
Вызвать на выполнение процедуру Input_Massiv
-
Вызвать на выполнение процедуру Print_Massiv
-
Вычислить сумму элементов массива больших –1 и меньших 1 с помощью функции Summa
-
Вызвав функцию Proizv, вычислить произведение элементов массива, расположенных между максимальным и минимальным элементами, которые найти с помощью функций Ind_Max и Ind_Min соответственно.
-
Вызвать на выполнение процедуру Sort.
-
Вызвать на выполнение процедуру Print_Massiv
3.2. Блок-схема программы.
3.3 Описание входных данных
Massiv = array [1..50] of real – определение типа Massiv
n, i – переменная типа Integer;
A – переменная типа Massiv;
3.4. Описание выходных данных
A – переменная типа Massiv;
3.5. Описание программы (листинг)
{ задание 4}
Program ZAD_4;
uses Crt;
type
Massiv = array[1..50] of real;
var
a:Massiv; n:integer;
S,P:real;
procedure Input_Massiv(var a:Massiv; n:integer);
var i:Integer;
begin
for i:=1 to n do
begin
write('A(',i,')='); readln(a[i]);
end;
end;
procedure Print_Massiv(a:Massiv; n:integer);
var i:Integer;
begin
writeln;
for i:=1 to n do
write( a[i]:5:2, ' ' );
end;
function Summa(a:Massiv; n:integer):real;
var i:Integer; s:real;
begin
s:=0;
for i:=1 to n do
if (a[i]>-1)and(a[i]<1) then s:=s+a[i];
Summa:=s;
end;
function Ind_Max(a:Massiv; n:integer):integer;
var i,im:Integer; m:real;
begin
m:=a[1]; im:=1;
for i:=2 to n do
if a[i]>m then begin m:=a[i]; im:=i; end;
Ind_Max:=im;
end;
function Ind_Min(a:Massiv; n:integer):integer;
var i,im:Integer; m:real;
begin
m:=a[1]; im:=1;
for i:=2 to n do
if a[i]<m then begin m:=a[i]; im:=i; end;
Ind_Min:=im;
end;
function Proizv(a:Massiv; n:integer):real;
var i,imin,imax:Integer; p:real;
begin
imin:=Ind_Min(a,n);
imax:=Ind_Max(a,n);
if imin>imax then
begin i:=imin; imin:=imax; imax:=i; end;
p:=1;
for i:=imin+1 to imax-1 do p:=p*a[i];
Proizv:=p;
end;
procedure Sort(var a:Massiv; n:integer );
var i,j:Integer; t:real;
begin
for j:=0 to n-2 do
for i:=2 to n-j do
if a[i-1]>a[i] then
begin t:=a[i-1]; a[i-1]:=a[i]; a[i]:=t; end;
end;
Begin
clrscr;
write('n='); readln(n);
Input_Massiv(A,n);
Print_Massiv(A,n);
{ 1) }
S := Summa(A,n);
Writeln('Summa=',S:5:4);
{ 2) }
P := Proizv(A,n);
Writeln('Proizved=',P:5:4);
{ 3) }
Sort(A,n);
Print_Massiv(A,n);
readln;
End.