Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Министерство образования РФ
Томский Государственный Университет Систем Управления и
Радиоуправления
(ТУСУР)
Кафедра КСУП
Отчет
О лабораторной работе № 3
По дисциплине «Программирование на языке высокого уровня»
Выполнил студент гр.584-1
Атрошенко М.А.
Проверил ст.преп. каф. КСУП
Потапова Е.А.
Томск 2005
Введение
Массив- это структурированный тип данных, состоящий из фиксированного числа элементов, имеющих один и тот же тип.
a : array[1..2, 1..2] of integer
Если в такой форме описания задан один индекс, массив называется одномерным ,
если два индекса - двумерным
Инициализация (присваивание начальных значений) массива заключается в присваиванию каждому элементу массива одного и того же значения, соответствующего базовому типу.
Копированием массивов называется присваивание значений всех элементов одного массива всем соответствующим элементам другого массива.
Сортировкой называется распределение элементов множества по группам в соответствии с определенными правилами.
Задача 1
Определить процедуру р(х, у), которая для данного массива х создает массив у. По следующим правилам: y[i] = x[i] m, где m среднеарифметическое элементов массива х.
Описание переменных
x, y массивы от 1 до n из целых чисел в определяемой процедуре.
a, b - массивы от 1 до n из целых чисел в программе для проверки процедуры.
i целочисленная переменная. Счетчик цикла.
m целочисленная переменная. Среднеарифметическое элементов массива х
Пошаговое описание алгоритма.
Процедура p
Шаг 1 Устанавливаем m равным 0
Шаг 2 Устанавливаем i равным 1
Шаг 3 Если I <= n, то Шаг 4, иначе Шаг 6
Шаг 4 Устанавливаем m равным m + x[i]
Шаг 5 Увеличиваем i на 1, переход на Шаг 2
Шаг 6 Устанавливаем m равным m div 2
Шаг 7 Устанавливаем i равным 1
Шаг 8 Если I <= n, то Шаг 9, иначе Шаг 11
Шаг 9 Устанавливаем y равным x[i] - m
Шаг 10 Увеличиваем i на 1, переход на Шаг 8
Шаг 11 Завершение алгоритма
Главная программа
Шаг 1 Ввод массива а
Шаг 2 Выполнение процедуры р над массивами а и b
Шаг 3 Вывод массива b
Шаг 4 Завершение алгоритма
Текст программы с комментариями
Const {определение констант}
n = 10; {количество элементов равно 10}
var {определение переменных}
a, b: array [1..n] of Integer; {массивы а и b}
i: Integer; {целочисленные переменные}
procedure p(x: array of Integer; var y: array of Integer); {определение процедуры р}
var {определение переменных}
m: Integer; { целочисленные переменные }
i: Integer; { целочисленные переменные }
begin {начало процедуры}
m := 0; {m равно 0}
for i := 1 to n do {заголовок цикла}
m := m + x[i]; {определение m}
m := m div n; {получение среднеарифметического}
for i := 1 to n do {заголовок цикла}
y[i] := x[i] - m; {определение элементов массива y}
end; {конец процедуры}
begin {начало главной программы}
for i := 1 to n do {заголовок цикла}
begin {начало цикла}
readln(a[i]); {ввод элемента массива а}
b[i] := 0; {обнуление элемента массива b}
end; {конец цикла}
p(a, b); {выполнение процедуры p}
for i := 1 to n do {начала цикла}
write(b[i], ' '); {вывод элемента массива b}
readln; {ожидание ввода}
end. {конец программы}
Задача 2
Даны две последовательности из n элементов в каждой. Найти наименьшее среди тех чисел первой последовательности, которые не входят во вторую.
Описание переменных.
a, b - массивы от 1 до n из целых чисел в программе для проверки процедуры.
I, j целочисленные переменные. Счетчики циклов.
Min целочисленная переменная. Хранит значение min элемента.
F Булевская переменная. Хранит значение, найдено ли значение элемента первого массива во втором.
.
Шаг 1 Ввод массива а
Шаг 2 Ввод массива b
Шаг 3 Устанавливаем значение min большим (10000)
Шаг 4 Устанавливаем значение i равным 1
Шаг 5 Если i <= n, то Шаг 6, иначе Шаг 16
Шаг 6 Устанавливаем f равным ЛОЖЬ
Шаг 7 Устанавливаем j равным 1
Шаг 8 Если J <= n, то Шаг 9, иначе Шаг 11
Шаг 9 Если a[i] равное b[j], то Шаг 10, иначе Шаг 11
Шаг 10 Устанавливаем f равным Правда
Шаг 11 Увеличиваем i на 1, переход на Шаг 8
Шаг 12 Если f неПравда, то Шаг 13, иначе Шаг 15
Шаг 13 Если min больше а[i], то Шаг 14, иначе Шаг 15
Шаг 14 Устанавливаем min равным a[i]
Шаг 15 Увеличиваем i на 1, переход на шаг 5
Шаг 16 Вывод min на экран
Текст программы с комментариями.
Const {определение констант}
n = 10; {n равно 10}
var {определение переменных}
a, b: array [1..n] of integer; {массивы а и b}
i, j: Integer; {целочисленные переменные}
min: Integer; {переменная min}
f: Boolean; {булева переменная f}
begin {начало программы}
writeln('vvedite ', n, ' elementov a'); {вывод строки наэкран}
for i := 1 to n do {заголовок цикла}
readln(a[i]); {чтение с клавиатуры a[i]}
writeln('vvedite ', n, ' elementov b'); {вывод строки на экран}
for i := 1 to n do {начало цикла}
readln(b[i]); {чтение с клавиатуры b[i]}
min := 10000; {устанавливаем min в 10000}
for i := 1 to n do {заголовок цикла по i}
begin {начало цикла по i}
f := false; {устанавливаем f в False}
for j := 1 to n do {заголовок цикла по j}
if a[i] = b[j] then {если a[i] = b[j], то}
f := true; {устанавливаем f в True}
if not f then {Если F равно False, то}
if min > a[i] then min := a[i]; {Если min > a[i], то min = a[i]}
end; {конец цикла по i}
writeln(min); {вывод min на экран}
readln; {ожидание ввода}
end. {конец программы}