Автор работы: Пользователь скрыл имя, 03 Декабря 2014 в 17:41, контрольная работа
ЗАДАНИЕ 1. Составить блок-схему алгоритма и программу на языке ПАСКАЛЬ вычисления значения функции Y=F(x) для аргумента x, изменяющегося от xн до xк с шагом изменения Hx.
№ |
Условие задачи |
В программе вычисляется |
Вывод на печать |
49 |
Выделить верхние треугольные матрицы для матриц A(5,5), B(6,6), C(4,4). |
Формирование треугольной матрицы из квадратной. |
Исходные и результатные матрицы. |
Описание алгоритма
Назначение переменных
А) Основная программа:
А,B,С - двумерные массивы
Б) Подпрограммы:
I,j –счетчики циклов
Подпрограмма-TRIANGLE
1. Начало процедуры
2. Цикл, организованный по индексу I для последовательного обращения к элементам произвольной матрицы c.
3. Цикл, организованный по индексу j для последовательного обращения к элементам произвольной матрицы c.
4. Проверка условия (i+j)<=(x+1). Если условие выполняется то переход к блоку 5
5. Вывод на экран
6. Конец функции Рroiz
Подпрограмма-процедура
1. Начало подпрограммы
2,3,4,5. Заполнение элементов массива значениями, генерируемыми датчиком случайных чисел. Вывод на экран значений массива.
6. Конец процедуры vvod.
Основная программа
1. Начало основной программы
2. Обращение к подпрограмме vvod для заполнения элементами матрицы А.
3. Обращение к подпрограмме vvod для заполнения элементами матрицы В.
4. Обращение к подпрограмме vvod для заполнения элементами матрицы С.
5. Обращение к подпрограмме Triangle для вывода элементов матрицы А.
6. Обращение к подпрограмме Triangle для вывода элементов матрицы В.
7. Обращение к подпрограмме Triangle для вывода элементов матрицы С.
8. Конец, основной программы
Текст программы
type mas = array[1..10,1..10] of integer ;
var c,a,b: mas ;
(* Подпрограмма – процедура *)
procedure vvod(x:integer;var c:mas);
var i,j:integer;
begin
randomize;
for i := 1 to x do begin
for j:= 1 to x do
begin
c [ i,j ]:=random(9)-5 ;
write(c[i,j],' ');
end;
writeln;
end;
end;
(* Подпрограмма – процедура *)
procedure triangle (x : integer ; var c : mas) ;
Var
i,j:integer;
begin
for i:=1 to x do
begin
for j:=1 to x do
begin
if (i+j)<=(x+1) then
write(c[i,j],' ')
end;
writeln;
end;
end ;
(* Основная программа *)
begin
writeln ( ' Массив A ' ) ;
vvod(5,a);
writeln ( ' Массив B ' ) ;
vvod(6,b);
writeln ( ' Массив C ' ) ;
vvod(4,c);
writeln ('Результат = ') ;
writeln ( ' Массив A ' ) ;
triangle(5,a);
writeln ( ' Массив B ' ) ;
triangle(6,b);
writeln ( ' Массив C ' ) ;
triangle(4,C);
readln
end .
Результаты работы
Массив A
3 -2 3 -1 -1
-3 -1 -5 -1 3
2 2 -2 3 -5
2 2 -5 1 1
-1 -5 0 2 3
Массив B
-1 -4 2 -1 0 -2
-1 0 -3 -3 -2 -1
0 -2 3 -4 -1 -4
3 3 1 -1 -1 -3
0 3 1 -3 2 1
-4 -2 -5 1 -5 -4
Массив C
-1 -4 2 -1
0 -2 -1 0
-3 -3 -2 -1
0 -2 3 -4
Результат =
Массив A
3 -2 3 -1 -1
-3 -1 -5 -1
2 2 -2
2 2
-1
Массив B
-1 -4 2 -1 0 -2
-1 0 -3 -3 -2
0 -2 3 -4
3 3 1
0 3
-4
Массив C
-1 -4 2 -1
0 -2 -1
-3 -3
0
Выводы: в ходе прохождения компьютерного практикума мной были изучены возможности языка программирования Turbo Pascal, получены навыки составления программ с использованием циклов, обработки одномерных и двухмерных массивов и др.
Информация о работе Контрольная работа по "Компьютерный практикум"