|
ЛИПЕЦКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
Кафедра информатики
Лабораторная работа № 4
по теме: «Обработка массивов с использованием подпрограмм»
Вариант 6
Студент: Йованович В.С.
Группа ФХ-12-1
Руководитель: Суслова С.А.
к.т.н.
Липецк 2013 г.
Постановка задачи:
5.25)Дано: массивы А(10),В(15). Поменять местами их первые положительные элементы. Для нахождения первого положительного элемента и его номера в массиве использовать подпрограмму.
6.20)Дано: массивы А1(N1,M1), A2(N2,M2), А3(N3,M3).Cформировать одномерные массивы В1,В2,В3,каждый из которых состоит из 2-х элементов. В первом из них кол-во положительных элементов массива А1,А2,А3,во втором кол-во отрицательных элементов массива А1,А2,А3. Определение кол-ва отрицательных и кол-ва положительных элементов в исходном массиве и формирование одномерного массива осуществить в подпрограмме.
Результаты программ:
5.25)A 10
A[1]=1 A[1]=4
A[2]=3 A[2]=3
A[3]=5 A[3]=5
A[4]=7 A[4]=7
A[5]=8 A[5]=8
A[6]=2 A[6]=2
A[7]=11 A[7]=11
A[8]=9 A[8]=9
A[10]=15 A[10]=15
B 15
B[1]=4 B[1]=1
B[2]=2 B[2]=2
B[3]=17 B[3]=17
B[4]=9 B[4]=9
B[5]=10 B[5]=10
B[6]=18 B[6]=18
B[7]=13 B[7]=13
B[8]=2 B[8]=2
B[9]=14 B[9]=14
B[10]=11 B[10]=11
B[11]=6 B[11]=6
B[12]=19 B[12]=19
B[13]=14 B[13]=14
B[14]=7 B[14]=7
B[15]=1 B[15]=1
PROGRAM PR1;
TYPE MAS=ARRAY[1..30] of INTEGER;
VAR A,B:MAS;N,POL:INTEGER;
K1,K2,S1,S2:INTEGER;
PROCEDURE VVOD(VAR x:MAS;VAR N:INTEGER;Q:string);
VAR i:integer;
BEGIN
WRITE('Введите число элементов масива',Q);
READLN(N);
WRITE('Введите элементы массива',Q);
FOR i:=1 to N DO
BEGIN
WRITE(Q,'[',i,']=');READLN(x[i]);
END;
END;
PROCEDURE POISK(X:MAS;N:INTEGER;VAR POL,k:integer);
VAR i:integer;
BEGIN
FOR i:=N to 1 DO
IF(x[i]>0)THEN
BEGIN
POL:=x[i];
k:=i;
END;
END;
PROCEDURE VIVOD(x:MAS;N:INTEGER;Q:string);
VAR i:integer;
Begin
FOR i:=1 to N DO
WRITELN (Q,'[',i,']=',x[i]);
READLN(x[i]);
END;
BEGIN
VVOD(A,10,'Array');
VVOD(B,15,'Array');
POISK(A,10,S1,K1);
POISK(B,15,S2,K2);
A[k1]:=S2;
B[k2]:=S1;
VIVOD(A,10,'Array');
VIVOD(B,15,'Array');
END.
Начало |
Начало |
k=0 t=0 |
i=1,N |
j=1,M |
Aij>0 |
Вывод Bi |
Начало |
i=1,2 |
Конец |
i=1,N |
j=1,M |
Aij |
Конец |
Ввод N,M |
Конец |
t=t+1 |
K=k+1 |
4.Основная программа
конец |
VIVOD(B1) VIVOD(B2) VIVOD(B3) |
FORM(A1,N1,M1,В1[1],В1[2] FORM(A2,N2,M2,B2[1],B2[2] FORM(A3,N3,M3,В3[1],B3[2] |
VVOD(A1,N1,M1) VVOD(A2,N2,M2) VVOD(A3,N3,M3) |
Начало |
Начало |
PROGRAM PR1;
TYPE MAS=ARRAY[1..30,1..30] of REAL;
VAR A1,A2,A3,B1,B2,B3:MAS;N1,N2,N3,M1,M2,M3,k1,k2,k3,t1,t2,t3:integer;
PROCEDURE VVOD(VAR A:MAS;VAR N,M:INTEGER;Q:string);
VAR i,j:integer;
Begin
WRITE('Введите число элементов массива',Q);
READLN(N);
WRITE('Введите элементы массива',Q);
READLN(N);
FOR i:=1 to N DO
FOR j:=1 to M DO
BEGIN
WRITELN(Q,'[',i,',',j,']=');
READLN(A[i,j]);
END;
END;
PROCEDURE FORM(A:MAS;N,M:integer;VAR B:MAS;
VAR k,t:integer);
VAR i,j:integer;
BEGIN
k:=0;
t:=0;
FOR i:=1 to N DO
FOR j:=1 to M DO
IF(A[i,j]>0)THEN
BEGIN
k:=k+1;
t:=t+1;
END;
END;
PROCEDURE VIVOD(B:MAS;k,t:integer;Q:string);
VAR i,j:integer;
Begin
FOR i:=1 to k DO
FOR j:=1 to t DO
WRITELN(Q,'[',i,']=',B[i,j]);
END;
BEGIN
VVOD(A1,N1,M1,'A1');
VVOD(A2,N2,M2,'A2');
VVOD(A3,N3,M3,'A3');
FORM(A1,N1,M1,B1[1],B1[2]);
FORM(A2,N2,M2,B2[1],B2[2]);
FORM(A3,N3,M3,B3[1],B3[2]);
VIVOD(B1);
VIVOD(B2);
VIVOD(B3);
END.
6.20)N=2,M=2 B1 B2
A[1,1]=1 B[1]=1 B[1]= -3
A[1,2]= -3 B[2]=7 B[2]= -9
A[2,1]=7 B[3]=4 B[3]= -6
A[2,2]= -9 B[4]=19 B[4]=-13
A[1,1]=4 B[5]=8 B[5]= -2
A[1,2]= -6 B[6]=12 B[6]= -10
A[2,1]=19 B[7]=4 B[7]= -16
A[2,2]= -13 B[8]=17 B[8]= -11
A[1,1]=8
A[1,2]= -2
A[2,1]= 12
A[2,2]= -10
A[1,1]=4
A[1,2]= -16
A[2,1]= 17
A[2,2]= -11
Дата добавления: 2015-08-28; просмотров: 37 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Активный парк семейного отдыха | | | http://ficbook.net/readfic/294179 1 страница |