- •Федеральное агентство связи
- •Описание задания к первой части курсовой работы
- •Методические указания по выполнению первой части курсовой работы
- •Пример выполнения первой части курсовой работы
- •Построение алгоритма. Схема алгоритмов главной программы и подпрограммы
- •Описание программы
- •Процедуры и функции языка программирования Паскаль, используемый в программе.
- •Текст программы.
- •Результат работы программы
- •Описание программы Описание тела программы
- •Процедуры и функции языка программирования Паскаль, используемые в программе.
- •Текст программы.
- •Описание задания ко второй части курсовой работы
- •Приложение 1
Описание программы Описание тела программы
Программа состоит из трех частей: заголовка, раздела описаний, раздела операторов.
Раздел описания переменных содержит совокупность данных, с которыми производятся действия.
program dom1; var a:array[1..100,1..100] of integer; i,j,n,m,f:integer; p:double;
|
Заголовок программы с именем dom1 Раздел описания переменных Двумерный массив, целочисленного типа целочисленные переменные переменная вещественного типа |
Процедуры и функции языка программирования Паскаль, используемые в программе.
write('Введите количество строк ='); Процедурой вывода WRITELN вывести сообщение
read(m); - в переменную М, сохраняется значение числа введенного на клавиатуре
Вложенный цикл повтора FOR .
for i:=1 to N do for j:=1 to M do - Для i , изменяющегося от1 до N делать
begin начало тела цикла
a[i,j]:=random(20)-10; функцией RANDOM формируется положительное число в диапазоне от 0 до 20. Для того, чтобы получить отрицательные числа используется вычитание –10. В результате элемент массива примет значение в диапазоне от –10 до 10.
write(a[i,j]); Процедурой вывода распечатывается полученный массив в виде таблицы.
end конец тела цикла
p:=1; f:=0; Операторы присвоить определяют начальное значение переменным P и F
Во вложенном цикле FOR - выполняется обработка элементов массива.
for i:=1 to n do for j:=1 to m do
В теле цикла оператор условия IF.. THEN. Проверяется условие, если значение a[ i,j ] больше нуля, то вычисляется произведение этих элементов и их количество.
if a[I,J]>0 then
begin
p:=p* a[ i,j ];
f:=F+1;
end
После завершения цикла FOR оператор условия IF ..THEN проверяет результат вычисления и выводит ответ на экран.
if (p=1) and (f=0) then writeln('В массиве нет положительных чисел') else writeln('p=',p:5);
writeln; После завершения условия конец программы.
Текст программы.
program dom1;
var a:array[1..100,1..100] of integer; i,j,n,m,f:integer; p:double;
BEGIN
write('введите кол-во строк= '); read(m);
write('введите кол-во столбцов= '); read(n);
randomize;
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(20)-10;
write(a[i,j]:7);
end;
writeln;
end;
p:=1;f:=0;
for i:=1 to n do
for j:=1 to m do
if a[i,j]>0 then
begin
P:=P*A[I,J];f:=f+1; end;
IF (P=1) and (f=0) THEN writeln('В массиве нет положительных чисел')
ELSE writeln('Произведение чисел равно P= ',p:9:2);
END.
Тестовый пример к задаче 1
введите кол-во строк= 10
введите кол-во столбцов= 10
0 0 0 1 1 -1 1 -1 0 -1
-1 -1 -1 -1 1 0 1 0 1 1
-1 1 -1 0 1 -1 1 1 1 -1
-1 1 0 -1 -1 1 0 -1 1 -1
1 0 1 -1 -1 -1 1 0 0 0
1 1 -1 0 -1 1 1 1 1 1
-1 0 0 0 1 -1 1 0 0 -1
0 1 0 0 0 -1 1 1 1 1
1 -1 -1 0 1 0 1 1 1 1
1 0 -1 -1 -1 0 1 -1 1 -1
Произведение чисел равно P= 1.00
введите кол-во строк= 10
введите кол-во столбцов= 10
4 -8 9 6 7 -9 2 6 1 -2
8 8 -8 -2 -9 -6 -8 9 -3 -4
8 -9 8 -4 2 -8 -8 1 -1 -10
-7 -10 -5 0 -3 -5 5 1 4 4
3 0 -4 -6 2 -6 -4 9 6 -10
-6 -8 8 -4 5 2 5 2 -10 5
-9 2 7 -3 2 -9 3 -3 -1 4
-6 -1 -2 8 3 -10 5 -8 5 0
-6 4 6 6 5 -7 8 -5 -9 -4
1 -10 2 9 -4 9 -5 4 -7 6
Произведение чисел равно P= 626180798766420937000000000000.00
введите кол-во строк= 10
введите кол-во столбцов= 10
-19 -8 -16 -12 -7 -14 -18 -5 -5 -3
-5 -3 -1 -7 -10 -15 -9 -8 -1 0
-18 -13 -7 -19 -8 -18 -13 -3 -11 -17
-14 -11 -16 -17 -5 -2 -1 -6 -11 -3
-18 -16 -16 -9 -2 -5 -12 -16 -15 -9
-1 0 -11 -17 -10 -17 -11 -13 -3 -11
-8 -17 -7 -12 -8 -1 -4 -3 -9 -15
-16 -2 -8 -9 -7 -17 -11 -13 -5 -3
-19 -15 -6 -8 -11 -13 -4 0 -10 -19
-1 -15 -1 -15 -7 -12 -8 -12 -9 0
В массиве нет положительных чисел