Написать программу на Паскале для решения следующей задачи: с клавиатуры вводятся 2 числа. Определить, являются ли они четными и кратными 6, а также, какое из чисел больше, его (большее число) заменить числом 100.
Type M = array[,] of integer; // двумерный динамический V = array[1..2] of integer; // одномерный статический
function nPos(pm: M): integer; var i, j, p: integer; begin p := 0; for i := 0 to Length(pm, 0) - 1 do for j := 0 to Length(pm, 1) - 1 do if pm[i, j] > 0 then p := p + 1; nPos := p end;
function nNeg(pm: M): integer; var i, j, p: integer; begin p := 0; for i := 0 to Length(pm, 0) - 1 do for j := 0 to Length(pm, 1) - 1 do if pm[i, j] < 0 then p := p + 1; nNeg := p end;
procedure GetV(A: M; var C: V); begin C[1] := nPos(A); C[2] := nNeg(A) end;
procedure InitM(var A: M); var i, j: integer; begin for i := 0 to Length(A, 0) - 1 do for j := 0 to Length(A, 1) - 1 do A[i, j] := random(100) - 50 end;
procedure PrintM(A: M); var i, j: integer; begin for i := 0 to Length(A, 0) - 1 do begin for j := 0 to Length(A, 1) - 1 do write(A[i, j]:4); writeln end end;
var A1, A2, A3: M; B1, B2, B3: V; n1, m1, n2, m2, n3, m3: integer;
begin Randomize; writeln('Введите число строк и столбцов массива'); readln(n1, m1); SetLength(A1, n1, m1); InitM(A1); Writeln('массив А1'); PrintM(A1); GetV(A1, B1); writeln('Количество положительных ', B1[1], ', количество отрицательных ', B1[2]); writeln('Введите число строк и столбцов массива'); readln(n2, m2); SetLength(A2, n2, m2); InitM(A2); Writeln('массив А2'); PrintM(A2); GetV(A2, B2); writeln('Количество положительных ', B2[1], ', количество отрицательных ', B2[2]); writeln('Введите число строк и столбцов массива'); readln(n3, m3); SetLength(A3, n3, m3); InitM(A3); Writeln('массив А3'); PrintM(A3); GetV(A3, B3); writeln('Количество положительных ', B3[1], ', количество отрицательных ', B3[2]); end.
Тестовый прогон:
Введите число строк и столбцов массива 3 3 массив А1 6 11 -46 24 -41 36 44 9 18 Количество положительных 7, количество отрицательных 2 Введите число строк и столбцов массива 2 4 массив А2 37 -4 -2 43 -18 36 0 44 Количество положительных 4, количество отрицательных 3 Введите число строк и столбцов массива 5 2 массив А3 5 -15 49 -1 -40 35 -33 -9 -22 -31 Количество положительных 3, количество отрицательных 7
Const n=8; var aNam, aFam, aDat: array[1..n] of string; i: integer;
begin aNam[1]:='Олег'; aFam[1]:='Бубенков'; aDat[1]:='1993'; aNam[2]:='Игорь'; aFam[2]:='Бросов'; aDat[2]:='1991'; aNam[3]:='Тимур'; aFam[3]:='Наружный'; aDat[3]:='1961'; aNam[4]:='Анастасия'; aFam[4]:='Боброва'; aDat[4]:='1985'; aNam[5]:='Михаил'; aFam[5]:='Тапаров'; aDat[5]:='1957'; aNam[6]:='Евгений'; aFam[6]:='Костарева'; aDat[6]:='1992'; aNam[7]:='Мария'; aFam[7]:='Никитин'; aDat[7]:='1977'; aNam[8]:='Ксения'; aFam[8]:='Бабенкова'; aDat[8]:='1978'; writeln('Лица, чьи фамилии начинаются на букву "Б"'); for i := 1 to n do if aFam[i][1] = 'Б' then writeln(aNam[i],' ',aFam[i], ' (', aDat[i], ')') end.
тестовый прогон:
Лица, чьи фамилии начинаются на букву "Б" Олег Бубенков (1993) Игорь Бросов (1991) Анастасия Боброва (1985) Ксения Бабенкова (1978)
Возможна также более "современная" запись программы
const n = 8;
type tP = record Nam: string; Fam: string; Dat: string end;
var M: array[1..n] of tP; i: integer;
begin with M[1] do begin Nam := 'Олег'; Fam := 'Бубенков'; Dat := '1993' end; with M[2] do begin Nam := 'Игорь'; Fam := 'Бросов'; Dat := '1991' end; with M[3] do begin Nam := 'Тимур'; Fam := 'Наружный'; Dat := '1961' end; with M[4] do begin Nam := 'Анастасия'; Fam := 'Боброва'; Dat := '1985' end; with M[5] do begin Nam := 'Михаил'; Fam := 'Тапаров'; Dat := '1957' end; with M[6] do begin Nam := 'Евгений'; Fam := 'Костарева'; Dat := '1992' end; with M[7] do begin Nam := 'Мария'; Fam := 'Никитин'; Dat := '1977' end; with M[8] do begin Nam := 'Ксения'; Fam := 'Бабенкова'; Dat := '1978' end; writeln('Лица, чьи фамилии начинаются на букву "Б"'); for i := 1 to n do With M[i] do begin if Fam[1] = 'Б' then writeln(Nam, ' ', Fam, ' (', Dat, ')') end end.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку