Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая работа Кокиева.doc
Скачиваний:
11
Добавлен:
11.04.2015
Размер:
246.78 Кб
Скачать

Описание программы Описание тела программы

Программа состоит из трех частей: заголовка, раздела описаний, раздела операторов.

Раздел описания переменных содержит совокупность данных, с которыми производятся действия.

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

В массиве нет положительных чисел